Dilogarithm, polylogarithm, and related functions
The functions dilogarithm, trilogarithm, and more generally polylogarithm are meant to be generalizations of the logarithm. I first came across the dilogarithm in college when I was evaluating some integral with Mathematica, and they've paid a visit occasionally ever since.
Unfortunately polylogarithms are defined in several slightly different and incompatible ways. I'll start by following An Atlas of Functions and then mention differences in A&S, SciPy, and Mathematica.
PolylogarithmsAccording to Atlas,
Polylogarithms are themselves special cases of Lerch's function. Also known as Jonquiire's functions (Ernest Jean Philippe Fauque de Jonquiires, 1820-1901, French naval officer and mathematician), they appear in the Feynman diagrams of particle physics.
The idea is to introduce an extra parameter I in the power series for natural log:
When I = 1 we get the ordinary logarithm, i.e. polyln1 = log. Then polyln2 is the dilogarithm diln, and polyln3 is the trilogarithm triln.
One advantage of the definition in Atlas is that the logarithm is a special case of the polylogarithm. Other conventions don't have this property.
Other conventionsThe venerable A&S defines dilogarithms in a way that's equivalent to the negative of the definition above and does not define polylogarithms of any other order. SciPy's special function library follows A&S. SciPy uses the name spence for the dilogarithm for reasons we'll get to shortly.
Mathematica has the function PolyLog[I, x] that evaluates to
So polylnI above corresponds to -PolyLog[I, -x] in Mathematica. Matlab's polylog is the same as Mathematica's PolyLog.
Relation to other functionsSpence's integral is the function of x given by the integral
and equals diln(x). Note that the SciPy function spence returns the negative of the integral above.
The Lerch function mentioned above is named for Mathias Lerch (1860-1922) and is defined by the integral
The connection with polylogarithms is easier to see from the series expansion:
The connection with polylogarithms is then
Note that the Lerch function also generalizes the Hurwitz zeta function, which in turn generalizes the Riemann zeta function. When x = 1, the Lerch function reduces to I(I, u).