Interpolating the gamma function
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