Main Content




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


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,...

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
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

More About

collapse all


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


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


  • 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):


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


[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

See Also

| | | |