ガンマ関数を定義し、それが階乗の一般化として扱えることを証明します。また、ガンマ関数がみたす性質についても導出します。
最後に、ガンマ関数と階乗の比を相互に変換することにより、数値計算上有利になる例も示します。
ガンマ関数の定義
\(z>0\) となる実数(または、 \(\mathfrak{Re}\{z\}>0\) となる複素数)に対し、
$$\Gamma(z)=\int_0^\infty t^{z-1}e^{-t}dt$$
をガンマ関数といいます。
ガンマ関数は階乗の一般化
公式
ガンマ関数は以下の性質をみたします。
$$\Gamma(z+1)=z\Gamma(z)\tag{1}$$
$$\Gamma(1)=1\tag{2}$$
$$\Gamma(n+1)=n!\tag{3}$$
証明
部分積分により
$$\Gamma(z+1)=\int_0^\infty t^{z}e^{-t}dt$$
$$=\int_0^\infty t^{z}(-e^{-t})’dt$$
$$=[-t^{z}e^{-t}]_0^\infty+\int_0^\infty zt^{z-1}e^{-t}dt$$
$$=z\int_0^\infty t^{z-1}e^{-t}dt=z\Gamma(z)$$
より、公式 \((1)\) が導かれます。
また、
$$\Gamma(1)=\int_0^\infty e^{-t}dt=[-e^{-t}]_0^\infty=1$$
であり(公式 \((2)\) )、公式 \((1)\) を繰り返し用いて
$$\Gamma(n+1)=n\Gamma(n)=n(n-1)\Gamma(n-1)$$
$$=\cdots=n(n-1)\cdots 1\Gamma(1)=n!\cdot 1=n!$$
より、公式 \((3)\) が得られます。
ガンマ関数を階乗で表現する(ガウス積分との関係)
ガウス積分
$$\int_{-\infty}^\infty e^{-x^2}dx=2\int_{0}^\infty e^{-x^2}dx=\sqrt{\pi}$$
(中間の式変形は、 \(f(x)=e^{-x^2}\) が偶関数であることを使用しました。)との関係から、ガンマ関数は以下の関係式をみたします。
公式
非負整数 \(n\) について
$$\Gamma\left(\frac{1}{2}\right)=\sqrt{\pi}\tag{4}$$
$$\Gamma\left(\frac{1}{2}+n\right)=\frac{(2n-1)!!}{2^n}\sqrt{\pi}\tag{5}$$
が成り立ちます。ここで、 \(n!!\) は \(n\) の二重階乗( \(1\) から \(n\) の中で、 \(n\) と同じ偶奇の数字だけの積)を表します。
二重階乗を階乗のみを使って書き換えると、
$$\Gamma\left(\frac{1}{2}+n\right)=\frac{(2n)!}{2^{2n}\cdot n!}\sqrt{\pi}\tag{5′}$$
となります。
証明
$$\Gamma\left(\frac{1}{2}\right)=\int_0^\infty t^{-\frac{1}{2}}e^{-t}dt$$
です。ここで、 \(t=x^2\) とおくと \(dt=2xdx\) であり積分区間は \([0,\infty)\) なので
$$\Gamma\left(\frac{1}{2}\right)=\int_0^\infty x^{2\cdot -\frac{1}{2}}e^{-x^2}2xdx$$
$$=2\int_{0}^\infty e^{-x^2}dx=\sqrt{\pi}\tag{4}$$
とガウス積分が出現して公式 \((4)\) が導かれます。
\(z=\frac{1}{2}+n\) であるケースは、部分積分を繰り返すことでガウス積分まで変形することができます。
$$\Gamma\left(\frac{1}{2}+n\right)=\int_0^\infty t^{n-\frac{1}{2}}e^{-t}dt=\int_0^\infty t^{n-\frac{1}{2}}(-e^{-t})’dt$$
$$=\left[t^{n-\frac{1}{2}}\cdot -e^{-t}\right]_0^\infty-\int_0^\infty \left(n-\frac{1}{2}\right)t^{(n-1)-\frac{1}{2}}\cdot-e^{-t}dt$$
$$=\frac{2n-1}{2}\int_0^\infty t^{(n-1)-\frac{1}{2}}e^{-t}dt$$
$$=\frac{2n-1}{2}\cdot\frac{2n-3}{2}\int_0^\infty t^{(n-2)-\frac{1}{2}}e^{-t}dt$$
$$\vdots$$
$$=\frac{2n-1}{2}\cdot\frac{2n-3}{2}\cdot\cdots\cdot\frac{1}{2}\int_0^\infty t^{-\frac{1}{2}}e^{-t}dt$$
$$=\frac{(2n-1)!!}{2^n}\sqrt{\pi}\tag{5}$$
ここで、
$$(2n-1)!!=(2n-1)(2n-3)\cdots 3\cdot 1$$
$$=\frac{2n\cdot(2n-1)(2n-2)(2n-3)\cdots 4\cdot 3\cdot 2\cdot 1}{2n\cdot(2n-2)\cdots 4\cdot 2}$$
$$=\frac{2n\cdot(2n-1)(2n-2)(2n-3)\cdots 4\cdot 3\cdot 2\cdot 1}{2^n\cdot n\cdot(n-1)\cdots 2\cdot 1}=\frac{2n!}{2^n\cdot n!}$$
より、
$$\Gamma\left(\frac{1}{2}+n\right)=\frac{(2n-1)!!}{2^n}\sqrt{\pi}=\frac{(2n)!}{2^{2n}\cdot n!}\sqrt{\pi}\tag{5′}$$
が導かれました。
数値計算への応用例
公式 \((5)\) は、階乗の割り算 \((2n)!/n!\) を、ガンマ関数を用いて表現する際にも用いられます。
コンピュータによる数値計算で、分子・分母の階乗をそれぞれ計算すると、容易にオーバーフローが生じます。そこで、ガンマ関数を用いてこの割り算を表現して計算します。
これが生きる例として、標準正規分布 \(\mathcal{N}(x|0,1)\) の \(m\) 次モーメントについての、積率母関数 \(M_X(t)\) を用いた計算を紹介します。
$$M_X(t)=\mathbb{E}[e^{tX}]=\int_{-\infty}^\infty e^{tx}\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}dx$$
$$=\int_{-\infty}^\infty \frac{1}{\sqrt{2\pi}}\exp\left(-\frac{x^2}{2}+tx\right)dx$$
$$=\int_{-\infty}^\infty \frac{1}{\sqrt{2\pi}}\exp\left(-\frac{(x-t)^2}{2}\right)\exp(t^2)dx$$
$$=e^{t^2}=\sum_{k=0}^{\infty}\frac{1}{k!}(t^2)^k$$
より、
$$M_X(t)=\sum_{k=0}^{\infty}\frac{1}{k!}t^{2k}$$
$$M_X'(t)=\sum_{k=1}^{\infty}\frac{2k}{k!}t^{2k-1}$$
$$M_X”(t)=\sum_{k=1}^{\infty}\frac{2k(2k-1)}{k!}t^{2k-2}$$
$$M_X”'(t)=\sum_{k=2}^{\infty}\frac{2k(2k-1)(2k-2)}{k!}t^{2k-3}$$
$$\cdots$$
と続けることで、
$$\mathbb{E}[X^n]=M_X^{(n)}(0)=\begin{cases}\frac{n!}{(n/2)!}&&(n\text{が偶数}) \\ 0&&(n\text{が奇数})\end{cases}$$
となることがわかります。すなわち、 \(n=2m,\quad(m=0,1,2,\cdots)\) と置いて
$$\mathbb{E}[X^{2m}]=M_X^{(2m)}(0)=\frac{(2m)!}{m!}$$
が得られます。ここで公式 \((5)\) を用いると、
$$\mathbb{E}[X^{2m}]=\frac{2^{2m}}{\sqrt{\pi}}\Gamma\left(m+\frac{1}{2}\right)$$
と表せることがわかり、この後はガンマ関数を実装したライブラリを用いて数値計算を実行できます。

もっと知りたいこと、感想を教えてください!