Maxima で綴る数学の旅

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

-数学, Maxima入門- 数論的関数のディリクレ級数、texput関数の使い方

f:id:jurupapa:20080202111232j:plain

ディスクキャッチ!

 

ラマヌジャンζの衝撃 (双書―大数学者の数学)

ラマヌジャンζの衝撃 (双書―大数学者の数学)

 

黒川教授の上記の本を読んでいて、以下の式が出てきました。

$$ \notag \sum_{n=1}^{\infty }{\frac{\sigma_{a}\left(n\right)\,\sigma_{b}\left(n\right)}{n^2}}=\frac{\zeta\left(s\right)\,\zeta\left(s-a\right)\,\zeta\left(s-b\right)\,\zeta\left(s-b-a\right)}{\zeta\left(2\,s-b-a\right)} $$ 

 

この式、見覚えがある、と思って手持ちの本を調べたらありました。

 

数論入門―ゼータ関数と2次体

数論入門―ゼータ関数と2次体

 

 ザギヤーさんのこの本の最初の方でディリクレ級数の形式的な性質が述べられているのですが、そこにこの式をはじめとして、様々な数論的関数のディリクレ級数が表にまとめられていました。

下記の(%o4)〜(%o7)はその一部です。どれもこれも凄い式ですねえ。

(%i1) divsumtex(e):=block([n,k],[expn,expk]:args(e),sconcat("\\sigma_{",expk,"}\\left(",expn,"\\right)"))$

(%i2) texput(divsum, divsumtex)$
(%i3) texput(moebius,"\\mu")$
(%i4) sum(divsum(n,a)*divsum(n,b)/n^2,n,1,inf)=zeta(s)*zeta(s-a)*zeta(s-b)*zeta(s-a-b)/zeta(2*s-a-b);
$$ \tag{%o4} \sum_{n=1}^{\infty }{\frac{\sigma_{a}\left(n\right)\,\sigma_{b}\left(n\right)}{n^2}}=\frac{\zeta\left(s\right)\,\zeta\left(s-a\right)\,\zeta\left(s-b\right)\,\zeta\left(s-b-a\right)}{\zeta\left(2\,s-b-a\right)} $$
(%i5) sum(moebius(n)/n^s,n,1,inf)=1/zeta(s);
$$ \tag{%o5} \sum_{n=1}^{\infty }{\frac{\mu\left(n\right)}{n^{s}}}=\frac{1}{\zeta\left(s\right)} $$
(%i6) sum(moebius(n)^2/n^s,n,1,inf)=zeta(s)/zeta(2*s);
$$ \tag{%o6} \sum_{n=1}^{\infty }{\frac{\mu^2\left(n\right)}{n^{s}}}=\frac{\zeta\left(s\right)}{\zeta\left(2\,s\right)} $$
(%i7) sum(divsum(n^2,0)/n^s,n,1,inf)=zeta(s)^3/zeta(2*s);
$$ \tag{%o7} \sum_{n=1}^{\infty }{\frac{\sigma_{0}\left(n^2\right)}{n^{s}}}=\frac{\zeta^3\left(s\right)}{\zeta\left(2\,s\right)} $$

 

(%o7)でsに2を代入すると(%o8)となります。こんな式の値が求まってしまうのですから驚きです。

(%i8) %,s:2;

$$ \tag{%o8} \sum_{n=1}^{\infty }{\frac{\sigma_{0}\left(n^2\right)}{n^2}}=\frac{5\,\pi^2}{12} $$

 

 

ところで(%i1)〜(%i3)では整数論的関数divsum(), moebius()をカッコよく出力するためにtexput()を利用しています。(%i3)のやり方が簡単な方法です。moebius()関数は通常μを使います。(%i3)では単純な文字列の置換でlatexコマンドを指定しています。

 

divsum(n,k)はnの約数のk乗和を計算する関数で、通常σを使います。(%i1), (%i2)ではdivsum(n,k)の引数を、下添え字にしたりそのまま引数にして表示するために少し複雑なことをしています。texput()で、divsum()をtex変換する際に呼び出すべき関数(divsumtex)を指定します。その関数divsumtex()は式をそのまま受け取り、引数を取り出して、所望のlatexコマンドを生成して返しています。