2017年ごろ、このブログで楕円関数や楕円曲線、ワイエルストラスのペー関数、アイゼンシュタイン級数などの記事を書きました。その際、以下のような文章も書いたのですが、結局投稿せずにお蔵入りとしました。
楕円曲線やモジュラリティ定理の話を勉強していると、突然、j関数、j不変量、楕円モジュラー関数などと呼ばれる特定の形の関数に出会います。大抵の場合、楕円曲線のワイエルストラスの標準形の2つの定数g2, g3を用いて次の式で定義されます。
$$j\left(\tau\right)=\frac{1728\,g_{2}(\tau)^3}{g_{2}(\tau)^3-27\,g_{3}(\tau)^2}$$
\(\tau\)は楕円曲線\(y^2=4\,x^3+g_{2}(\tau)\,x+g_{3}(\tau)\) の2重周期の比で、複素平面の上半平面に値を取ります。
さらに\(g_2\left(\tau\right), g_3\left(\tau\right)\)はそれぞれ重さ4, 6のアイゼンシュタイン級数を使って定義されます。
この上半平面で定義された複素関数\(j\left(\tau\right)\)とは何で、なぜ重要で、どんな性質を持つのでしょうか。
- 重さ0のモジュラー形式である。したがってSL(2,Z)に属する1次分数変換で値が変わらない。
- 全ての重さ0のモジュラー形式は\(j\left(\tau\right)\)の有理式で表される。
- 自然な定義域はSL(2,Z)の基本領域である。
- SL(2,Z)の基本領域から全複素平面への全単射である。
- 定義式の分母はラマヌジャンの保型形式である。
- \(j\left(\tau\right)\)の異なる値によって対応する楕円曲線を一意に識別することが出来る(モジュライ空間と呼ぶらしいです)。
- 上記定義式から頑張ると\(q\)展開を計算することが出来る。
- \(\tau\)が虚2次無理数の場合、\(j\left(\tau\right)\)の値は代数的整数になる。
- より精密には\(\tau\)が虚2次無理数の場合、\(\tau\)と同じ判別式を持つ虚2次無理数\(\alpha_k\)について\(j\left(\alpha_k\right)\)を全て根として持つモニックな整係数の多項式(ヒルベルト類多項式)が存在する。この類多項式の次数は類数と同じである。
- \(q\)展開の係数と、有限単純群の分類で現れる散在型単純群のうち最大のもの(モンスター群と呼ばれる)の間にはモンストラス・ムーンシャインと呼ばれる不思議な関係が存在する。
残念ながらこの辺まで来るとMaximaには何も実装されていません。Maximaに実装するとしたら、数値計算、逆関数の数値計算、wikipediaに乗っているレベルの特殊値、対応する楕円曲線を求めること、q展開、判別式の値に対するヒルベルト類多項式を求めること、くらいでしょうか。
お蔵入りにしたのはMaximaで何をどうやって実装できるのか分からなかったからでした。
お正月に山本先生の本:
や、tsujimotterさんのブログ記事
を読み直していて、楕円モジュラー関数を、数値計算だけでなく、その特殊値も計算できることが分かり、Maximaで実装してみました。
- 与えられた虚2次無理数の判別式を求めること
- 与えられた判別式をもつすべての簡約虚2次無理数を求めること: FindReducedQuadIrrD(D)
- 判別式の類数を求めること: FindClassNumberD(D)
- 与えられた判別式に対応するヒルベルト類多項式を求めること: FindClassPolyD(var,D)
- 類多項式の根の1つとして、与えられた虚2次無理数tに対するj(t)を求めること: exact_modular_j(t)
などを記事にしていく予定です。