Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-数学- 楕円モジュラー関数/j不変量 (3) 虚2次無理数と判別式

f:id:jurupapa:20210115233433j:plain

この記事のコードをJupyter notebook形式で見るにはこちら。

 

数年前に虚2次無理数、判別式、モジュラー変換、基本領域などの記事を書きました。

この続きのような内容になります。またInFD(), FindInFD()は当時作った関数達です。

当時分からなかったのは、「同じ判別式を持つ対等でない虚2次無理数を全て列挙するアルゴリズムがある」ということでした。今回の記事で新しいのはその部分です。 

 

maxima-asdfを導入済みなら以下の(%i1), (%i2)でダウンロード&読み込みが完了します。導入済みでなければ、githubからmodular_j.macをダウンロード&保存して、load("modular_j.mac");で読み込んでください。

(%i1) install_github("YasuakiHonda","modular_j","main")$

(%i2) asdf_load("modular_j")$

 

早速試してみましょう。

(%i15) a:(1+sqrt(-35))/6;

$$ \tag{${\it \%o}_{15}$}\frac{\sqrt{35}\,i+1}{6} $$

この虚2次無理数と対等で、かつ基本領域にある虚2次無理数(簡約虚2次無理数とも呼ばれるようです)をFindInFD()を使って求めます。
(%i16) FindInFD(a);

$$ \tag{${\it \%o}_{16}$}\frac{\sqrt{35}\,i-1}{6} $$

 

適当にモジュラー変換を定義してみます(%o17)。\(3\times2-5\times1=1\)ですから\(f(x)\)は確かにモジュラー変換です。\(\frac{a\,x+b}{c\,x+d}\)が\(a,b,c,d \in Z\)で\(a\,d-b\,c=1\)であるような\(a,b,c,d\)を適当に選んだのです。
(%i17) f(x):=(3*x+5)/(1*x+2);

$$ \tag{${\it \%o}_{17}$}f\left(x\right):=\frac{3\,x+5}{1\,x+2} $$

このモジュラー変換で、(%o15)で定義した\(a=\frac{\sqrt{35}\,i+1}{6}\)を変換してみます。
(%i18) f(a),ratsimp,algebraic:true;

$$ \tag{${\it \%o}_{18}$}\frac{\sqrt{35}\,i+89}{34} $$

この変換により得られた(%o18)は元の\(a\)と対等ですが、基本領域の中にはありません。確認しましょう。
(%i19) InFD(%);

$$ \tag{${\it \%o}_{19}$}\mathbf{false} $$

\(f(a)\)と対等な基本領域の中の虚2次無理数を求めてみます(%o16)と一致するはずです。
(%i20) FindInFD(f(a));

\Ta: \(3\)
\S
\Ta: \(2\)
$$ \tag{${\it \%o}_{20}$}\frac{\sqrt{35}\,i-1}{6} $$

確かに(%o16)と一致します。

 

次に\(a=\frac{\sqrt{35}\,i+1}{6}\)の判別式を求めてみます。
(%i21) FindDetIrr(a);

$$ \tag{${\it \%o}_{21}$}-35 $$

このFindDetIrr()という関数は実装は単純です。\(\frac{a+b\,\sqrt{c}}{d}\)が2次方程式\(d^2\,x^2+2\,a\,d\,x+a^2-b\,c^2=0\)の解です。3つの係数の最大公約数で割ってから2次方程式の判別式を求めるだけですね。

判別式-35を持つ簡約虚2次無理数を全て求めてみます。
(%i22) FindReducedQuadIrrD(-35);

$$ \tag{${\it \%o}_{22}$}\left[ \frac{\sqrt{35}\,i-1}{6} , \frac{\sqrt{35}\,i-1}{2} \right] $$

(%o16)が含まれていることを確認してください。これらの2つの数が基本領域に含まれていることも確認しましょう。
(%i23) map(InFD,%);

$$ \tag{${\it \%o}_{23}$}\left[ \mathbf{true} , \mathbf{true} \right] $$

虚2次無理数の類数は、同じ判別式を持つ簡約虚2次無理数の個数、として定義されます。つまり(%o22)のリストの長さです!

(%i24) FindClassNumberD(-35);

$$ \tag{${\it \%o}_{24}$}2 $$


FindReducedQuadIrrD()は、tsujimotterさんのブログ記事:

 

を参考にして実装しています。正定値2次形式と虚2次無理数(と2次体のイデアル類)は対応がつくので、アルゴリズムも同じものが使えるのです。判別式Dに対して上記記事で求めた正定値2次形式のreduced formと、簡約虚2次無理数が1対1対応します。

 

ちなみに山本先生の本:

数論入門 (現代数学への入門)

数論入門 (現代数学への入門)

  • 作者:山本 芳彦
  • 発売日: 2003/11/11
  • メディア: 単行本
 

では簡約虚2次無理数と2次体のイデアル類の関係が第8章楕円モジュラー関数の章に書いてあり、2次体のイデアル類の求め方が第6章2次体の整数論の章に書いてあります。私のような初学者には両方を結びつけて、簡約虚2次無理数を求めるのは、難しいです。一方、簡約虚2次無理数と正定値2次形式の対応はほとんど自明なので、tsujimotterさんの記事内容を利用させて頂きました。