# polylog

## Syntax

``Li = polylog(n,x)``

## Description

example

````Li = polylog(n,x)` returns the polylogarithm of the order `n` and the argument `x`.```

## Examples

### Polylogarithms of Numeric and Symbolic Arguments

`polylog` returns floating-point numbers or exact symbolic results depending on the arguments you use.

Compute the polylogarithms of numeric input arguments. The `polylog` function returns floating-point numbers.

`Li = [polylog(3,-1/2), polylog(4,1/3), polylog(5,3/4)]`
```Li = -0.4726 0.3408 0.7697```

Compute the polylogarithms of the same input arguments by converting them to symbolic objects. For most symbolic (exact) numbers, `polylog` returns unresolved symbolic calls.

`symA = [polylog(3,sym(-1/2)), polylog(sym(4),1/3), polylog(5,sym(3/4))]`
```symA = [ polylog(3, -1/2), polylog(4, 1/3), polylog(5, 3/4)]```

Approximate the symbolic results with the default number of 32 significant digits by using `vpa`.

`Li = vpa(symA)`
```Li = [ -0.47259784465889687461862319312655,... 0.3407911308562507524776409440122,... 0.76973541059975738097269173152535]```

The `polylog` function also accepts noninteger values of the order `n`. Compute `polylog` for complex arguments.

`Li = polylog(-0.2i,2.5)`
```Li = -2.5030 + 0.3958i```

### Explicit Expressions for Polylogarithms

If the order of the polylogarithm is `0`, `1`, or a negative integer, then `polylog` returns an explicit expression.

The polylogarithm of `n = 1` is a logarithmic function.

```syms x Li = polylog(1,x)```
```Li = -log(1 - x)```

The polylogarithms of `n < 1` are rational expressions.

`Li = polylog(0,x)`
```Li = -x/(x - 1)```
`Li = polylog(-1,x)`
```Li = x/(x - 1)^2```
`Li = polylog(-2,x)`
```Li = -(x^2 + x)/(x - 1)^3```
`Li = polylog(-3,x)`
```Li = (x^3 + 4*x^2 + x)/(x - 1)^4```
`Li = polylog(-10,x)`
```Li = -(x^10 + 1013*x^9 + 47840*x^8 + 455192*x^7 + ... 1310354*x^6 + 1310354*x^5 + 455192*x^4 +... 47840*x^3 + 1013*x^2 + x)/(x - 1)^11```

### Special Values

The `polylog` function has special values for some parameters.

If the second argument is `0`, then the polylogarithm is equal to `0` for any integer value of the first argument. If the second argument is `1`, then the polylogarithm is the Riemann zeta function of the first argument.

```syms n Li = [polylog(n,0), polylog(n,1)]```
```Li = [ 0, zeta(n)]```

If the second argument is `-1`, then the polylogarithm has a special value for any integer value of the first argument except `1`.

```assume(n ~= 1) Li = polylog(n,-1)```
```Li = zeta(n)*(2^(1 - n) - 1)```

To do other computations, clear the assumption on `n` by recreating it using `syms`.

`syms n`

Compute other special values of the polylogarithm function.

`Li = [polylog(4,sym(1)), polylog(sym(5),-1), polylog(2,sym(i))]`
```Li = [ pi^4/90, -(15*zeta(5))/16, catalan*1i - pi^2/48]```

### Plot Polylogarithms

Plot the polylogarithms of the integer orders `n` from -3 to 1 within the interval `x = [-4 0.3]`.

```syms x for n = -3:1 fplot(polylog(n,x),[-4 0.3]) hold on end title('Polylogarithm') legend('show','Location','best') hold off```

### Handle Expressions Containing Polylogarithms

Many functions, such as `diff` and `int`, can handle expressions containing `polylog`.

Differentiate these expressions containing polylogarithms.

```syms n x dLi = diff(polylog(n, x), x) dLi = diff(x*polylog(n, x), x)```
```dLi = polylog(n - 1, x)/x dLi = polylog(n, x) + polylog(n - 1, x)```

Compute the integrals of these expressions containing polylogarithms.

```intLi = int(polylog(n, x)/x, x) intLi = int(polylog(n, x) + polylog(n - 1, x), x)```
```intLi = polylog(n + 1, x) intLi = x*polylog(n, x)```

## Input Arguments

collapse all

Order of the polylogarithm, specified as a number, array, symbolic number, symbolic variable, symbolic function, symbolic expression, or symbolic array.

Data Types: `single` | `double` | `sym` | `symfun`
Complex Number Support: Yes

Argument of the polylogarithm, specified as a number, array, symbolic number, symbolic variable, symbolic function, symbolic expression, or symbolic array.

Data Types: `single` | `double` | `sym` | `symfun`
Complex Number Support: Yes

collapse all

### Polylogarithm

For a complex number `z` of modulus ```|z| < 1```, the polylogarithm of order `n` is defined as:

`${\mathrm{Li}}_{n}\left(z\right)=\sum _{k=1}^{\infty }\frac{{z}^{k}}{{k}^{n}}.$`

Analytic continuation extends this function the whole complex plane, with a branch cut along the real interval [`1`, ∞) for `n` ≥ 1.

## Tips

• `polylog(2,x)` is equivalent to ```dilog(1 - x)```.

• The logarithmic integral function (the integral logarithm) uses the same notation, li(x), but without an index. The toolbox provides the `logint` function to compute the logarithmic integral function.

• Floating-point evaluation of the polylogarithm function can be slow for complex arguments or high-precision numbers. To increase the computational speed, you can reduce the floating-point precision by using the `vpa` and `digits` functions. For more information, see Increase Speed by Reducing Precision.

• The polylogarithm function is related to other special functions. For example, it can be expressed in terms of the Hurwitz zeta function ζ(s,a) and the gamma function Γ(z):

`${\text{Li}}_{n}\left(z\right)=\frac{\Gamma \left(1-n\right)}{{\left(2\pi \right)}^{1-n}}\text{ }\text{\hspace{0.17em}}\left[{i}^{1-n}\zeta \left(1-n,\frac{1}{2}+\frac{\mathrm{ln}\left(-z\right)}{2\pi i}\right)\text{\hspace{0.17em}}+{i}^{n-1}\text{\hspace{0.17em}}\zeta \left(1-n,\frac{1}{2}-\frac{\mathrm{ln}\left(-z\right)}{2\pi i}\right)\right].$`

Here, n ≠ 0, 1, 2, ....

## References

[1] Olver, F. W. J., A. B. Olde Daalhuis, D. W. Lozier, B. I. Schneider, R. F. Boisvert, C. W. Clark, B. R. Miller, and B. V. Saunders, eds., Chapter 25. Zeta and Related Functions, NIST Digital Library of Mathematical Functions, Release 1.0.20, Sept. 15, 2018.

## Version History

Introduced in R2014b