Gamma of integer plus one over integer

The gamma function satisfies

Γ(x+1) = x Γ(x)

and so in principle you could calculate the gamma function for any positive real number if you can calculate it on the interval (0, 1). For example,

\begin{align*} \Gamma(\pi) &= (\pi - 1)\Gamma(\pi -1) \\ &= (\pi - 1)(\pi - 2) \Gamma(\pi - 2) \\ &= (\pi - 1)(\pi - 2) (\pi - 3)\Gamma(\pi - 3) \end{align*}

So if you’re able to compute Γ(π-3) then you could compute Γ(π).

If n is a positive integer ε is some number between 0 and 1, is there a more direct way to express Γ(n + ε) in terms of Γ(ε)?

There is when ε is the reciprocal of an integer. For example,

\begin{align*} \Gamma\left(n + \frac{1}{2}\right) &= \frac{(2n-1)!!}{2^n} \Gamma\left(\frac{1}{2}\right) \\ \Gamma\left(n + \frac{1}{3}\right) &= \frac{(3n-2)!!!}{3^n} \Gamma\left(\frac{1}{3}\right) \\ \Gamma\left(n + \frac{1}{4}\right) &= \frac{(4n-3)!!!!}{4^n} \Gamma\left(\frac{1}{4}\right) \\ \end{align*}

The multiple exclamation marks may look strange if you haven’t seen this notation before. See the previous post for an explanation.

The general equation for integer k is

\Gamma\left(n + \frac{1}{k}\right) = \frac{\Pi_k(kn - k + 1)}{k^n} \Gamma\left(\frac{1}{k}\right)

where Πk is a notation for k-factorial I suggested in the previous post. A more common notation would be to put !(k) to the right of the argument rather than Πk on the left.

Here’s Python code demonstrating that the equation above holds for randomly selected n and k.

from operator import mul
from functools import reduce
from scipy.special import gamma
import numpy as np

def multifactorial(n, k):
    return reduce(mul, range(n, 0, -k), 1)

def f1(n, k):
    return gamma(n + 1/k)

def f2(n, k):
    return multifactorial(k*n - k + 1, k)*gamma(1/k)/k**n

for _ in range(1000):
    n = np.random.randint(1, 50)
    k = np.random.randint(1, 50)    
    a, b = f1(n,k), f2(n, k)
    assert( abs(a/b - 1) <= 1e-10 )

Leave a Reply

Your email address will not be published. Required fields are marked *