B.C.Berndt: Number Theory in the Spirit of Ramanujanより
Chapter 5 Corollary 5.1.10
$x \rightarrow\,0^{+}$の時、 $$ \pi\,F(\frac{1}{2},\frac{1}{2};1;1-x)\sim -\log(x)+C$$ ただし$C$は定数である。
まず$1-x$を$x$と置き直すとこの主張は、 $x \rightarrow\,1^{-}$の時、 $$ \pi\,F(\frac{1}{2},\frac{1}{2};1;x)\sim -\log(1-x)+C$$ となります。
また$K(x)=\frac{\pi}{2}\,F(\frac{1}{2},\frac{1}{2};1;x^2)$だったので$K(\sqrt{x})=\frac{\pi}{2}\,F(\frac{1}{2},\frac{1}{2};1;x)$であることがわかります。まとめると、 $$2\,K(\sqrt{x})\sim -\log(1-x)+C$$ を示せば良いことになります。
$x \rightarrow\,1^{-}$の時、$2\,K(\sqrt{x})+\log(1-x) \rightarrow\,\log 2$を示すことにします。
楕円積分による$K(x)$の定義は以下の式でした。ここから証明を始めます。 $$K(k)=\int_{0}^{\frac{\pi}{2}}\frac{d\phi}{\sqrt{1-k^2\,\sin^2\phi}}$$
DEFK:K(k)=integrate(1/sqrt(1-k^2*sin(phi)^2),phi,0,%pi/2);
両辺を2倍し、$k=\sqrt{x}$を代入します。
assume(0<x)$assume(x<1)$
F1:2*DEFK,k=sqrt(x);
$\sin\phi=t$という変数変換を積分に施します。
F2:changevar(F1,sin(phi)=t,t,phi);
一方、$\log(1-x)$を積分で表します。
F3:'integrate(x/(1-x*t),t,0,1)=integrate(x/(1-x*t),t,0,1);
これで求める式の値を積分の和で表すことができました。
F4:lhs(F2)-rhs(F3)=rhs(F2)-lhs(F3);
右辺の2つの積分は積分範囲も一致しているので、1つにまとめることが出来ます。
assume(sqrt(x)<1)$
F5:rhs(F4)=integrate(2*part(F4,2,1,2,1)-x*part(F4,2,2,1,2,1),t,0,1);
右辺の積分は$x=1$で連続なので(連続と本に書いてありました)$x=1$を代入して計算を続けてみます。
F6:rhs(F5),x=1;
計算を進めてみます。
radcan(F6);
%,nouns;
ここまでで証明は終了です。2つの関数の差が定数に収束するのですからその漸近的振る舞いは一致します。
超幾何関数$\pi\,F(\frac{1}{2},\frac{1}{2};1;x)$(あるいは楕円積分$2\,K(\sqrt{x}) $)と対数関数$-\log{x}$の漸近性を視覚で確認してみたくなりますよね。まず$\log{2}$の大きさを確認しておきましょう。
%,numer;
超幾何関数$\pi\,F(\frac{1}{2},\frac{1}{2};1;x)$、楕円積分$2\,K(\sqrt{x}) $)、対数関数$-\log{x}$を準備して、それら及び差分をグラフに書いてみます。ただし超幾何関数の浮動小数点計算には制約があるのか、$x=1$に近すぎると計算できません。そこで$1$の少し手前($1-\epsilon$)までのグラフを書きます。
F1(x):=%pi*hypergeometric([1/2,1/2],[1],x);
F2(x):=-log(1-x);
F3(x):=2*elliptic_kc(x);
epsilon:0.013;
plot2d([F1(x),F2(x),F3(x),F3(x)-F2(x)],[x,0.0,1.0-epsilon]);
超幾何関数と楕円積分は完全に重なっており、計算はうまく行っているようです。$x\rightarrow 1$で楕円積分と対数関数はどちらも無限大に向かって発散していますが、その差分は少しづつ減少しながら$2.7$位の値に収束しているようにみます。まさに定理の通りです、、、???
証明の結果としてその差は$\log{2}=0.6931\dots$にいくのではなかったでしょうか。何か変ですね。
log(2.0);
F3(1.0-epsilon)-F2(1.0-epsilon);
この2つの数の差を埋めることが出来ずに1週間くらい悩みました。上記式変形がうまく行ったのですぐにもブログ記事を書きたかったのですが、この差について何が起こっているのか説明できないと気持ち悪いですし、記事も中途半端です。
hypergeometric( )やelliptic_kc( )とlog( )を独立に計算してはダメでその差を直接計算する必要があると考えました。そのための道具はその差を1つの積分に表した次の式です。 $$\int_{0}^{1}{\frac{2}{\sqrt{1-t}\,\sqrt{t+1}\,\sqrt{1-t^2\,x}}-\frac{x}{1-t\,x}\;dt}$$ この積分を$x$の値を変えながら数値計算してみることにしました。数値積分にはromberg()という組み込み関数を使えます。
load(romberg);
積分範囲の上の値を$1.0$にすると数値積分がうまく計算できないため、ここでは$0.99$までとしました。 そのため計算結果は小さめに出るはずです。 それ以外は式そのままです。
g(k):=romberg(ev(2/(sqrt(1-t^2)*sqrt(1-x*t^2))-x/(1-x*t),x:k),t,0,0.99);
g()の引数を$0.8$から$0.99999999$まで下記のように変化させて計算してみました。
for a in [0.8,0.9,0.99,0.999,0.9999,0.99999,0.999999,0.9999999] do print(g(a))$
$0.9$から$0.99999$の間で急激に小さくなることがわかります。このような動きを最初のグラフでは表現できていませんでした。この積分が$x=1$の直前でこのような急激な値の変動を起こして$\log{2}$に行くことがあのグラフの原因であったわけです。