階乗の補間
階乗n!をうまく補間して自然数以外でも定義された関数 f(x)を作りたいとする。
ただし階乗では n!=(n-1)! が成り立っているので、それに合わせて自然数以外のxについても f(x)= x・f(x-1) が成り立つようにする。
一見するとf(n)をなめらかに繋いでいく仕方は無数にありそうだけど、実際には、なめらかに自然に補間しようとするとf(x)の値は一意に決まってしまう。
n!は増加が速いので、対数を取って増加速度を落とした関数 g(n)= log(n!) を考える。
すると、対数を取って増加速度を落としても、xを1増やした時の増加量は、
g(3) = g(2) + log(3)
…
g(n) = g(n-1) + log(n)
g(n+1) = g(n) + log(n+1)
g(n+2) = g(n+1) + log(n+2)
のように、log(2)、log(3)、log(4)、log(5)、……と徐々に増えている。(このg(n)をなめらかに補間するには、g(x)の増加率が常に増えていくようにすれば良いと考えられる。そのためにはg(x)の2階微分が非負になるように(あるいはそれを弱くして、g(x)が凸関数になるように)補間すれば良さそう。)
この関数g(n)に対する自然な補間の仕方を考えてみる。
まず各自然数nについて g(n) = g(n-1) + log(n) の関係があるので、xが自然数でないときでも常に
の関係が成り立つように補間する。(そうするとf(x)については、常に f(x)=x・f(x-1) の関係が成り立つことになる。)
nが非常に大きい場合を考えると、gの増加量がlog(n)でもlog(n+1)でもlog(n+2)でも、あまり違いはない。(log(n+c) - log(n) < c/n なので、nが大きい値だと、log(n) と log(n+c) は、同じくらいの値になる)。
ということは非常に大きい自然数nの周辺では、引数nを1増やしたときのg(n)の変化量はほぼ一定(≒log(n))なので、xが非常に大きい部分で、xの大きさに比べて狭い範囲を見ると、g(n)の値はほぼ一直線上に並ぶ。
したがって、xが非常に大きいところでは、g(n)、g(n+1)、g(n+2)……を傾きlog(n)の直線で補間しても、ある程度の範囲では良い補間になっていると考えられる。またこの補間で、g(x)=g(x-1)+log(x) の関係もほぼ成り立っている。(log(x)≒log(n)なので。)
そしてnが大きければ大きいほど増加量の変化が小さくなる(nに比べてkが小さいとlog(n)とlog(n+k)はほぼ等しい値になる)ので、xが大きな値になればなるほど、この傾きlog(n)の直線による補間で適切な値に近い補間値が得られる。
そして、g(x) = g(x-1) + log(x) の関係を繰り返し使って
g(x-2) = g(x) - log(x) - log(x-1)
g(x-3) = g(x) - log(x) - log(x-1) - log(x-2)
…
のように、大きなxでのg(x)の補間値を使って小さなxでのg(x)の値を決めてやれば、小さなxでのg(x)の値もどんどん適切な値に更新していくことができる。そして、その極限を考えてやれば、結局はg(x)の値を一意に決めることができて、その結果、階乗n!を補間した関数f(x)の値も一意に決まってしまうことになる。
結局、g(x)の値は次のように決められる。
無限積による表示
ここまでの話に基づいて、n!をうまく補間した関数 f(x) を表す式を考える。
g(x) = log(f(x)) として、大きな自然数nに対して、g(n+x)の値を
と近似する。 これは
log(f(n+x)) ≒ log(nx・n!)
f(n+x) ≒ nx・n!
と書き換えられる。f(x)=x・f(x-1)を繰り返し使うと左辺側は f(n+x) = (n+x)…(2+x)(1+x)f(x) となるので、
となり、両辺を (n+x)…(2+x)(1+x) で割って
となる。nが大きければ大きいほど傾きの近似が正確になっていくので、
となり、f(x)を無限積で表せた。
ここで導かれたf(x)はf(n)= n!となる関数だけど、通常はΓ(n)=(n-1)!となるガンマ関数Γ(x)が使われる。ガンマ関数の無限積は
となる。
対数凸性による見積もり
もう少し詳しい見積もりをしてみる。
上の式を導くときに「xが大きいところではg(x)の増加の割合がlog(x)で近似できる」ということを使ったけれど、このことはg(x)が単調増加であることを保証する次の条件
- g(x) (つまりlog(f(x)) )は凸関数である (= f(x)は対数凸関数である)
を与えると導くことができる。
g(x)が凸関数とすると、n
が成り立ち、すなわち
となり、xが自然数でない場所も含めてg(x)の増加率≒log(x) となって g(n)とg(n+1)がほぼ直線的に補間されることが保証される。
f(x)の無限積を導くときに使った
という近似式については、xより大きい自然数cを取って固定し、nをxより非常に大きい自然数として、g(x)の凸性を使うと、
という形で導かれる。さらに変形していくと
となり、左側の不等式について f(n+x)= (n+x)…(2+x)(1+x)f(x)を使って変形すると
となる。
nは大きい自然数なら何でもよかったので、右側の不等式については、n+cを改めてnに置き直して f(n-c+x) ≦ nx (n-c)! という式にして f(n-c+x) = (n-c+x)…(2+x)(1+x)f(x) を使うと
となり、右辺の分子分母に下降階乗 nc = n(n-1)…(n-c+1) をかけると
となり、さらに分子分母に下降階乗 (n+x)c = (n+x)(n+x-1)…(n+x-c+1) をかけ変形すると
となる。下降階乗ふたつによる分数の部分は分子分母どちらも項数がc個なので上下1個ずつ組みにすると、nを大きくしたとき1に近づいていくことが分かる。前の不等式と合わせて
となり、
が成り立つ。