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:

\[\psi^{(n)}(z) = \frac{d^n}{dz^n}\psi(z) = \frac{d^{n+1}}{dz^{n+1}}ln\Gamma(z)\]

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#

    1. Lanczos, SIAM JNA 1, 1964. pp. 86-96.

    1. Luke, “The Special … approximations,” 1969 pp. 29-31.

    1. Luke, “Algorithms … functions,” 1977.

    1. Spouge, SIAM JNA 31, 1994. pp. 931.

    1. Press, “Numerical Recipes.”

    1. Chang, “Computation of special functions,” 1996.

  1. Abramowitz & Stegun, section eq 6.4.6

  2. Original code by Paul Godfrey