読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

(9) テータ定数の恒等式

Jacobiの三番目のテータ定数は以下のように定義されます。

(はqの函数ですが、テータ函数の原点の値であることから定数と呼ばれます。)
この函数に関して、以下の恒等式が成り立つことが知られています。

これを有限項に限定して確認してみましょう。まず、右辺から。

/* 4.1.17m */
theta3(q) := sum(q ^ (n ^ 2), n, -5, 5)$
left : expand(theta3(q) ^ 2);

使用した機能


次に左辺を計算しましょう。

/* 4.1.18m */
sum2(q) := 1 + 4 * sum(q ^ n / (1 + q ^ (2 * n)), n, 1, 25)$
deftaylor(right(q), sum2(q))$
taylor(right(q), q, 0, 25);

使用した機能

最後に各項の差を見てみましょう。

/* 4.1.19m */
taylor(right(q) - left, q, 0, 25);

まで両辺の各項が等しいことが確認できました。


上で求めた右辺のMaclaurin展開のm次の係数は以下のように書くことができます。

和は、mを割り切る奇数dすべてについて取られます。

であることを使うとわかります。

一方、左辺のMaclaurin展開のm次の係数は、テータ函数の二乗の展開を考えると、以下のように書くことができます。

和は、を満たすすべての整数の組(a,b)について取られます。

従って、以下の命題が成り立ちます。

を満たすすべての整数の組(a,b)の数は、

に等しい。


これを、例えば25次についてMaximaではっきり確認しておきましょう。

/* 4.1.21m */
right2(m) := 4 * lsum(if mod(m, d) = 0 then (-1) ^ ((d - 1) / 2) else 0, d, makelist(2 * i + 1, i, 0, floor(m - 1) / 2))$
left2(m) := sum(sum(if a ^ 2 + b ^ 2 = m then 1 else 0, a, -m, m), b, -m, m)$
print(right2(25), left2(25))$

使用した機能