Holograph1c Attract0r

日々の数学やプログラミングに関係する話。

ラマヌジャンの円周率公式を理解したい 第一回 - 準備編

追記:

ちゃんと証明するシリーズを書き始めました。もっと詳しく知りたい方はぜひどうぞ。

mikan-alpha.hatenablog.com

mikan-alpha.hatenablog.com

 

円周率に関して、こんな公式があります。

\begin{align}
\frac { 1 } { \pi } = \frac { 2 \sqrt { 2 } } { 99 ^ { 2 } } \sum _ { n = 0 } ^ { \infty } \frac { ( 4 n ) ! } { n ! ^ { 4 } } \frac { 26390 n + 1103 } { 396 ^ { 4 n } }
\end{align}

私が初めてこの公式を見たのは確か中学二年生のときだったかと思うのですが、まず抱いた感想が「なんだ、これ」でした。そりゃ、そうなりますよね。こんなんどうやって思いつくのかと。26390とか1103とかいう定数はどこから来たんだ。

円周率 - Wikipedia

円周率については、上のWikipediaにも載っている通りたくさんの関係式が見つかっています。直接 \pi を求めるためのものとして、ライプニッツの公式なんかがあったりしますが上はそれよりもさらに難解です。

それもそのはず、この公式を発見したのはかのラマヌジャンなのですから。

 

初めてこの公式と出会ったときからしばらく経ち、今ならこれを理解できるんじゃないかという淡い期待のもとネットサーフィンをしていると、どうやらそれらしい情報をいくつか得ることができました。そんなわけで、今回この記事を書くに至っています。

予定ではおそらく次回とその次で完結くらいになるかと思いますので、ノートとペンを片手に付き合っていただければ幸いです。

!注意!:
言うまでもなく私自身もまだこのトピックについて研究途中ですので、内容の正確性を保証することができません。学生の自由研究程度に思って読んでいただくと良いと思います。読み手の前提の知識として、大学一年から二年程度を想定しています。(私がまだ大学生ではないので見当がつけにくいのですが……)

ラマヌジャンと、モジュラー形式と、j-不変量

\begin{align}
\frac { 1 } { \pi } = \frac { 2 \sqrt { 2 } } { 99 ^ { 2 } } \sum _ { n = 0 } ^ { \infty } \frac { ( 4 n ) ! } { n ! ^ { 4 } } \frac { 26390 n + 1103 } { 396 ^ { 4 n } }
\end{align}

まず疑問に思うのは、そもそもこの円周率は何から生まれたのかというところです。例えば、さっき挙げたライプニッツの公式は \arctan を背景としています。

ラマヌジャンですから、急に思いついたなどと言われてもおかしくはないのですが、もしそう言われてしまったら完全に手詰まりです。

しかしながら、ヒントになりそうなものがありました。

ラマヌジャンWikipediaには、次のように書かれています。

ラマヌジャンは、今日ではモジュラー関数と呼ばれる考えを元に、次の円周率の公式を発見した。

なんと、どうやらモジュラー関数が関係しているらしいと。

そこで、モジュラー関数と呼ばれるものについて調べることにしました。

モジュラー形式とは、なんぞや

上ではモジュラー関数だったのに、なぜ見出しはモジュラー形式なんだと言われるかもしれませんが、別に表記揺れではありません。ちゃんとした別の概念です。

ではなんでモジュラー「形式」をやるのかというと、そもそもモジュラー関数の定義にモジュラー形式が絡むからです。

ということで、まずモジュラー形式とは何かという話からしていきましょう。

 

モジュラー形式とは、上半平面 \mathbb{H}*1複素数に対して定義され、以下のような性質をもつ複素数値関数の総称です。

1. \mathbb{H} 上で正則である

2. \mathbb{H} の全ての z に対して、以下の式が成立する。
\begin{align}
f(- \frac{1}{z}) &= z^k f(z) \\
f(z + 1) &= f(z)
\end{align}

3. z \to i \infty として正則である

 

……初見では、なんだかよく分かりませんよね。
でも分からなくても大丈夫です。そんな細かいことを気にする機会は今回ないと思います。

一応ざっくり説明しておくと、まず正則であるというのは実関数でいうところの「微分可能」ということです。関数の滑らかさの保証みたいなものですね。
そして第二の条件も、関数の「性質の良さ、扱いやすさ」の保証のような感じです。(具体的には、ある種の対称性を持つ関数である保証です)

また、上の性質から導かれるモジュラー形式の特徴として、フーリエ級数*2で表現できるというのがあります。周期関数だからできることですね。
つまり、モジュラー形式は c_nフーリエ係数としてこう書くことができます。

\begin{align}
f(z) = \sum_{n=-m}^{\infty} c_n q^n
\end{align}

ここで、いきなり右辺に q というのが出てきましたが、これはモジュラー形式を扱っていく上で大切なものです。

この q は以下のように定義されていて、しっかり z の関数となっています。

\begin{align}
q = \exp(2 \pi i z)
\end{align}

