読み書きプログラミング

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

(57) ゼータ函数のEuler積

以下の恒等式が成り立ちます。

右辺がEuler積と呼ばれる形です。

これをMaximaを使って実感してみましょう。表示をシンプルにするため、sに-sを代入し、Euler積の中身をMaclaurin展開して、検証する次数まで取り出します。

/* 9.3.3m */
proofLimit : 15$
f(x, deg) := at(taylor(1/(1 - y), y, 0, deg), y = x)$
prime : [2, 3, 5, 7, 11, 13]$
z(s) := product(f(prime[m]^s, floor(log(proofLimit)/log(prime[m]))), m, 1, 6)$
z(s);

次に展開して、整理します。

/* 9.3.4m, 9.3.5m */
t : z(s), expand;

matchdeclare([xx, yy, zz], true, pp, atom)$
defrule(power1, xx^(2*pp), ev(xx^2)^pp)$
defrule(power2, xx^(3*pp), ev(xx^3)^pp)$
defrule(power3, zz*xx^pp*yy^pp, zz*(xx*yy)^pp)$
t : apply1(t, power1, power2, power3);

使用した機能