0! = 1
n! = n・(n - 1)・(n - 2) ・・・・・ 2・1
と定義されます。たとえば 7 の階乗は、
7! = 7・6・5・4・3・2・1 = 5040
と計算されます。このように、比較的小さな n に対しても大きな値をとるのが階乗の特徴です。指数関数である f(x) = exp(x) の場合でさえ、
f(7) = exp(7) = 1096.6
ですから、 n! が非常に大きな値を返す演算であることがわかります。
階乗を正の実数範囲に広げてガンマ関数を定義します
f(n) = n! という写像を考えてプロットしてみると、次のようなグラフが描かれます:この点を滑らかにつないで、正の実数全てにおいて階乗を定義するような関数を探します。たとえば有理数 7 / 2 = 3.5 の階乗を考えてみましょう。自然に拡張するなら、次のような定義が考えられます。
しかし、この点を上のグラフにプロットしてみると・・・・・・
青い点が新しく加えられた (3.50, 6.56) という点です。明らかにずれてしまっています。この定義ではだめですね。しかしここで上の定義に円周率 pi の平方根を乗じて、
と定義すると、驚くべきことがおこります。
自然な形でグラフに乗っていますね! このようにあらゆる正の実数が滑らかにつながるような関数が見つかればよいのです。「そんな都合の良い関数が存在するの?」と思われるかもしれませんが、存在するからこんな記事を書いているのです。それがガンマ関数です。ガンマ関数は一般に積分の形で定義されます:
この積分が収束するためには x > 0 の条件が必要となります。上の定義から簡単な計算で、
を確認することができます。つまり正整数 n に対して、
となりますから、n! は Γ(x + 1) のグラフの上に乗っていることになります(番号は1つずれていることに注意してください)。
Excel でガンマ関数のグラフを描いてみます
Excel にはガンマ関数 GAMMA() が用意されていますので、それを用いてグラフを描いてみましょう:原点へ近づくときに + ∞ に発散していく様子は直感的に違和感があるかもしれませんが、 Γ(x + 1) = x Γ(x) を変形して、
から Γ(1/2) を Γ(3/2) で表してみると、
となり、 Γ(1/2) は Γ(3/2) より 2 倍も大きな値をとらなくてはいけないことになります。だから x < 1 の領域では 1 < x の領域よりも値の増加が大きいのです。
ガンマ関数は複素数全域まで定義を拡大することができますが、このブログではしばらくの間は実数で 0 < x に限定しておきます。複素関数を扱うようになったとき、改めてガンマ関数を拡大定義しますので、それまでお待ちください。
慣れない人には積分表示の定義式は難しいと感じるかもしれませんが、 「 t で積分計算した結果 x の関数になる」と理解しておけば十分です。このブログではとりあえずグラフの形だけ知っておいてもらえれば特に困ることはありません。それではいよいよ、このガンマ関数を変形していきます。ガンマ関数そのものは、原点と ∞ で発散する、何となく荒々しい印象を与える関数ですが、逆数をとってみると・・・・・・
穏やかな形のグラフになります。
さらに変数を x → x + sinx と置き換えてみます:
大きな山の頂から2段階で裾野へ落ちていく、ちょっと変わった形の関数です。さらに変数を x + sinx + cos(√5 x) としてみると・・・・・・
さらに複雑な形となりましたね。
台地から窪地へ、そしてまた山が盛り上がるという感じです。