This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Polylogarithm function

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.


polylog(n, x)


polylog(n,x) represents the polylogarithm function Lin(x) of index n at the point x.

For a complex number x of modulus |x| < 1, the polylogarithm function of index n is defined as


This function is extended to the whole complex plane by analytic continuation. Do not confuse the polylogarithms Lin with the integral logarithm function Li which is displayed using the same symbol (without an index).

If n is an integer and x a floating-point number, then a floating-point result is computed.

If n is an integer less or equal to 1, then an explicit expression is returned for any input parameter x. If n is an integer larger than 1 or if n is a symbolic expression, then an unevaluated call of polylog is returned, unless x is a floating-point number. If n is a numerical value, but not an integer, then an error occurs.

Some special values for n = 2 are implemented (cf. dilog). The values Lin(0) = 0 and are implemented for any n. Furthermore, for any n ≠ 1.

Lin(x) has a singularity at the point x = 1 for indices n ≤ 1. For indices n ≥ 1, the point x = 1 is a branch point. The branch cut is the real interval . A jump occurs when crossing this cut. Cf. Example 2.

Mathematically, polylog(2,x) coincides with dilog(1-x).

Environment Interactions

When called with a floating-point argument x, the function is sensitive to the environment variable DIGITS which determines the numerical working precision.


Example 1

Explicit results are returned for integer indices n ≤ 1:

polylog(-5, x), polylog(-1, x), polylog(0, x), polylog(1, x)

An unevaluated call is returned if the index is an integer n > 1 or a symbolic expression:

polylog(2, x), polylog(n^2 + 1, 2), polylog(n + 1, 2.0)

Floating point values are computed for integer indices n and floating-point arguments x:

polylog(-5, -1.2), polylog(10, 100.0 + 3.2*I)

Some special symbolic values are implemented:

polylog(4, 1), polylog(5, -1), polylog(2, I)

assume(n <> 1): polylog(n, -1)

unassume(n): polylog(n, -1)

Example 2

For indices n ≥ 1, the real interval is a branch cut. The values returned by polylog jump when crossing this cut:

polylog(3, 1.2 + I/10^1000) - polylog(3, 1.2 - I/10^1000)

Example 3

The functions diff, float, limit, and series handle expressions involving polylog:

diff(polylog(n, x), x), float(polylog(4, 3 + I))

series(polylog(4, sin(x)), x = 0)



An arithmetical expression representing an integer


An arithmetical expression

Return Values

Arithmetical expression.

Overloaded By



L. Lewin, “Polylogarithms and Related Functions”, North Holland (1981). L. Lewin (ed.), “Structural Properties of Polylogarithms”, Mathematical Surveys and Monographs Vol. 37, American Mathematical Society, Providence (1991).


The polylogarithms are characterized by in conjunction with Lin(0) = 0 and Li1(x) = - ln(1 - x). Lin(x) is a rational function in x for n ≤ 0.

Lin has a branch cut along the real interval for indices n ≥ 1. The value at a point x on the cut coincides with the limit “from below”:


See Also

MuPAD Functions

Was this topic helpful?