polygamma#
Purpose#
Computes the polygamma function.
Format#
- f = polygamma(z, n)#
- Parameters:
z (NxK matrix) – z may be complex
n (The order of the function) – If n is 0 then f will be the Digamma function. If n = 1,2,3, etc., then f will be the tri-, tetra-, penta-, s-, etc., Gamma function. Real (n) must be positive.
- Returns:
f (NxK matrix) – f may be complex.
Examples#
Example 1: Basic usage#
// Both calls are equivalent
f = digamma(1);
f2 = polygamma(1, 0);
After the code above, both f and f2 should be equal to -g, where g represents the Euler-Mascheroni constant:
-0.57721566
Compute the pentagamma function#
f = polygamma(1.5, 4);
After the code above, f should be equal to:
-3.47425
Complex input#
// Set 'z' equal to complex number -45.6-29.4i
z = { -45.6 - 29.4i };
polygamma(z, 101);
12.501909 + 9.0829590i
Example 4#
z = { -11.5 - 0.577007813568142i };
polygamma(z, 10);
will return the value:
-4.984e-06 + 8.217e-07i
Remarks#
The polygamma()
function of order n is defined by the equation:
This program uses the partial fraction expansion of the derivative of the log of the Lanczos series approximation for the Gamma function. Accurate to about 12 digits.
References#
Lanczos, SIAM JNA 1, 1964. pp. 86-96.
Luke, “The Special … approximations,” 1969 pp. 29-31.
Luke, “Algorithms … functions,” 1977.
Spouge, SIAM JNA 31, 1994. pp. 931.
Press, “Numerical Recipes.”
Chang, “Computation of special functions,” 1996.
Abramowitz & Stegun, section eq 6.4.6
Original code by Paul Godfrey