マンゴールト関数の定義は一見すると奇妙な感じがします。特にその引数nが素数pのk乗の時、関数の値をlog(p)とする、、、って、冪乗の指数のkはどうでも良いのでしょうか、と思いますよね。
とはいえ、リーマンの素数個数明示公式よりも簡明なマンゴールトの明示公式はマンゴールト関数の総和関数をゼータ関数の零点で正確に表すことができ、零点200個でも非常に正確に近似することができることがグラフから分かります。マンゴールト関数の重要性は明らかです。
実はもっと直球勝負の関係がマンゴールト関数とゼータ関数の零点の間にはあります。両者はフーリエ変換で結ばれており、従ってフーリエ変換に相当する関係と、逆フーリエ変換に相当する関係があります。両者を合わせてマンゴールト関数とゼータ関数の零点の双対性(duality)と呼ばれています。
今回はその内ゼータの零点でマンゴールト関数を表せる様子を見てみましょう。
以下%o1 〜 %o3は式変形のための準備です。
(%i1) (matchdeclare(agr1,true),tellsimpafter(atan2(0,arg1),0));
$$ \tag{%o1} \left[ \mathrm{atan2rule2} , \mathrm{simpatan2} \right] $$
(%i2) declare(rho,complex,x,real,a,real);
$$ \tag{%o2} \mathbf{done} $$
(%i3) assume(x>0);
$$ \tag{%o3} \left[ x>0 \right] $$
ゼータ関数の零点の表を読み込みます。
(%i4) load("zetazeros1000.mac")$
以下の式%o5で \( \rho \) を全ての零点にわたって動かし、計算値を足した物(の符号を変えたもの)はマンゴールト関数を非常に良く近似します。前回と同様、高々1000個のまでの零点しか使わないので、零点の実部を1/2とおいて式を変形します。
(%i5) x^rho+x^conjugate(rho);
$$ \tag{%o5} x^{\rho^\star}+x^{\rho} $$
(%i6) %,rho:1/2+%i*a;
$$ \tag{%o6} x^{i\,a+\frac{1}{2}}+x^{\frac{1}{2}-i\,a} $$
(%i7) %,rectform,ratsimp;
$$ \tag{%o7} 2\,\sqrt{x}\,\cos \left(a\,\log x\right) $$
ここまで簡単になったので、a, xをパラメータとする関数に定義します。
(%i8) define(periodic2(x,a),%);
$$ \tag{%o8} \mathrm{periodic2}\left(x , a\right):=2\,\sqrt{x}\,\cos \left(a\,\log x\right) $$
この関数のaの非自明な零点にわたる総和とマンゴールト関数(すこしx軸上で平行移動して、y軸方向に400倍にのばしたもの)を描画してみます。
(%i9) wxplot2d([-sum(periodic2(x,img_rho[i]),i,1,1000), mangoldt(floor(x+1/2))*400],[x,1,100]);
対数曲線に沿って、xが素数値でのピーク、xが素数の冪乗での背の低いピークが完全に再現されているのが分かります。64や81での背の低いピーク、59と61、71と73の双子素数を見て取ることができます。
この記事の内容はWikipediaのvon Mangoldt関数の項にあるグラフ、(そこにもリンクがありますが)アメリカ数学研究所のブライアン・コンリー教授の解説論文を参考にしました。