テンプレート:No footnotes
log n ! と n log n − n は n → ∞ のとき漸近する
スターリングの近似 (テンプレート:Lang-en-short )またはスターリングの公式 (テンプレート:Lang-en-short )は、階乗 、あるいはその拡張の一つであるガンマ関数 の漸近近似 である。名称は数学者テンプレート:仮リンク にちなむ。
概要
スターリングの近似は精度に応じていくつかの形がある。応用上よく使われる形の公式は、ランダウの記号 を用いて、
log n ! = n log n − n + O ( log n )
である。テンプレート:Math における次の項は テンプレート:Math である。故に、次によい近似のテンプレート:仮リンク は
n ! ∼ 2 π n ( n e ) n
である[ 1] 。(ここで記号 ∼ は両辺の比が(n → ∞ のとき) 1 に収束することを意味する。)
テンプレート:Math の漸近近似よりもむしろ上下からの評価が必要なことがある。そのような評価として、任意の正の整数 テンプレート:Math に対して
2 π n n + 1 / 2 e − n ≤ n ! ≤ e n n + 1 / 2 e − n
が成り立ち[ 2] 、従って任意の テンプレート:Math に対して比 テンプレート:Math は テンプレート:Math と テンプレート:Math の間にある。
スターリングの近似は階乗の複素引数への拡張の一つであるガンマ関数 テンプレート:Math (正の整数 テンプレート:Mvar に対し テンプレート:Math が成り立つ;ボーア・モレルップの定理 も参照)に拡張することができ、
Γ ( z ) ∼ 2 π z ( z e ) z ( | arg z | ≤ π − ε , | z | → ∞ )
が成り立つ(ただし テンプレート:Math )テンプレート:Sfn 。テンプレート:Math のときは収束が遅くなるため、応用上は相補公式 などを用いて テンプレート:Math 程度に制限することが多い。
導出
初等的な導出
スターリングの公式の厳密な証明にはオイラーの和公式 、あるいは鞍点法 といった複素解析の技法などを用いられることが多いが、初等的に導くことも可能である。まず階乗の対数 を積分で近似する。logが凹関数 であることから k-1<x<k (k=2,3,...) に対して
log k − ( k − x ) { log k − log ( k − 1 ) } < log x < log k − 1 k ( k − x )
これを k-1 から k まで積分して
log k − 1 2 { log k − log ( k − 1 ) } < ∫ k − 1 k log x d x < log k − 1 2 k ∫ k − 1 k log x d x + 1 2 k < log k < ∫ k − 1 k log x d x + 1 2 { log k − log ( k − 1 ) }
k=m+1,m+2,...,n に対して足し合わせると
log n ! m ! = ∑ k = m + 1 n log k > ∫ m n log x d x + ∑ k = m + 1 n 1 2 k > ∫ m n log x d x + 1 2 n − 1 2 m + ∫ m n 1 2 x d x = ( n + 1 / 2 ) log n − n + 1 / ( 2 n ) − ( m + 1 / 2 ) log m + m − 1 / ( 2 m ) log n ! m ! = ∑ k = m + 1 n log k < ∫ m n log x d x + 1 2 { log n − log m } = ( n + 1 / 2 ) log n − n − ( m + 1 / 2 ) log m + m
n n + 1 / 2 e − n + 1 / ( 2 n ) m m + 1 / 2 e − m + 1 / ( 2 m ) < n ! m ! < n n + 1 / 2 e − n m m + 1 / 2 e − m
ここで a n = n ! n n + 1 / 2 e − n と定めると
e 1 / ( 2 n ) e 1 / ( 2 m ) < a n a m < 1
m,n→∞のとき最左辺は1に収束するから、特に n=2m のとき
lim m → ∞ a 2 m a m = 1
これとウォリスの公式 の系 lim n → ∞ 4 n ( n ! ) 2 n ( 2 n ) ! = π と比較すると、
4 n ( n ! ) 2 n ( 2 n ) ! = 4 n ( a n n n + 1 / 2 e − n ) 2 n a 2 n ( 2 n ) 2 n + 1 / 2 e − 2 n = a n 2 2 a 2 n
lim n → ∞ a n = lim n → ∞ 4 n ( n ! ) 2 n ( 2 n ) ! 2 a 2 n a n = 2 π
を得る。
精度の改善
精度を改善するために an を評価する。
log a m a m + 1 = log m ! − ( m + 1 2 ) log m + m − log ( m + 1 ) ! + ( m + 3 2 ) log ( m + 1 ) − m − 1 = ( m + 1 2 ) log ( 1 + 1 m ) − 1 = ( m + 1 2 ) ∑ k = 1 ∞ ( − 1 ) k − 1 k 1 m k − 1 = ∑ k = 0 ∞ ( − 1 ) k k + 1 1 m k + ∑ k = 1 ∞ ( − 1 ) k − 1 2 k 1 m k − 1 = ∑ k = 2 ∞ ( k − 1 ) ( − 1 ) k 2 k ( k + 1 ) 1 m k
log a n 2 π = ∑ m = n ∞ log a m a m + 1 = ∑ k = 2 ∞ ( k − 1 ) ( − 1 ) k 2 k ( k + 1 ) ∑ m = n ∞ 1 m k = ∑ k = 2 ∞ ( − 1 ) k 2 k ( k + 1 ) { 1 n k − 1 + O ( 1 n k ) } = 1 1 2 n + O ( 1 n 2 )
従って
n ! ∼ 2 π n ( n e ) n exp ( 1 1 2 n )
オイラーの和公式による導出
オイラーの乗積表示によるガンマ関数 の定義の対数をとり
log Γ ( z ) = log { ( z − 1 ) Γ ( z − 1 ) } = lim N → ∞ ( z − 1 ) log N + ∑ n = 1 N { log n − log ( n + z − 1 ) }
f ( n ) = log n − log ( n + z − 1 ) にオイラーの和公式 を適用すれば
log Γ ( z ) = lim N → ∞ ( z − 1 ) log N + ∫ n = 1 N f ( n ) d n + 1 2 ( f ( N ) + f ( 1 ) ) + ∑ k = 1 m B 2 k ( 2 k ) ! ( f ( 2 k − 1 ) ( N ) − f ( 2 k − 1 ) ( 1 ) ) + ∫ n = 1 N B 2 m + 1 ( n − ⌊ n ⌋ ) ( 2 m + 1 ) ! f ( 2 m + 1 ) ( n ) d n = lim N → ∞ ( z − 1 ) log N + [ n log n − n − ( n + z − 1 ) log ( n + z − 1 ) + ( n + z − 1 ) ] n = 1 N + 1 2 { log N − log ( N + z − 1 ) − log z } + ∑ k = 1 m B 2 k ( 2 k ) ( 2 k − 1 ) { 1 N 2 k − 1 − 1 ( N + z − 1 ) 2 k − 1 − 1 + 1 z 2 k − 1 } + ∫ n = 1 N B 2 m + 1 ( n − ⌊ n ⌋ ) 2 m + 1 { 1 n 2 m + 1 − 1 ( n + z − 1 ) 2 m + 1 } d n = lim N → ∞ ( N + z − 1 2 ) { log N − log ( N + z − 1 ) } + ( z − 1 2 ) log z + ∑ k = 1 m B 2 k ( 2 k ) ( 2 k − 1 ) { 1 N 2 k − 1 − 1 ( N + z − 1 ) 2 k − 1 − 1 + 1 z 2 k − 1 } + ∫ n = 1 N B 2 m + 1 ( n − ⌊ n ⌋ ) 2 m + 1 { 1 n 2 m + 1 − 1 ( n + z − 1 ) 2 m + 1 } d n = − z + 1 + ( z − 1 2 ) log z − ∑ k = 1 m B 2 k ( 2 k ) ( 2 k − 1 ) ( 1 − 1 z 2 k − 1 ) + ∫ n = 1 N B 2 m + 1 ( n − ⌊ n ⌋ ) 2 m + 1 { 1 n 2 m + 1 − 1 ( n + z − 1 ) 2 m + 1 } d n
となる。右辺の定数を集めて
C = 1 − ∑ k = 1 m B 2 k ( 2 k ) ( 2 k − 1 ) + ∫ n = 1 N B 2 m + 1 ( n − ⌊ n ⌋ ) d n ( 2 m + 1 ) n 2 m + 1
とすれば
log Γ ( z ) = C − z + ( z − 1 2 ) log z + ∑ k = 1 m B 2 k ( 2 k ) ( 2 k − 1 ) z 2 k − 1 − ∫ n = 1 N B 2 m + 1 ( n − ⌊ n ⌋ ) d n ( 2 m + 1 ) ( n + z − 1 ) 2 m + 1
となり、この主要部をガンマ関数の相補公式 に代入して z → i ∞ とすれば
Γ ( z ) Γ ( 1 − z ) = − z Γ ( z ) Γ ( − z ) = π sin π z
π i + log z + log Γ ( z ) + log Γ ( − z ) − log sin π z − log π = 0
π i + log z + C − z + ( z − 1 2 ) log z + C + z + ( − z − 1 2 ) ( π i + log z ) − log sin π z − log π = 0
2 C + π i 2 − π i z − log sin π z − log π = 0
となるが
log sin π z = log ( e π i z − e − π i z ) − π i 2 − log 2 ∼ π i z − π i 2 − log 2
であるから
C = log 2 π 2
を得る。剰余項については
α = 2 1 + cos arg z
として
| ∫ n = 1 N B 2 m + 1 ( n − ⌊ n ⌋ ) d n ( 2 m + 1 ) ( n + z − 1 ) 2 m + 1 | ≤ | B 2 m | 2 m ∫ n = 1 N d n | n + z − 1 | 2 m + 1 ≤ | B 2 m | 2 m α 2 m + 1 ∫ n = 1 N d n ( n + | z | − 1 ) 2 m + 1 = | B 2 m | α 2 m + 1 | z | 2 m = O ( z − 2 m )
である。故に
テンプレート:Indent
を得る。最初の数項を書き下せば
log Γ ( z ) ∼ log 2 π − z + ( z − 1 2 ) log z + 1 1 2 z − 1 3 6 0 z 3 + 1 1 2 6 0 z 5 − 1 1 6 8 0 z 7 + 1 1 1 8 8 z 9
Γ ( z ) ∼ 2 π z ( z e ) z exp ( 1 1 2 z − 1 3 6 0 z 3 + 1 1 2 6 0 z 5 − 1 1 6 8 0 z 7 + 1 1 1 8 8 z 9 )
とやり、指数関数のテイラー展開 により
Γ ( z ) ∼ 2 π z ( z e ) z ( 1 + 1 1 2 z + 1 2 8 8 z 2 − 1 3 9 5 1 8 4 0 z 3 )
となる。
鞍点法による導出
スターリングの公式は鞍点法 の好適例とされることが多いが、実際に複素平面全体(負の実数を除く)で漸近近似が成立することを鞍点法によって示すのは困難であるから、ここでは z を正の実数 に限定する。ガンマ関数 は t = z ( 1 + u ) の置換により
Γ ( z + 1 ) = ∫ 0 ∞ t z e − t d t = ∫ − 1 ∞ z z ( 1 + u ) z e − z − z u z d u = z z + 1 e − z ∫ − 1 ∞ e − z { u − log ( 1 + u ) } d u = z z + 1 e − z ( ∫ − 1 − ε e − z { u − log ( 1 + u ) } d u + ∫ − ε ε e − z { u − log ( 1 + u ) } d u + ∫ ε ∞ e − z { u − log ( 1 + u ) } d u ) ( ε ≪ 1 )
となるが、z が十分に大きければ u = 0 の付近が支配的であるから
Γ ( z + 1 ) ≈ z z + 1 e − z ∫ − ε ε e − z { u − log ( 1 + u ) } d u ≈ z z + 1 e − z ∫ − ε ε e − z u 2 2 d u ≈ z z + 1 e − z ∫ − ∞ ∞ e − z u 2 2 d u
という近似が許され、ガウス積分 により
Γ ( z + 1 ) ∼ z z + 1 e − z 2 π z = 2 π z ( z e ) z
を得る。ε = z − 1 3 として、近似の誤差は
| ∫ − 1 − ε e − z { u − log ( 1 + u ) } d u | ≤ 1 ε ∫ − 1 − ε | − u ( 1 + u ) e − z { u − log ( 1 + u ) } | d u = 1 ε z [ e − z { u − log ( 1 + u ) } ] − 1 − ε = 1 ε z { e − z ( ε 2 2 + O ( ε 3 ) ) } − 0 ≈ z 2 3 e − z 1 / 3 2
| ∫ ε ∞ e − z { u − log ( 1 + u ) } d u | ≤ 2 ε ∫ ε ∞ | 2 u ( 1 + u ) ε e − z { u − log ( 1 + u ) } | d u = 2 ε z [ − e − z { u − log ( 1 + u ) } ] ε ∞ = 0 − 2 ε z { e − z ( ε 2 2 + O ( ε 3 ) ) } ≈ 2 z 2 3 e − z 1 / 3 2
∫ − ε ε e − z { u − log ( 1 + u ) } d u = ∫ − ε ε e − z ( u 2 2 − u 3 3 + O ( u 4 ) ) d u = ∫ − ε ε e − z u 2 2 e z ( u 3 3 + O ( u 4 ) ) d u = ∫ − ε ε e − z u 2 2 ( 1 + z u 3 3 + z O ( u 4 ) ) d u = ∫ − ε ε e − z u 2 2 ( 1 + z O ( u 4 ) ) d u
| ∫ − ε ε e − z { u − log ( 1 + u ) } d u − ∫ − ε ε e − z u 2 2 d u | ≤ | z O ( ε 4 ) ∫ − ε ε e − z u 2 2 d u | = | O ( z − 1 3 ) ∫ − ε ε e − z u 2 2 d u |
であり
z 2 3 e − z 1 / 3 2 ≪ z − 1 2 ( z → ∞ )
であるから
Γ ( z + 1 ) = 2 π z ( z e ) z ( 1 + O ( z − 1 3 ) )
を得る。これは
lim z → ∞ Γ ( z + 1 ) 2 π z ( z e ) z = 1 ( | arg z | < π )
を示すに十分である。ただし、実際の誤差は O ( z − 1 ) であるが、それを鞍点法で示すのは困難である。
収束の速度と誤差見積もり
より正確に記すと、次のようになる[ 3] 。
n ! = 2 π n ( n e ) n e λ n
ここで
1 1 2 n + 1 < λ n < 1 1 2 n .
スターリングの公式は以下の級数(スターリング級数 )の近似(初項で打ち切ったもの)である。
n ! ∼ 2 π n ( n e ) n ( 1 + 1 1 2 n + 1 2 8 8 n 2 − 1 3 9 5 1 8 4 0 n 3 − 5 7 1 2 4 8 8 3 2 0 n 4 + ⋯ )
n → ∞ としたとき、省かれた級数はその最初の項とそれ以降が相殺するように漸近していく。これは漸近展開 の一例である。
以下のような階乗の対数の漸近展開も「スターリング級数」と呼ぶ。
ln n ! ∼ n ln n − n + 1 2 ln 2 π n + 1 1 2 n − 1 3 6 0 n 3 + 1 1 2 6 0 n 5 − 1 1 6 8 0 n 7 + ⋯
この場合、誤差は打ち切った級数の初項と同じ符号で同程度の大きさであることが知られている。
ガンマ関数に対するスターリングの公式
すべての正の整数に対して、
n ! = Π ( n ) = Γ ( n + 1 )
が成り立つ。ここで Γ はガンマ関数 を表す。
しかしながら、テンプレート:仮リンク Π ( z ) = Γ ( z + 1 ) は、階乗とは異なり、より広く、正でない整数を除いてすべての複素数に対して定義される。それにもかかわらず、スターリングの公式をなお適用することができる。Re z > 0 であれば
log Γ ( z ) = ( z − 1 2 ) log z − z + 1 2 log 2 π + 2 ∫ 0 ∞ arctan ( t / z ) e 2 π t − 1 d t
が成り立つテンプレート:Sfn 。
部分積分を繰り返すことで次が得られる
log Γ ( z ) ∼ ( z − 1 2 ) log z − z + 1 2 log 2 π + ∑ n = 1 ∞ B 2 n 2 n ( 2 n − 1 ) z 2 n − 1 .
ここで Bテンプレート:Sub は n 番目のベルヌーイ数 である。(無限和は収束しないので、この公式は漸近展開 にすぎないことに注意する。)公式はεを正数として |arg z | < テンプレート:Π − ε であるときに絶対値の十分大きい z に対して成り立つ。公式の右辺に現れる級数はスターリング級数 と呼ばれるテンプレート:Sfn 。最初の m 項が使われるとき誤差項は O ( z − 2 m − 1 ) である。対応する近似は
Γ ( z ) = 2 π z ( z e ) z ( 1 + O ( 1 z ) )
のように書ける。この漸近展開のより進んだ応用は Re z が定数の複素変数 z に対してである。例えば直線 テンプレート:Sfrac + it 上でテンプレート:仮リンク の Im z において適用されたスターリングの公式を見よ。
ビネーの公式
スターリングの公式は収束しない級数を伴うので解析的に扱いづらいが、収束しない級数を収束する積分に換えたものとしてビネーの(第二)公式があるテンプレート:Sfn 。
Γ ( z + 1 ) = 2 π z ( z e ) z e μ ( z ) , μ ( z ) = 2 ∫ 0 ∞ arctan ( t / z ) e 2 π t − 1 d t , ( ℜ z > 0 )
ビネーの公式は、スターリングの級数を形式的に(収束条件を無視して)操作することによっても導かれるが、厳密には対数ガンマ関数の導関数にアーベル・プラナの和公式 を適用して得られる。
テンプレート:Indent
d d z log Γ ( z ) = lim N → ∞ log N − ∑ n = 0 N 1 n + z
d 2 d z 2 log Γ ( z ) = ∑ n = 0 ∞ 1 ( n + z ) 2
ℜ z > 0 なら f = ( n + z ) − 2 は右半平面において正則であるからプラナの和公式により
d 2 d z 2 log Γ ( z ) = ∫ 0 ∞ 1 ( n + z ) 2 d t + 1 2 z 2 + i ∫ 0 ∞ ( z + i t ) − 2 − ( z − i t ) − 2 e 2 π t − 1 d t = 1 z + 1 2 z 2 + i ∫ 0 ∞ ( z + i t ) − 2 − ( z − i t ) − 2 e 2 π t − 1 d t
積分して
d d z log Γ ( z ) = C 1 + log z − 1 2 z + i ∫ 0 ∞ − ( z + i t ) − 1 + ( z − i t ) − 1 e 2 π t − 1 d t
log Γ ( z ) = C 2 + C 1 z + z log z − log z 2 + i ∫ 0 ∞ − log ( z + i t ) + log ( z − i t ) e 2 π t − 1 d t = C 2 + C 1 z + ( z − 1 2 ) log z + 2 ∫ 0 ∞ arctan ( t / z ) e 2 π t − 1 d t
ℜ z > 0 なら| tan ( t / z ) | < M は有界であるから
| ∫ 0 ∞ arctan ( t / z ) e 2 π t − 1 d t | ≤ | ∫ 0 | z | 1 / 2 arctan ( t / z ) e 2 π t − 1 d t | + | ∫ | z | 1 / 2 ∞ arctan ( t / z ) e 2 π t − 1 d t | ≤ ∫ 0 | z | 1 / 2 ∑ k = 1 ∞ | t / z | k d t 2 π t + M ∫ | z | 1 / 2 ∞ e 2 π d t ( e 2 π − 1 ) e t e 2 π ( | z | > 1 ) ≤ ∫ 0 | z | 1 / 2 d t 2 π ( | z | − t ) + M e 2 π e 2 π − 1 ∫ t = | z | 1 / 2 ∞ e − 2 π t d t
lim z → ∞ | ∫ 0 ∞ arctan ( t / z ) e 2 π t − 1 d t | ≤ lim z → ∞ 1 2 π [ log ( | z | − t ) ] 0 | z | 1 / 2 + lim z → ∞ M e 2 π 2 π ( e 2 π − 1 ) [ − e − 2 π t ] | z | 1 / 2 ∞ = 0
である。
スターリングの公式と比較して積分定数を求め
log Γ ( z ) = 1 2 log 2 π − z + ( z − 1 2 ) log z + 2 ∫ 0 ∞ arctan ( t / z ) e 2 π t − 1 d t
真数に直して
Γ ( z + 1 ) = z Γ ( z ) = 2 π z ( z e ) z e μ ( z ) , μ ( z ) = 2 ∫ 0 ∞ arctan ( t / z ) e 2 π t − 1 d t , ( ℜ z > 0 )
を得る。なお、ビネーの公式を元にして部分積分を繰り返すとスターリングの級数が得られる。
収束級数形式のスターリングの公式
トーマス・ベイズ の John Canton への書簡が1763年 に王立協会 により公表されている。それによると、スターリングの公式は収束級数 ではないとされていた[ 4] 。
スターリングの公式の収束級数形式を得るには以下を評価する。
∫ 0 ∞ 2 arctan ( t / z ) exp 2 π t − 1 d t = ln Γ ( z ) − ( z − 1 2 ) ln z + z − 1 2 ln 2 π
一つの方法として、階乗冪 の逆数の収束級数を使う方法がある。z n ‾ = z ( z + 1 ) ⋯ ( z + n − 1 ) としたとき、次のようになる。
∫ 0 ∞ 2 arctan ( t / z ) exp 2 π t − 1 d t = ∑ n = 1 ∞ c n ( z + 1 ) n ‾
ここで
c n = 1 n ∫ 0 1 x n ‾ ( x − 1 2 ) d x
である。以上から次のようなスターリング級数が得られる。
ln Γ ( z ) = ( z − 1 2 ) ln z − z + 1 2 ln 2 π + 1 1 2 ( z + 1 ) + 1 1 2 ( z + 1 ) ( z + 2 ) + 5 9 3 6 0 ( z + 1 ) ( z + 2 ) ( z + 3 ) + 2 9 6 0 ( z + 1 ) ( z + 2 ) ( z + 3 ) ( z + 4 ) + ⋯
これは、ℜ z > 0 のとき収束する。
計算機向けの変形
ガンマ関数の(関数電卓などの)計算機向けの近似として次の式がある。
Γ ( z ) ∼ 2 π z ( z e z sinh 1 z + 1 8 1 0 z 6 ) z
これは、次と同等である。
2 ln Γ ( z ) ∼ ln 2 π − ln z + z { 2 ln z + ln ( z sinh 1 z + 1 8 1 0 z 6 ) − 2 }
これらはスターリングの公式を組み替えて、その結果生じる冪級数と双曲線正弦 関数のテイラー展開 の間の合致を観察することで得られる。この近似は z の実数部が 8 以上のとき、小数点以下 8 桁を超える精度を持つ。2002年、Robert H. Windschitl がリソースの制限された計算機(電卓など)でのそれなりの正確性を持った近似としてこれを示した[ 5] 。
Gergő Nemes は 2007年にほぼ同程度の結果を与える近似式を提案した。こちらはより単純である。
Γ ( z ) ∼ 2 π z { 1 e ( z + 1 1 2 z − 1 1 0 z ) } z
これは、次と同等である。
ln Γ ( z ) ∼ 1 2 ( ln 2 π − ln z ) + z { ln ( z + 1 1 2 z − 1 1 0 z ) − 1 }
歴史
この公式は最初に次の形でアブラーム・ド・モアブル により1730年に発見された[ 6] 。
n ! ∼ [ c o n s t a n t ] ⋅ n n + 1 2 e − n
スターリングの貢献は定数が 2 π であることを示したことである[ 6] 。より正確な形式はジャック・ビネが見出した。
スターリングの近似の「一次」バージョン n ! = n n は、マックス・プランク が1901年の黒体 放射の論文で使用した。これは多量の光子 や振動子についての黒体放射エネルギーの方程式にリンクしている。この近似は量子論 でよく使われ、例えばピーター・デバイ とルイ・ド・ブロイ も使っている。アルベルト・アインシュタイン とサティエンドラ・ボース は違う方式を採用した。非常に大きな n について確率分布をグラフに描画してみると、両者はほぼ平行になる。
脚注
テンプレート:Reflist
参考文献
関連項目
外部リンク