B.C.Berndt: Number Theory in the Spirit of Ramanujanより

$0\lt x \lt 1$の範囲で関数$F(x)$を $$F(x)=exp\left(-\pi\,\frac{{}_2 F_1\left(\frac{1}{2},\frac{1}{2};1;1-x\right)}{{}_2 F_1\left(\frac{1}{2},\frac{1}{2};1;x\right)}\right)$$ と定義しました(超幾何関数もFですが、引数の形が異なるので区別できると思います)。

Chapter 5 Theorem 5.2.5
$$F\left(1-\frac{\varphi\left(-q\right)^4}{\varphi\left(q\right)^4}\right)=q$$

これはまた美しい式ですね。ラマヌジャンのテータ関数$\varphi(q)$の式$1-\frac{\varphi\left(-q\right)^4}{\varphi\left(q\right)^4}$と超幾何関数の式$F(x)=exp\left(-\pi\,\frac{{}_2 F_1\left(\frac{1}{2},\frac{1}{2};1;1-x\right)}{{}_2 F_1\left(\frac{1}{2},\frac{1}{2};1;x\right)}\right)$が逆関数の関係にあるということです。

これはグラフを描いて本当にそうなっていることを確認したいです。このような一見複雑な式もMaximaを使えばほぼそのまま数値計算できますからやってみましょう。まず$F(x), \varphi(x)$、そして$g(q)=F\left(1-\frac{\varphi\left(-q\right)^4}{\varphi\left(q\right)^4}\right)$をMaximaで定義します。

In [1]:
F(x):=exp(-%pi*hypergeometric([1/2,1/2],[1],1-x)/hypergeometric([1/2,1/2],[1],x));
Out[1]:
\[\tag{${\it \%o}_{0}$}F\left(x\right):=\exp \left(\frac{-\pi\,{\it hypergeometric}\left(\left[ \frac{1}{2} , \frac{1}{2} \right] , \left[ 1 \right] , 1-x\right)}{{\it hypergeometric}\left(\left[ \frac{1}{2} , \frac{1}{2} \right] , \left[ 1 \right] , x\right)}\right)\]
In [2]:
phi(x):=sum(x^(n^2),n,-10,10);
Out[2]:
\[\tag{${\it \%o}_{1}$}\varphi\left(x\right):={\it sum}\left(x^{n^2} , n , -10 , 10\right)\]
In [3]:
g(q):=F(1-phi(-q)^4/phi(q)^4);
Out[3]:
\[\tag{${\it \%o}_{2}$}g\left(q\right):=F\left(1-\frac{\varphi\left(-q\right)^4}{\varphi\left(q\right)^4}\right)\]

$F(x)$は$0 \le x \le 1$で定義されますが、Maximaの超幾何関数の数値計算アルゴリズムの制約を受けてしまい、実際には$0.011\le x \le 0.99$くらいでしか計算できません。その区間でグラフを描くと以下のようになります。

In [4]:
plot2d(F(x),[x,0.011,0.99]);
Gnuplot Produced by GNUPLOT 5.4 patchlevel 2 %e^-((%pi*hypergeometric([1/2,1/2],[1],1-x))/hypergeometric([1/2,1/2],[1],x)) x gnuplot_plot_1 0 0.05 0.1 0.15 0.2 0.25 0.3 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Out[4]:
\[\tag{${\it \%o}_{3}$}\left[ \mbox{ /var/folders/3n/jp9c5wkw8xjgmy006s6t\_pt80000gn/T/maxout34260.gnuplot } , \mbox{ ~/.maxplot.svg } \right] \]
SB-KERNEL:REDEFINITION-WITH-DEFUN: redefining MAXIMA::SIMP-HYPERGEOMETRIC in DEFUN

そのため$0.011\le 1-\frac{\varphi\left(-q\right)^4}{\varphi\left(q\right)^4} \le 0.99$となるように$q$を選ぶ必要があります。そこでこの式のグラフを見てみましょう。

In [5]:
plot2d(1-phi(-q)^4/phi(q)^4,[q,0.0,0.99]);
Gnuplot Produced by GNUPLOT 5.4 patchlevel 2 q gnuplot_plot_1 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Out[5]:
\[\tag{${\it \%o}_{4}$}\left[ \mbox{ /var/folders/3n/jp9c5wkw8xjgmy006s6t\_pt80000gn/T/maxout34260.gnuplot } , \mbox{ ~/.maxplot.svg } \right] \]

$0.4\lt q$では式の値は1に張り付いています。$0\lt q\lt0.3$の範囲は$g(q)$を計算できるかなと思ったのですが、やってみると$0.001\lt q \lt 0.26$の範囲が限界でした。その範囲で計算した$g(q)$をプロットしてみます。

In [6]:
plot2d(g(x),[x,0.001,0.26]);
Gnuplot Produced by GNUPLOT 5.4 patchlevel 2 x gnuplot_plot_1 0 0.05 0.1 0.15 0.2 0.25 0.3 0.05 0.1 0.15 0.2 0.25
Out[6]:
\[\tag{${\it \%o}_{5}$}\left[ \mbox{ /var/folders/3n/jp9c5wkw8xjgmy006s6t\_pt80000gn/T/maxout34260.gnuplot } , \mbox{ ~/.maxplot.svg } \right] \]

これはほぼ直線になっています。狭い範囲ではありますが、所望のグラフが得られました。 最後に念の為いくつかの実際の数値で$g(q)$を確認してみましょう。

In [7]:
res:[];
for q in [0.123, 0.2215, 0.243] do push(ev(g(q),numer),res)$
reverse(res);
Out[7]:
\[\tag{${\it \%o}_{6}$}\left[ \right] \]
Out[7]:
\[\tag{${\it \%o}_{8}$}\left[ 0.1230000000000001 , 0.2215000000000012 , 0.243000000000002 \right] \]