史特靈公式 (英語:Stirling's formula )是一條用來取n階乘 近似值 的數學 公式 。一般來說,當n很大的時候,n階乘的計算量十分大,所以史特靈公式十分好用,而且,即使在n很小的時候,史特靈公式的取值已經十分準確。這個公式以詹姆斯·史特靈 的名字命名,雖然亞伯拉罕·棣美弗 早於史特靈提出了一個類似的公式,但結果較不精確。[ 1] [ 2] [ 3]
當n 增加時,(ln n !)與o (n ln n − n )之比趨於1
n
!
{\displaystyle n!}
(藍色)、
2
π
n
(
n
e
)
n
{\displaystyle {\sqrt {2\pi n}}\left({\frac {n}{e}}\right)^{n}}
(橘色),數字越大
2
π
n
(
n
e
)
n
,
{\displaystyle {\sqrt {2\pi n}}\left({\frac {n}{e}}\right)^{n},}
會越趨近
n
!
{\displaystyle n!}
。但
2
π
n
(
n
e
)
n
{\displaystyle {\sqrt {2\pi n}}\left({\frac {n}{e}}\right)^{n}}
在負值則會因為出現虛數而無法使用
史特靈公式為:
n
!
≈
2
π
n
(
n
e
)
n
.
{\displaystyle n!\approx {\sqrt {2\pi n}}\,\left({\frac {n}{e}}\right)^{n}.}
這就是說,對於足夠大的整數n ,這兩個數互為近似值。更加精確地:
lim
n
→
∞
n
!
2
π
n
(
n
e
)
n
=
1
{\displaystyle \lim _{n\rightarrow \infty }{\frac {n!}{{\sqrt {2\pi n}}\,\left({\frac {n}{e}}\right)^{n}}}=1}
或
lim
n
→
∞
e
n
n
!
n
n
n
=
2
π
.
{\displaystyle \lim _{n\rightarrow \infty }{\frac {e^{n}\,n!}{n^{n}{\sqrt {n}}}}={\sqrt {2\pi }}.}
這個公式是亞伯拉罕·棣莫弗 首先發現的,形式為:
n
!
≈
c
n
n
+
1
2
e
−
n
{\displaystyle \displaystyle n!\approx cn^{n+{\frac {1}{2}}}e^{-n}}
,其中c為常數。
斯特林 證明了公式中
c
=
2
π
{\displaystyle c={\sqrt {2\pi }}}
,約為2.506628274631。更加精確的形式是雅克·比內 發現的。
這個公式,以及誤差的估計,可以推導如下。首先不直接估計n !,而是考慮它的自然對數 :
ln
(
n
!
)
=
ln
1
+
ln
2
+
⋯
+
ln
n
.
{\displaystyle \ln(n!)=\ln 1+\ln 2+\cdots +\ln n.}
即:
ln
(
n
!
)
−
ln
n
2
=
ln
1
+
ln
2
+
⋯
+
ln
n
−
ln
n
2
.
{\displaystyle \ln(n!)-{\frac {\ln n}{2}}=\ln 1+\ln 2+\cdots +\ln n-{\frac {\ln n}{2}}.}
這個方程的右面是積分
∫
1
n
ln
(
x
)
d
x
=
n
ln
n
−
n
+
1
{\displaystyle \int _{1}^{n}\ln(x)\,dx=n\ln n-n+1}
的近似值(利用梯形法則 ),而它的誤差 由歐拉-麥克勞林公式 給出:
ln
(
n
!
)
−
ln
n
2
=
ln
1
+
ln
2
+
⋯
+
ln
(
n
−
1
)
+
ln
n
2
=
n
ln
n
−
n
+
1
+
∑
k
=
2
m
B
k
(
−
1
)
k
k
(
k
−
1
)
(
1
n
k
−
1
−
1
)
+
R
m
,
n
.
{\displaystyle \ln(n!)-{\frac {\ln n}{2}}=\ln 1+\ln 2+\cdots +\ln(n-1)+{\frac {\ln n}{2}}=n\ln n-n+1+\sum _{k=2}^{m}{\frac {B_{k}{(-1)}^{k}}{k(k-1)}}\left({\frac {1}{n^{k-1}}}-1\right)+R_{m,n}.}
其中B k 是伯努利數 ,R m,n 是歐拉-麥克勞林公式中的餘項。取極限,可得:
lim
n
→
∞
(
ln
n
!
−
n
ln
n
+
n
−
ln
n
2
)
=
1
−
∑
k
=
2
m
B
k
(
−
1
)
k
k
(
k
−
1
)
+
lim
n
→
∞
R
m
,
n
.
{\displaystyle \lim _{n\to \infty }\left(\ln n!-n\ln n+n-{\frac {\ln n}{2}}\right)=1-\sum _{k=2}^{m}{\frac {B_{k}{(-1)}^{k}}{k(k-1)}}+\lim _{n\to \infty }R_{m,n}.}
把這個極限記為y 。由於歐拉-麥克勞林公式中的餘項R m ,n 滿足:
R
m
,
n
=
lim
n
→
∞
R
m
,
n
+
O
(
1
n
2
m
−
1
)
,
{\displaystyle R_{m,n}=\lim _{n\to \infty }R_{m,n}+O\left({\frac {1}{n^{2m-1}}}\right),}
其中用到了大O符號 ,與以上的方程結合,便得出對數形式的近似公式:
ln
n
!
=
n
ln
(
n
e
)
+
ln
n
2
+
y
+
∑
k
=
2
m
B
k
(
−
1
)
k
k
(
k
−
1
)
n
k
−
1
+
O
(
1
n
2
m
−
1
)
.
{\displaystyle \ln n!=n\ln \left({\frac {n}{e}}\right)+{\frac {\ln n}{2}}+y+\sum _{k=2}^{m}{\frac {B_{k}{(-1)}^{k}}{k(k-1)n^{k-1}}}+O\left({\frac {1}{n^{2m-1}}}\right).}
兩邊取指數,並選擇任何正整數m ,便得到了一個含有未知數e y 的公式。當m =1 時,公式為:
n
!
=
e
y
n
(
n
e
)
n
[
1
+
O
(
1
n
)
]
{\displaystyle n!=e^{y}{\sqrt {n}}~{\left({\frac {n}{e}}\right)}^{n}\left[1+O\left({\frac {1}{n}}\right)\right]}
將上述表達式代入沃利斯乘積 公式,並令n 趨於無窮,便可以得出e y (
e
y
=
2
π
{\displaystyle e^{y}={\sqrt {2\pi }}}
)。因此,我們便得出斯特林公式:
n
!
=
2
π
n
(
n
e
)
n
[
1
+
O
(
1
n
)
]
{\displaystyle n!={\sqrt {2\pi n}}~{\left({\frac {n}{e}}\right)}^{n}\left[1+O\left({\frac {1}{n}}\right)\right]}
這個公式也可以反覆使用分部積分法 來得出,首項可以通過最速下降法 得到。把以下的和
ln
(
n
!
)
=
∑
j
=
1
n
ln
j
{\displaystyle \ln(n!)=\sum _{j=1}^{n}\ln j}
用積分近似代替,可以得出不含
2
π
n
{\displaystyle {\sqrt {2\pi n}}}
的因子的斯特林公式(這個因子通常在實際應用中無關):
∑
j
=
1
n
ln
j
≈
∫
1
n
ln
x
d
x
=
n
ln
n
−
n
+
1.
{\displaystyle \sum _{j=1}^{n}\ln j\approx \int _{1}^{n}\ln x\,dx=n\ln n-n+1.}
考慮如下近似關係:
ln
n
!
=
∑
k
=
1
n
ln
k
≈
∫
1
n
ln
x
d
x
=
n
ln
n
−
n
+
1
≈
n
ln
n
−
n
{\displaystyle {\begin{aligned}\ln n!&=\sum _{k=1}^{n}\ln k\\&\approx \int _{1}^{n}\ln x\mathrm {d} x=n\ln n-n+1\\&\approx n\ln n-n\end{aligned}}}
以及階乘的積分形式(Γ函數 ):
n
!
=
∫
0
∞
e
−
x
x
n
d
x
{\displaystyle n!=\int _{0}^{\infty }\mathrm {e} ^{-x}x^{n}\mathrm {d} x}
其中被積函數取對數後求導結果可寫成:
d
d
x
ln
(
e
−
x
x
n
)
=
d
d
x
(
n
ln
x
−
x
)
=
n
x
−
1
{\displaystyle {\frac {\mathrm {d} }{\mathrm {d} x}}\ln(\mathrm {e} ^{-x}x^{n})={\frac {\mathrm {d} }{\mathrm {d} x}}(n\ln x-x)={\frac {n}{x}}-1}
因此被積函數只有在
x
=
n
{\displaystyle x=n}
附近才趨於平穩,現令
x
≡
n
+
ξ
{\displaystyle x\equiv n+\xi }
且
ξ
≪
n
{\displaystyle \xi \ll n}
,並改寫成如下形式:
ln
(
x
n
e
−
x
)
=
n
ln
x
−
x
=
n
ln
(
n
+
ξ
)
−
(
n
+
ξ
)
{\displaystyle \ln(x^{n}\mathrm {e} ^{-x})=n\ln x-x=n\ln(n+\xi )-(n+\xi )}
於是有:
ln
(
n
+
ξ
)
=
ln
[
n
(
1
+
ξ
n
)
]
=
ln
n
+
ln
(
1
+
ξ
n
)
=
ln
n
+
ξ
n
−
ξ
2
2
n
2
+
⋯
{\displaystyle {\begin{aligned}\ln(n+\xi )&=\ln \left[n\left(1+{\frac {\xi }{n}}\right)\right]=\ln n+\ln \left(1+{\frac {\xi }{n}}\right)\\&=\ln n+{\frac {\xi }{n}}-{\frac {\xi ^{2}}{2n^{2}}}+\cdots \end{aligned}}}
因此可以得到:
ln
(
x
n
e
−
x
)
=
n
ln
(
n
+
ξ
)
−
(
n
+
ξ
)
=
n
ln
n
+
ξ
−
ξ
2
2
n
−
n
−
ξ
+
⋯
=
n
ln
n
−
n
−
ξ
2
2
n
+
⋯
{\displaystyle {\begin{aligned}\ln(x^{n}\mathrm {e} ^{-x})&=n\ln(n+\xi )-(n+\xi )\\&=n\ln n+\xi -{\frac {\xi ^{2}}{2n}}-n-\xi +\cdots \\&=n\ln n-n-{\frac {\xi ^{2}}{2n}}+\cdots \end{aligned}}}
兩邊同時作指數函數 運算,變成:
x
n
e
−
x
≈
e
n
ln
n
e
−
n
e
−
ξ
2
2
n
=
n
n
e
−
n
e
−
ξ
2
2
n
{\displaystyle {\begin{aligned}x^{n}\mathrm {e} ^{-x}&\approx \mathrm {e} ^{n\ln n}\mathrm {e} ^{-n}\mathrm {e} ^{-{\frac {\xi ^{2}}{2n}}}\\&=n^{n}\mathrm {e} ^{-n}\mathrm {e} ^{-{\frac {\xi ^{2}}{2n}}}\end{aligned}}}
代入到階乘的積分表示形式,得到:
n
!
≈
∫
−
n
∞
n
n
e
−
n
e
−
ξ
2
2
n
d
ξ
≈
n
n
e
−
n
∫
−
∞
∞
e
−
ξ
2
2
n
d
ξ
{\displaystyle {\begin{aligned}n!&\approx \int _{-n}^{\infty }n^{n}\mathrm {e} ^{-n}\mathrm {e} ^{-{\frac {\xi ^{2}}{2n}}}\mathrm {d} \xi \\&\approx n^{n}\mathrm {e} ^{-n}\int _{-\infty }^{\infty }\mathrm {e} ^{-{\frac {\xi ^{2}}{2n}}}\mathrm {d} \xi \end{aligned}}}
約等號後側得到的是高斯積分 的形式,計算該積分得出斯特林公式:
n
!
≈
n
n
e
−
n
2
π
n
{\displaystyle n!\approx n^{n}\mathrm {e} ^{-n}{\sqrt {2\pi n}}}
y軸表示截斷的斯特林級數的相對誤差,x軸表示所使用的項數。
更加精確的近似公式為:
n
!
=
2
π
n
(
n
e
)
n
e
λ
n
{\displaystyle n!={\sqrt {2\pi n}}\;\left({\frac {n}{e}}\right)^{n}e^{\lambda _{n}}}
其中:
1
12
n
+
1
<
λ
n
<
1
12
n
.
{\displaystyle {\frac {1}{12n+1}}<\lambda _{n}<{\frac {1}{12n}}.}
斯特林公式實際上是以下級數(現在稱為斯特林級數 )的第一個近似值:
n
!
=
2
π
n
(
n
e
)
n
(
1
+
1
12
n
+
1
288
n
2
−
139
51840
n
3
−
571
2488320
n
4
+
⋯
)
.
{\displaystyle n!={\sqrt {2\pi n}}\left({n \over e}\right)^{n}\left(1+{1 \over 12n}+{1 \over 288n^{2}}-{139 \over 51840n^{3}}-{571 \over 2488320n^{4}}+\cdots \right).}
當
n
→
∞
{\displaystyle n\to \infty }
時,截斷級數的誤差等於第一個省略掉的項。這是漸近展開式 的一個例子。它不是一個收斂級數 ;對於任何特殊值n ,級數的準確性只在取有限個項時達到最大,如果再取更多的項,則準確性將變得越來越差。
階乘的對數的漸近展開式也稱為斯特林級數:
ln
n
!
=
n
ln
n
−
n
+
1
2
ln
(
2
π
n
)
+
1
12
n
−
1
360
n
3
+
1
1260
n
5
−
1
1680
n
7
+
⋯
.
{\displaystyle \ln n!=n\ln n-n+{1 \over 2}\ln(2\pi n)+{1 \over 12n}-{1 \over 360n^{3}}+{1 \over 1260n^{5}}-{1 \over 1680n^{7}}+\cdots .}
在這種情況下,級數的誤差總是與第一個省略掉的項異號,且最多同大小。
欲得出斯特林公式的一個收斂形式,我們必須計算:
∫
0
∞
2
arctan
t
z
exp
(
2
π
t
)
−
1
d
t
=
ln
Γ
(
z
)
−
(
z
−
1
2
)
ln
z
+
z
−
1
2
ln
(
2
π
)
.
{\displaystyle \int _{0}^{\infty }{\frac {2\arctan {\frac {t}{z}}}{\exp(2\pi t)-1}}\,dt=\ln \Gamma (z)-\left(z-{\frac {1}{2}}\right)\ln z+z-{\frac {1}{2}}\ln(2\pi ).}
一種方法是利用含有上升階乘冪 的級數。如果
z
n
¯
=
z
(
z
+
1
)
⋯
(
z
+
n
−
1
)
{\displaystyle z^{\overline {n}}=z(z+1)\cdots (z+n-1)}
,那麼:
∫
0
∞
2
arctan
t
z
exp
(
2
π
t
)
−
1
d
t
=
∑
n
=
1
∞
c
n
(
z
+
1
)
n
¯
{\displaystyle \int _{0}^{\infty }{\frac {2\arctan {\frac {t}{z}}}{\exp(2\pi t)-1}}\,dt=\sum _{n=1}^{\infty }{\frac {c_{n}}{(z+1)^{\overline {n}}}}}
其中:
c
n
=
1
n
∫
0
1
x
n
¯
(
x
−
1
2
)
d
x
.
{\displaystyle c_{n}={\frac {1}{n}}\int _{0}^{1}x^{\overline {n}}\left(x-{\frac {1}{2}}\right)\,dx.}
從中可以得出斯特林級數的一個收斂形式:
ln
Γ
(
z
)
=
(
z
−
1
2
)
ln
z
−
z
+
ln
2
π
2
{\displaystyle \ln \Gamma (z)=\left(z-{\frac {1}{2}}\right)\ln z-z+{\frac {\ln {2\pi }}{2}}}
+
1
12
(
z
+
1
)
+
1
12
(
z
+
1
)
(
z
+
2
)
+
59
360
(
z
+
1
)
(
z
+
2
)
(
z
+
3
)
+
29
60
(
z
+
1
)
(
z
+
2
)
(
z
+
3
)
(
z
+
4
)
+
⋯
{\displaystyle {}+{\frac {1}{12(z+1)}}+{\frac {1}{12(z+1)(z+2)}}+{\frac {59}{360(z+1)(z+2)(z+3)}}+{\frac {29}{60(z+1)(z+2)(z+3)(z+4)}}+\cdots }
它在
ℜ
(
z
)
>
0
{\displaystyle \Re (z)>0}
時收斂。
以下的近似值
Γ
(
z
)
≈
2
π
z
(
z
e
z
sinh
1
z
+
1
810
z
6
)
z
,
{\displaystyle \Gamma (z)\approx {\sqrt {\frac {2\pi }{z}}}\left({\frac {z}{e}}{\sqrt {z\sinh {\frac {1}{z}}+{\frac {1}{810z^{6}}}}}\right)^{z},}
或
2
ln
Γ
(
z
)
≈
ln
(
2
π
)
−
ln
z
+
z
[
2
ln
z
+
ln
(
z
sinh
1
z
+
1
810
z
6
)
−
2
]
,
{\displaystyle 2\ln \Gamma (z)\approx \ln(2\pi )-\ln z+z\left[2\ln z+\ln \left(z\sinh {\frac {1}{z}}+{\frac {1}{810z^{6}}}\right)-2\right],}
可以通過把斯特林公式整理,並注意到它的冪級數與雙曲正弦 函數的泰勒級數 展開式的相似性來得出。當z 的實數部分大於8時,這個近似值精確到小數點後8位。2002年,Robert H. Windschitl建議計算器用這個公式來計算伽瑪函數。
Gergő Nemes在2007年提出了一個近似公式,它的精確度與Windschitl的公式相等,但更加簡單:
Γ
(
z
)
≈
2
π
z
[
1
e
(
z
+
1
12
z
−
1
10
z
)
]
z
,
{\displaystyle \Gamma (z)\approx {\sqrt {\frac {2\pi }{z}}}\left[{\frac {1}{e}}\left(z+{\frac {1}{12z-{\frac {1}{10z}}}}\right)\right]^{z},}
或
ln
Γ
(
z
)
≈
1
2
[
ln
(
2
π
)
−
ln
z
]
+
z
[
ln
(
z
+
1
12
z
−
1
10
z
)
−
1
]
{\displaystyle \ln \Gamma (z)\approx {\frac {1}{2}}\left[\ln(2\pi )-\ln z\right]+z\left[\ln \left(z+{\frac {1}{12z-{\frac {1}{10z}}}}\right)-1\right]}
Abramowitz, M. and Stegun, I., Handbook of Mathematical Functions , http://www.math.hkbu.edu.hk/support/aands/toc.htm( 頁面存檔備份 ,存於網際網路檔案館 )
夏慧異,章家順, 史特靈公式在高等數學中的應用 , http://ordostsg.org.cn:1080/KCMS/detail/detail.aspx?filename=XUSJ200904014&dbcode=CJFR&dbname=
Paris, R. B., and Kaminsky, D., Asymptotics and the Mellin-Barnes Integrals , Cambridge University Press, 2001
Whittaker, E. T., and Watson, G. N., A Course in Modern Analysis , fourth edition, Cambridge University Press, 1963. ISBN 0-521-58807-3
Viktor T. Toth. " Programmable Calculators: Calculators and the Gamma Function" . 2006 [2018-11-18 ] . (原始內容 存檔於2007-02-23). , modified 2006
埃里克·韋斯坦因 . Stirling's Approximation . MathWorld .
Stirling's approximation at PlanetMath .
Dutka, Jacques, The early history of the factorial function, Archive for History of Exact Sciences , 1991, 43 (3): 225–249, doi:10.1007/BF00389433
Le Cam, L. , The central limit theorem around 1935, Statistical Science, 1986, 1 (1): 78–96, JSTOR 2245503 , MR 0833276 , doi:10.1214/ss/1177013818 ; see p. 81, "The result, obtained using a formula originally proved by de Moivre but now called Stirling's formula, occurs in his 'Doctrine of Chances' of 1733."
Pearson, Karl, Historical note on the origin of the normal curve of errors, Biometrika, 1924, 16 (3/4): 402–404 [p. 403], JSTOR 2331714 , doi:10.2307/2331714 , I consider that the fact that Stirling showed that De Moivre's arithmetical constant was
2
π
{\displaystyle {\sqrt {2\pi }}}
does not entitle him to claim the theorem, [...]