Suppose you wanted to approximate Γ(10.3). You know it’s somewhere between Γ(10) = 9! and Γ(11) = 10!, and linear interpolation would give you
Γ(10.3) ≈ 0.7 × 9! + 0.3 × 10! = 1342656.
But the exact value is closer to 716430.69, and so our estimate is 53% too high. Not a very good approximation.
Now let’s try again, applying linear interpolation to the log of the gamma function. Our approximation is
log Γ(10.3) ≈ 0.7 × log 9! + 0.3 × log 10! = 13.4926
while the actual value is 13.4820, an error of about 0.08%. If we take exponentials to get an approximation of Γ(10.3), not log Γ(10.3), the error is larger, about 1%, but still much better than 53% error.
The gamma function grows very quickly, and so the log gamma function is usually easier to work with.
As a bonus, the Bohr–Mollerup theorem says that log gamma is a convex function. This tells us that not only does linear interpolation give an approximation, it gives us an upper bound.
The Bohr–Mollerup theorem essentially says that the gamma function is the only function that extends factorial from a function on the integers to a log-convex function on the real numbers. This isn’t quite true since it’s actually &Gamma(x + 1) that extends factorial. Showing the gamma function is unique is the hard part. In the preceding paragraph we used the easy direction of the theorem, saying that gamma is log-convex.
Related posts
- Simple approximation for the gamma function
- Asymptotic series for gamma function ratios
- Approximate inverse of the gamma function
The post Interpolating the gamma function first appeared on John D. Cook.