ポリガンマ関数とは
次数 \(n\) のポリガンマ関数 \(\psi^{(n)}(a)\) は、ガンマ関数の自然対数を \((n+1)\) 回微分したものです。$$\psi^{(n)}(a) = \frac{d^{n+1}}{da^{n+1}} \ln\Gamma\!\left(a\right), \quad n = \text{order}$$ここで用いている添字の取り方では、\(n = -1\) のとき対数ガンマ関数 \(\ln\Gamma(a)\) そのもの、\(n = 0\) のときディガンマ関数 \(\psi(a)\)、\(n = 1\) のときトリガンマ関数、\(n = 2\) のときテトラガンマ関数…と続きます。これらの特殊関数は、確率論、統計学(ガンマ分布やベータ分布の最尤推定)、整数論、漸近解析など、幅広い分野に登場します。純粋数学に基づく関数なので、どの国・地域でも結果は同一です。
使い方
プルダウンから導関数の次数 \(n\)(-1, 0, 1, 2, 3, 4)を選び、引数 \(a\) を実数で入力してください。「計算」を押すと \(\psi^{(n)}(a)\) を有効数字約12桁まで求めます。この実装は \(a > 0\) で完全に有効です。\(a\) が 0 以下の場合は反射公式が必要となり、本計算機では非正の整数(ガンマ関数の極)を「未定義」として扱います。
計算式の解説
\(n = -1\) のときは、\(\ln\Gamma\) をランチョス近似(Lanczos approximation)で計算します。$$\psi^{(-1)}(a) = \ln\Gamma\!\left(a\right)$$\(n = 0\) のディガンマは、漸化式 \(\psi(x) = \psi(x+1) - 1/x\) を用いて引数を 6 より大きくしたうえで、漸近級数 \(\psi(x) \sim \ln x - \frac{1}{2x} - \frac{1}{12x^2} + \cdots\) を適用して求めます。$$\psi^{(0)}(a) = \psi\!\left(a\right) = \frac{d}{da}\ln\Gamma\!\left(a\right) = \frac{\Gamma^{\prime}\!\left(a\right)}{\Gamma\!\left(a\right)}$$\(n \geq 1\) のときは、漸化式 \(\psi^{(n)}(x) = \psi^{(n)}(x+1) + (-1)^{n+1} \frac{n!}{x^{n+1}}\) によって引数を 10 を超えるまでずらし、続いてベルヌーイ数を用いた漸近級数で評価を仕上げます。
計算例
\(n = 1\)、\(a = 5\)(5 におけるトリガンマ)を考えます。恒等式 \(\psi^{(1)}(m) = \frac{\pi^2}{6} - \sum_{k=1}^{m-1} \frac{1}{k^2}\) を使うと、$$1.6449340668 - \left(1 + \frac{1}{4} + \frac{1}{9} + \frac{1}{16}\right) = 1.6449340668 - 1.4236111111 = 0.2213229557$$ となります。本計算機は約 \(0.221322955737\) を返します。
よくある質問
\(a = 0\) や負の整数のとき、なぜ未定義になるのですか? ガンマ関数は 0, -1, -2, … に極を持つため、\(\ln\Gamma\) およびすべてのポリガンマ関数はそこで発散します。
ディガンマとトリガンマの違いは何ですか? ディガンマ(\(n = 0\))は \(\ln\Gamma\) の1階導関数、トリガンマ(\(n = 1\))は2階導関数であり、ディガンマの導関数に等しくなります。
結果の精度はどのくらいですか? 倍精度演算とシフト+漸近級数法により、\(a > 0\) ではおよそ有効数字12〜15桁の精度が得られます。