斯特林公式
斯特林公式是简化大数阶乘计算的重要工具,提供了一种快速实用的近似方法。
这一结果在热力学、概率论和渐近分析等领域特别有用,在这些领域中,处理非常大的数是常见的。理解其推导不仅能更方便地应用,还能认识到它在高效计算和解决复杂问题中的重要性。
学习目标:
完成本节后,学生将能够:
- 理解通过伽马函数定义推导斯特林公式。
- 应用斯特林公式近似非常大的阶乘。
- 计算利用基本对数和指数工具进行阶乘的对数近似。
内容目录:
斯特林公式的推导
阶乘的对数近似
示例:大数阶乘的近似计算
斯特林公式的推导
斯特林公式的推导从伽马函数定义阶乘开始,其表达式为:
n! =\Gamma(n+1) = \displaystyle \int_0^\infty t^n e^{-t} \, dt
利用这一表达式,我们进行变量替换:t = nx。这意味着x \in [0, \infty[,且dt = n dx。通过这一替换,积分转换为:
n! = \Gamma(n+1) = \displaystyle \int_0^\infty (nx)^n e^{-nx} n \, dx = n^{n+1} \int_0^\infty x^n e^{-nx} dx
接下来,我们进行第二次变量替换:x = 1 + \dfrac{s}{\sqrt{n}}。这意味着:
\begin{array}{rl} & s = (x-1)\sqrt{n}, \quad s \in [-\sqrt{n}, \infty[ \\ \\ & dx = \dfrac{ds}{\sqrt{n}} \end{array}
通过这一变量替换,积分形式变为:
\begin{array}{rl} n! = \Gamma(n+1) &= \displaystyle n^{n+1} \int_{-\sqrt{n}}^\infty \left( 1 + \dfrac{s}{\sqrt{n}} \right)^n e^{-n\left(1+\dfrac{s}{\sqrt{n}}\right)} \dfrac{ds}{\sqrt{n}} \\ \\ &= \displaystyle \dfrac{n^{n+1}}{\sqrt{n}} \int_{-\sqrt{n}}^\infty e^{n\ln\left( 1 + \dfrac{s}{\sqrt{n}} \right)} e^{-n - s\sqrt{n}} ds \\ \\ &= \displaystyle n^n e^{-n} \sqrt{n} \int_{-\sqrt{n}}^\infty e^{n\ln\left(1+\dfrac{s}{\sqrt{n}}\right) - s\sqrt{n}} ds \end{array}
现在我们使用自然对数的泰勒级数展开:
\ln(1+x) = \displaystyle\sum_{k=1}^{\infty} \dfrac{(-1)^{k+1}x^k}{k}
将这一展开式应用于\ln\left(1+\dfrac{s}{\sqrt{n}}\right),我们可以进一步展开指数表达式如下:
\begin{array}{rl} n\ln\left(1+\dfrac{s}{\sqrt{n}}\right) - s\sqrt{n} & = \displaystyle n \left[\sum_{k=1}^{\infty} \dfrac{(-1)^{k+1}\left(\dfrac{s}{\sqrt{n}} \right)^k}{k} \right] - s\sqrt{n} \\ \\ & = n \left[ \dfrac{s}{\sqrt{n}} - \dfrac{s^2}{2n} + \dfrac{s^3}{3n\sqrt{n}} - \dfrac{s^4}{4n^2} + \dfrac{s^5}{5n^2\sqrt{n}} \cdots \right] - s\sqrt{n} \\ \\ & = s\sqrt{n} - \dfrac{s^2}{2} + \dfrac{s^3}{3\sqrt{n}} - \dfrac{s^4}{4n} + \dfrac{s^5}{5n\sqrt{n}} \cdots - s\sqrt{n} \\ \\ & = - \dfrac{s^2}{2} + \dfrac{s^3}{3\sqrt{n}} - \dfrac{s^4}{4n} + \dfrac{s^5}{5n\sqrt{n}} \cdots \\ \\ & = - \dfrac{s^2}{2} + \displaystyle \sum_{k=3}^\infty \dfrac{(-1)^{k+1}s^k}{k\sqrt{n^{k-2}}} \end{array}
因此,我们可以将完整表达式写为:
n! = \Gamma(n+1) = \displaystyle n^n e^{-n} \sqrt{n} \int_{-\sqrt{n}}^\infty e^{- \dfrac{s^2}{2} + \displaystyle \sum_{k=3}^\infty \dfrac{(-1)^{k+1}s^k}{k\sqrt{n^{k-2}}}} ds
这一结果是计算非常大的阶乘的基础。随着 n 的增大,指数中的求和项趋于零,仅剩下主导项。这简化了积分,并可以通过高斯积分求解:
n! = \Gamma(n+1) \approx \displaystyle n^n e^{-n} \sqrt{n} \int_{-\infty}^\infty e^{- \frac{s^2}{2}} ds = n^n e^{-n} \sqrt{n} \sqrt{2\pi}
这一结果被称为斯特林公式,用于大数阶乘的计算:
\boxed{n! \approx \sqrt{2\pi n}\left(\dfrac{n}{e}\right)^{n}}
阶乘的对数近似
斯特林公式的一个直接结果是阶乘的对数近似。对斯特林公式取自然对数,我们得到:
\begin{array}{rcl} \ln(n!) \approx \ln\left( \sqrt{2n\pi}\left(\dfrac{n}{e}\right)^{n} \right) &=& \dfrac{1}{2}\ln(2n\pi) + n\ln\left(\dfrac{n}{e}\right) \\ \\ &=& \dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n \\ \\ &\approx & n\ln(n) - n \end{array}
在最后一步中,通过忽略 \dfrac{1}{2}\ln(2n\pi) 项来进行了进一步的近似。与 n\ln(n) - n 相比,这一项在 n 取大值时变得无足轻重。
这一近似的有效性可以通过计算两种表达式之间的相对误差来验证:
\begin{array}{rcl} \text{初始近似} & = & \dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n \\ \\ \text{最终近似} & = & n\ln(n) - n \\ \\ \text{相对误差} &=& \dfrac{\text{最终近似} - \text{初始近似}}{\text{初始近似}} \\ \\ &=& \dfrac{-\dfrac{1}{2}\ln(2n\pi)}{\dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n} \end{array}
考虑当 n \to \infty 时的极限:
\begin{array}{rl} \displaystyle \lim_{n\to\infty} \text{相对误差} & = \displaystyle \lim_{n\to\infty} \dfrac{-\dfrac{1}{2}\ln(2n\pi)}{\dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n} \\ \\ & = \displaystyle \lim_{n\to\infty} \dfrac{-\dfrac{1}{2n}}{\dfrac{1}{2n} + \ln(n) + 1 - 1} = 0 \end{array}
因此,由于误差在 n 取大值时趋于零,我们可以自信地使用以下对数近似:
\boxed{\ln(n!) \approx n\ln(n) - n}
示例:大数阶乘的近似计算
计算非常大的数的阶乘,例如 10,000!,几乎无法通过常规工具完成,因为结果的数量级太大。然而,利用斯特林公式导出的对数近似方法,我们甚至可以用基础计算器进行处理。
阶乘的对数公式为:
\ln(10,000!) \approx 10,000 \ln(10,000) - 10,000
为了将自然对数 (\ln) 转换为以 10 为底的对数 (\log),我们使用以下关系:
\ln(10,000!) = \dfrac{\log(10,000!)}{\log(e)}
这意味着:
\log(10,000!) \approx \log(e) \cdot (10,000 \ln(10,000) - 10,000)
因此:
10,000! \approx 10^{\log(e) \cdot (10,000 \ln(10,000) - 10,000)} \approx 10^{35,657.06}
我们注意到,指数中的表达式对于大多数计算器而言是可控的。因此,尽管由于其巨大规模我们无法直接看到这个数字,但可以知道它大约有 35,657 位数字。这种方法将看似无法完成的计算变成了可实现的任务。
