图:Geek3 · CC BY 3.0 · Wikimedia Commons
- 类型
- 定理
- 发现者 / 提出者
- 亚伯拉罕·棣莫弗
- 命名来源
- 斯特灵 (数学家)
- 属于
- 数学定理列表
- 研究学科
- 实变函数论
- 学科
- 数学
- 是……的一个方面
- 阶乘
相关科学家
百科正文
斯特林公式为: n!≈ √(2π n) (n/e)ⁿ.
这就是说,对于足够大的整数n,这两个数互为近似值。更加精确地: (公式略)
或 (公式略)
历史
这个公式是亚伯拉罕·棣莫弗首先发现的,形式为: n!≈ cn^(n+1/2)e⁻ⁿ,其中c为常量。
斯特林证明了公式中 c=√(2π),约为2.506628274631。更加精确的形式是雅克·比内发现的。
推导
方法一
这个公式,以及误差的估计,可以推导如下。首先不直接估计n!,而是考虑它的自然对数: ln(n!)=ln 1+ln 2+⋯ +ln n.
即: ln(n!)-(ln n)/2=ln 1+ln 2+⋯ +ln n-(ln n)/2.
这个方程的右面是积分 ∫ ₁ⁿln(x) dx=nln n-n+1 的近似值(利用梯形法则),而它的误差由欧拉-麦克劳林公式给出: (公式略)
其中Bk是伯努利数,Rm,n是欧拉-麦克劳林公式中的余项。取极限,可得: (公式略)
把这个极限记为y。由于欧拉-麦克劳林公式中的余项Rm,n满足: (公式略)
其中用到了大O符号,与以上的方程结合,便得出对数形式的近似公式: (公式略)
两边取指数,并选择任何正整数m,便得到了一个含有未知数ey的公式。当m=1时,公式为: n!=e^(y)√n (n/e)ⁿ[1+O(1/n)]
将上述表达式代入沃利斯乘积公式,并令n趋于无穷,便可以得出ey( e^(y)=√(2π))。因此,我们便得出斯特林公式: n!=√(2π n) (n/e)ⁿ[1+O(1/n)]
这个公式也可以反复使用分部积分法来得出,首项可以通过最速下降法得到。把以下的和 ln(n!)=∑ ⱼ₌₁ⁿln j
用积分近似代替,可以得出不含 √(2π n) 的因子的斯特林公式(这个因子通常在实际应用中无关): ∑ ⱼ₌₁ⁿln j≈ ∫ ₁ⁿln x dx=nln n-n+1.
方法二
考虑如下近似关系: (公式略)
以及阶乘的积分形式(Γ函数): n!=∫ ₀^(∞)e ^(-x)xⁿd x
其中被积函数取对数后求导结果可写成: d/(d x)ln(e ^(-x)xⁿ)=d/(d x)(nln x-x)=n/x-1
因此被积函数只有在 x=n 附近才趋于平稳,现令 x≡ n+ξ 且 (公式略),并改写成如下形式: ln(xⁿe ^(-x))=nln x-x=nln(n+ξ)-(n+ξ)
- 于是有: (公式略)
- 因此可以得到: (公式略)
- 两边同时作指数函数运算,变成: (公式略)
- 代入到阶乘的积分表示形式,得到: (公式略)
约等号后侧得到的是高斯积分的形式,计算该积分得出斯特林公式: n!≈ nⁿe ⁻ⁿ√(2π n)
收敛速率和误差估计
更加精确的近似公式为: n!=√(2π n) (n/e)ⁿe^λ ₙ
其中: 1/(12n+1)<λ ₙ<1/12n.
斯特林公式实际上是以下级数(现在称为斯特林级数)的第一个近似值: (公式略)
当 n→ ∞ 时,截断级数的误差等于第一个省略掉的项。这是渐近展开式的一个例子。它不是一个收敛级数;对于任何特殊值n,级数的准确性只在取有限个项时达到最大,如果再取更多的项,则准确性将变得越来越差。
阶乘的对数的渐近展开式也称为斯特林级数: (公式略)
在这种情况下,级数的误差总是与第一个省略掉的项异号,且最多同大小。
伽玛函数的斯特林公式
对于所有正整数,有: n!=Π (n)=Γ (n+1).
然而,伽玛函数与阶乘不一样,它对于所有复数都有定义。尽管如此,斯特林公式仍然适用。如果 Re (z)>0,那么: (公式略)
反复使用分部积分法,可得以下渐近展开式: (公式略)
其中Bn是第n个伯努利数。当 |arg z|<π -ε,其中ε是正数时,这个公式对于绝对值足够大的z是适用的,当使用了最初m个项时,误差项为 O(z^(-m-1/2))。对应的近似值可以写为: Γ (z)=√((2π)/z) (z/e)^(z)[1+O(1/z)].
斯特林公式的收敛形式
欲得出斯特林公式的一个收敛形式,我们必须计算: (公式略)
一种方法是利用含有上升阶乘幂的级数。如果 zⁿ=z(z+1)⋯ (z+n-1),那么: (公式略)
其中: cₙ=1/n∫ ₀¹xⁿ(x-1/2) dx.
从中可以得出斯特林级数的一个收敛形式: (公式略)
+ (公式略)
它在 Re (z)>0 时收敛。
适用于计算器的形式
以下的近似值 (公式略)
或 (公式略)
可以通过把斯特林公式整理,并注意到它的幂级数与双曲正弦函数的泰勒级数展开式的相似性来得出。当z的实数部分大于8时,这个近似值精确到小数点后8位。2002年,Robert H. Windschitl建议计算器用这个公式来计算伽玛函数。
Gergő Nemes在2007年提出了一个近似公式,它的精确度与Windschitl的公式相等,但更加简单: (公式略)
或 (公式略)
以上内容摘自维基百科「史特靈公式」,按 CC BY-SA 4.0 使用,去掉了参考文献、外部链接等尾部小节,公式改写成了纯文本。全文、配图和出处见原文。