このように、モジュラー形式は q という文字を使った級数で表されます。そして、このフーリエ級数にはq-展開という名前が付けられています。

次に、第二の条件ででてきた k という数についてです。
これもモジュラー形式において大切なパラメータで、重さ(weight)と呼ばれています。

例えば、以下が成り立つようなモジュラー形式は「重さ 12 のモジュラー形式」というように言われるわけです。

\begin{align}
f(- \frac{1}{z}) = z^{12} f(z)
\end{align}

k は整数というわけではなく、k=1/2 になるようなモジュラー形式*3もあったります。

重さに関するモジュラー形式の性質として、重さが同じモジュラー形式を持ってきて足したり引いたりしてもその重さは変わりません。また、重さ w_1 のモジュラー形式 f(z) と、重さ w_2 のモジュラー形式 g(z) を持ってきたとき、その積のモジュラー形式の重さは w_1 + w_2、逆に割ってやると w_1 - w_2 もしくは w_2 - w_1 になります*4。これ大事なので覚えておいてくださいね!

以上が、モジュラー形式の基礎になります。

 

さて、次はモジュラー「関数」についてです。モジュラー形式が分かっていればそんなに難しいことではありません。

モジュラー関数とは、重さ 0 のモジュラー形式のことです*5
つまり、以下が成り立ちます。

\begin{align}
f(- \frac{1}{z}) = f(z)
\end{align}

z^k が余分に飛び出さなくて綺麗ですね!
ある意味で「不変」ということができそうです。

j-不変量(j-invariant)

ここからが本題です。もとの円周率公式に直結する話へと入っていきます。

いきなりタイトルのj-不変量の話に入りたいところですが、まだ少し準備が足りないのでその説明から始めましょう。

まず下準備として、以下の級数を定義します。

\begin{align} G_{2k} ( \tau ) = \sum_{ ( m , n ) \in \mathbb { Z } ^ { 2 } \backslash ( 0,0 ) } \frac { 1 } { ( m + n \tau ) ^ {2k} } \end{align}

これは正則アイゼンシュタイン級数と呼ばれる級数で、上半平面 \mathbb{H} 上の複素数 \tau と整数 k \ge 2 に対して定義されます。
シグマの下の式の意味は、(0, 0)を除く全ての整数の組に対して総和をとるということです。

ここで注目すべき点は、この級数重さ 2k のモジュラー形式であるということです。
例えば G_4 は重さ 4 のモジュラー形式、G_6 は重さ 6 のモジュラー形式になります。

ちなみに、アイゼンシュタイン級数のq-展開は以下のようになります。

\begin{align} G_{2k} ( \tau ) = 2 \zeta ( 2 k ) \left( 1 + \frac{2}{\zeta (1 - 2k)} \sum _ { n = 1 } ^ { \infty } \sigma _ { 2 k - 1 } ( n ) q ^ { n } \right) \end{align}

ここで \sigma_p (n)約数関数と言われるもので、n の約数をそれぞれ p 乗したものの総和を表します。

 

以降の便宜のために、以下のように不変量 g_2g_3 というのを定めておきます。

\begin{align} g_2(\tau) = 60 \cdot G_4(\tau) \\ g_3(\tau) = 140 \cdot G_6(\tau) \end{align}

 

そしてこの級数を用いて定義されるのが、j-不変量(j-invariant)です。

\begin{align} j(\tau) = 1728 \frac{g_2(\tau) ^ 3}{g_2(\tau) ^ 3 - 27 g_3(\tau) ^ 2} \end{align}

これが、今回の円周率公式の核とも言えるものです。
その名前にある不変量というのは、おそらくこの関数が重さ 0 のモジュラー形式、つまりモジュラー関数であることから来ています。

分子の g_2(\tau) ^ 3 が重さ 12、分母の g_2(\tau) ^ 3 - 27 g_3(\tau) ^ 2 も重さ 12なので、先ほどの重さの性質よりj-不変量の重さが0であることが分かります。

また、このj-不変量のq-展開は以下のようになります。

\begin{align} j (\tau) = \frac { 1 } { q } + 744 + 196884 q + 21493760 q ^ 2 + 864299970 q ^ 3 + 20245856256 q ^ 4 + \cdots \end{align}

この級数の全てのフーリエ係数は整数とのことです。

 

もう少しこのj-不変量の話をすると、この j(\tau) で作られる有理式は全てモジュラー関数で、しかも全てのモジュラー関数を生成、表現することができるそうです。まさに、全てのモジュラー関数を司る式とでも言いましょうか。

 

次回から、このj-不変量 j(\tau) をもとに実際にラマヌジャンの円周率公式を考察していきたいと思います。では、お疲れ様でした。

参考文献

*1:虚部が正となる複素数全体の集合です

*2:もっと広く言えば、ローラン級数です

*3:詳細はDedekindのイータ関数でggってみてください

*4:重さが負のモジュラー形式があるのか、残念ながら私は分かりません……

*5:z→i∞において正則ではなくても、有理型関数であればモジュラー関数になります