階乗の一般化としてのガンマ関数をどうやって思いつくのか
読了時間の目安:7分
階乗は自然数においてのみ定義される.これを複素数上に拡張したのがガンマ関数である.しかし,その定義は少々天下り的である.確かに簡単な計算でそれが階乗の一般化になっていることは分かるが,どうやってそれを思いついたのかはなかなか想像がつかない.そこで,その思いつき方を記したのが本稿である.
本稿のレベルであるが,高校数学を履修した者なら大体ついてこれるだろう.ただし,$${\forall,\exists}$$といった大学1年レベルの基礎的な論理記号を使うので,その部分は理解しておくのが望ましい.
ガンマ関数には様々な定義があるが,初学者はとりあえず以下の二つを覚えておくとよい(ここには書かないが,欲を言えばワイエルシュトラスの乗積表示も覚えておくのが望ましい).
こうして定義されたガンマ関数は,以下の意味で階乗の一般化になっている.
ここで,ガンマ関数と階乗とで,$${n}$$が$${1}$$ずれていることに大きな意味はない.$${\Gamma(n)=n!}$$が成り立つようにガンマ関数を定義してやることも出来たが,他のガンマ関数の性質を鑑みれば,$${\Gamma(n)=(n-1)!}$$が成り立つように定義したほうが綺麗に記述できる性質も多い.とはいえ,階乗との関係など,$${\Gamma(n)=n!}$$の方が綺麗なものも多く,微妙なところである.人類は$${\Gamma(n)=(n-1)!}$$を選んだ.この選択に異を唱える読者も多いだろうが,ここは歴史の気まぐれな偶然性に付き合ってやることにしよう.
上に挙げた二つの定義が同値であることの証明はネット上にも数多く存在するので,本稿では省略する.ここで記すのは,無限積表示を階乗の一般化として自然と思いつくその過程のみである.そのため,読者によっては物足りなく感じられるかもしれないが,ご理解いただきたい.
では本題に入ろう.まずは,$${\Gamma(x)}$$が階乗の一般化として満たしてほしい性質を考察する必要がある.結論を述べると,その性質とは以下の$${3}$$つである.
(1) $${\Gamma(1)=1}$$
(2) $${\forall z \in \mathbb{C} \quad \Gamma(z+1)=z\Gamma(z)}$$
(3) $${\forall z \in \mathbb{C} \quad \displaystyle\lim_{n \to \infty}\frac{\Gamma(z+n+1)}{n^zn!} = 1}$$
そこでまずは,階乗を一般化した関数には何故これらの性質を満たしてほしいのかを述べよう.
我々がしたいのは,例えば$${2.5}$$の階乗は何になるか,ということである.これが$${2!}$$と$${3!}$$の間にあるだろうということはすぐに思いつく.しかしこれだけでは上手くいかない.なぜなら,$${2!=2}$$と$${3!=6}$$の間に実数は無数に存在するので,そのどれが$${2.5!}$$の階乗になるかはまだ分からないからである.もっと強力なアプローチが必要である.
そこで,以下の階乗の公式を応用することを考えよう.
$$
{(n+1)!=(n+1) \cdot n!}
$$
これを使えば,$${(2.5)!}$$を$${3.5}$$倍すると$${(3.5)!}$$,さらに$${4.5}$$倍すると$${(4.5)!}$$となるらしい,というようなことが分かり,出来ることがさらに増える.
上の公式を$${\Gamma(n)=(n-1)!}$$を使って変換したのが(1),(2)である.
しかし,(1),(2)だけでは関数は1つに決まらない.実際,$${D \coloneqq \{z \in \mathbb{C} | 0 < \operatorname{Re}(z) \leq1\}\backslash\{1\}}$$の部分,すなわち複素平面でいうところの以下の部分において$${\Gamma(z)}$$をどのように指定してやっても,(1),(2)を満たすように$${\Gamma(z)}$$を全平面で1つ定める事ができる.
そこでさらに課す条件が(3)である訳である.
しかし,なぜ(3)という条件を課すのかは少し説明を要するので,まず,(1)と(2)のみから分かる$${\Gamma(z)}$$の性質を考察してみよう.
まずは(2)を用いて以下の式変形をしよう.
$$
\begin{array}{}\Gamma(z)&=&\displaystyle\frac{\Gamma(z+1)}{z}\\\\&=&\displaystyle\frac{\Gamma(z+2)}{z(z+1)}\\&& \vdots\\\\&=&\displaystyle\frac{\Gamma(z+n+1)}{z(z+1)\cdots(z+n)}\\\end{array}
$$
これでは$${\Gamma(z)}$$を$${\Gamma(z+n+1)}$$に変換しただけで,問題は変わっていないように見える.しかし,我々は確かに前進している.なぜなら,上記の式は,$${n}$$にどんな自然数をいれても成り立つからである.すなわち我々は,「$${\Gamma(z)}$$は何か」というひとつの問題に対し,無限個の等式という武器を手に入れたわけである.
では次に,我々はどうすれば良いのだろうか.上記の式をよく見ると,$${\Gamma(z)}$$という値を$${\Gamma(z+1),\Gamma(z+2),\cdots}$$という数列で表していることになる.ということは,$${n \to \infty}$$のとき$${\Gamma(z+n+1)}$$がどのように大きくなるかを見てやれば$${\Gamma(z)}$$の値が分かるのではないかと想像がつく.より正確にいうとこうである.もし我々が
$$
\forall z \in \mathbb{C} \quad \displaystyle\lim_{n \to \infty} \frac{\Gamma(z+n+1)}{f(z,n)}=1
$$
を満たすような関数$${f(z,n)}$$を見つけてくることが出来れば,上記の式を以下のように変形できる
$$
\begin{array}{}\Gamma(z)&=&\displaystyle\frac{\Gamma(z+n+1)}{z(z+1)\cdots(z+n)}\\\\&=&\displaystyle\lim_{n\to\infty}\frac{\Gamma(z+n+1)}{z(z+1)\cdots(z+n)}\\\\&=&\displaystyle\lim_{n\to\infty}\frac{\Gamma(z+n+1)}{z(z+1)\cdots(z+n-1)}\displaystyle\lim_{n\to\infty}\frac{f(z,n)}{\Gamma(z+n+1)}\\\\&=&\displaystyle\lim_{n\to\infty}\frac{f(z,n)}{z(z+1)\cdots(z+n-1)}\\\end{array}
$$
ここで1行目から2行目の式変形であるが,1行目は$${n}$$に依らず$${\Gamma(z)}$$になるので,$${\displaystyle\lim_{n\to\infty}}$$をつけても問題ない.
こうして晴れて$${\Gamma(z)}$$を記述できる訳である.ということで,$${f(z,n)}$$を決定することが最後の仕事となる.
$${f(z,n)}$$を決定するということは,$${\Gamma(z+n+1)}$$がどのように増えていくかを調べることと同じである.$${\Gamma(z+n+1)}$$の増え方はまだ知らないが,$${\Gamma(n+1)=n!}$$なら知っている.そこで,$${\Gamma(z+n+1)}$$を$${\Gamma(n+1)}$$で表そう.そのために,$${z}$$を自然数と仮定する.
$$
\begin{array}{}\Gamma(z+n+1)&=&(n+z+1)(n+z)\cdots(n+1)\Gamma(n+1)\\\\&=&n^z\bigg(1+\displaystyle\frac{z+1}{n}\bigg)\bigg(1+\displaystyle\frac{z}{n}\bigg)\cdots\bigg(1+\displaystyle\frac{1}{n}\bigg)n!\\\\&\sim& n^z n! \quad (n \to \infty)\\\end{array}
$$
となり,$${\Gamma(z+n+1)}$$は$${n^z n!}$$のように増えていくことが分かる(実際,上記の全ての辺を$${n^z n!}$$で割ってやれば$${\displaystyle\lim_{n \to \infty}\frac{\Gamma(z+n+1)}{n^zn!} = 1}$$が分かる).ここでは$${z}$$が自然数であることを仮定していた.そこで,これが任意の複素数で成り立つことを条件に加えれば,$${f(z,n)=n^zn!}$$としてよいことが分かる.これが条件(3)の正体である.これを先ほどの式に代入すれば,以下が得られる
$$
\Gamma(z)=\displaystyle\lim_{n \to \infty} \frac{n^zn!}{z(z+1)\cdots(z+n)}
$$
こうして晴れて$${\Gamma(z)}$$の無限積表示が導出できた.
最後に,条件(3)の意味を述べて終わりにしよう.
前述したとおり、(1),(2)のみでは$${D = \{z \in \mathbb{C} | 0 < \operatorname{Re}(z) \leq 1\}\backslash\{1\}}$$における$${z}$$の値はどう決めてもよかった.そこで$${D}$$における$${z}$$の値を制限したのが(3)であるとも解釈できる.ここでの$${\Gamma(z)}$$の値が大きすぎると$${\displaystyle\lim_{n \to \infty}\frac{\Gamma(z+n+1)}{n^zn!}}$$は$${1}$$より大きくなってしまう.$${\Gamma(z)}$$が小さすぎると$${\displaystyle\lim_{n \to \infty}\frac{\Gamma(z+n+1)}{n^{z}n!}}$$は$${1}$$より小さくなってしまう.つまり,これがちょうど$${1}$$になる$${\Gamma (z)}$$はただひとつに定まる.こうして関数$${\Gamma (z)}$$をただひとつに定義することができる訳である.
ちなみに,ここでは階乗の一般化を考えるアイデアを述べたまでであり,数学的な議論は十分でない.$${\Gamma (z)}$$の定義を厳密に行いたければ,上記の極限が存在することを言わなければならない.加えて,ガンマ関数の基礎を「理解した」というためには,(1)ガンマ関数が有理型関数であること(2)無限積表示と積分表示が同値であること(3)極と零点の座標と位数(4)極の留数 は最低限調べる必要があるだろう.しかし,前述したとおり,これらの考察はネット上に数多く存在するのでここでは割愛する.