■階乗からガンマ関数へ(その79)
(3)ポリガンマ関数
ガンマ関数の対数微分であるジガンマ関数φ(x)は
φ(x)=d/dx{logΓ(x)}=Γ'(x)/Γ(x)
で定義されます.また,その逐次導関数φ’(x),φ”(x),・・・,φ^(k)(x),すなわち,トリガンマ関数,テトラガンマ関数,ペンタガンマ関数などを総称してポリガンマ関数と呼びます.
引数が整数のときのジガンマ・トリガンマ関数
φ(n)=Σ1/kーγ,φ’(n)=π^2/6-Σ1/k^2
また,
φ^(k)(x)=(-1)^(k+1)k!Σ1/(n+x)^(k+1)より,x=1におけるポリガンマ関数値は,
φ(1)=-γ,φ'(1)=π2/6=ζ(2),φ^(k)(1)=(-1)^(k+1)k!ζ(k+1)
になります.
(ガンマ関数・ポリガンマ関数のサブルーチン)
Γ(n+1)=n!より,ガンマ関数は階乗の補間関数であり,初等的でない関数の中で最も簡単かつ重要な数学的関数といえます.
また,引数の値が半整数のときには,Γ(n+1/2)=√π・(2n)!/2^2nn!です.なお,ガンマ関数Γ(x)はx>0について微分可能で,x=1.4616321449・・・で最小となります.
Γ(1)=1,Γ(1/2)=√π
であることを知っていればたいてい間に合いますが,ガンマ関数は結構いろいろなところで出てきますから,ぜひ計算ルーチンを用意しておきたいものです.引数の値が整数(n+1)でも半整数(n+1/2)でもないガンマ関数に対する正確な計算は複雑ですが,物理・化学・工学などの諸分野の問題の解を求めるときには,どうしてもそれらの解を数値を用いて表す必要がでてきます.現在では膨大な数表を用いることは稀であって,コンピュータが広く使用されていますから,必要に応じて計算する方法がとられています.
ガンマ関数Γ(x)の値を求めるには,いろいろな近似式があり,例えば,ベルヌーイ数Bnを含む漸近展開
logΓ(x)=xlogx−x+1/2log2π/x+Σ(−1)n-1Bn/(2n)(2n-1)x2n-1
は物理学(量子論)との関わりで,しばしば用いられています.
このほかにも,ヘイスティングス,コリンジ,ハートらによる多項式展開などがありますが,ポリガンマ関数とのつながりを考えると,ヘイスティングスの多項式展開が優れていると思われます.ここでは,ヘイスティングス(Hastings)の8次多項式近似を紹介することにします.
Γ(x+1)≒1-0.577191652x+0.988205891x^2-0.897056937x^3+0.918206857x^4-0.756704078x^5+0.482199394x^6-0.193527818x^7+0.035868343x^8 (岩波全書「数学公式V」森口,宇田川,一松著).
この近似式は有効範囲が0≦x≦1に限られていますが,ガンマ関数にはΓ(x+1)=xΓ(x)の関係があり,この漸化式を繰り返し適用して,0≦x≦1の範囲になるように再帰的な方法を用いればx≧1にも拡張することができます.また,ガンマ関数Γ(x)はxが大きくなるとすぐにオーバーフローエラーを起こしてしまいますので,プログラムではln(Γ(x))=ln(Γ(x+1))−ln(x)によってその対数ln(Γ(x))を求めて飽和現象を回避しています.
===================================