読者です 読者をやめる 読者になる 読者になる

tsujimotterの下書きノート

このブログは「tsujimotterのノートブック」の下書きです。数学の勉強過程や日々思ったことなどをゆるーくメモしていきます。下書きなので適当です。

記事一覧はこちらです。このブログの趣旨はこちら

メインブログである「tsujimotterのノートブログ」はこちら

リーマンの素数公式についての質問への回答

本記事は,こちらの記事のコメント欄における質問に対する回答です。


id:kimko379 さま

お返事遅くなりすみません。
ご質問の件について,少々長くなりましたがこちらで解説いたします。


まず,ご質問の内容は以下のものでした。

1.先生の、パワー・アップ後のグラフの、オレンジ色の線の関数に於ける k と、下記のURLの、R_n(x) に於ける n とは、本質的に同じ物でしょうか。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12168471212
2.パワー・アップ前のページの、I(x) (アイ・エックス)の公式をお教え頂けますでしょうか。


確認事項ですが,質問の  R_n(x) の式とは,上記の Yahoo! 知恵袋の質問の中にある以下のリンク

http://empslocal.ex.ac.uk/people/staff/mrwatkin/zeta/encoding1.htm

という英文記事における  R_n(x) のことですね。


また,「パワー・アップ後のグラフ」いうのは私のブログ記事

リーマンの素数公式の可視化アプリがパワーアップしました - tsujimotterのノートブック

で紹介した以下のリンク先のアプリケーション

Visualization of Riemann's Prime Number Formula.

におけるオレンジ色の線(あるいは赤線)のグラフのことですね。


なお,「パワー・アップ前」とは,「パワー・アップ後」の記事以前に書いた

リーマンの素数公式を可視化する - tsujimotterのノートブック

の記事のことですね。


以上の確認を踏まえた上で,回答させていただきます。

質問2の回答

まず,わかりやすいので質問2の方から先にお答えします。

 I(x) は以下の形で定義される関数です。

 \displaystyle I(x) = \sum_{1\leq m \leq \log_2(x)}\frac{\mu(m)}{m} \left\{ \int_{x^{\frac{1}{m}}}^{\infty}\frac{dt}{t(t^2-1) \log(t)} - \log 2 \right\} \tag{1}

 \mu(m) はメビウス関数と呼ばれるもので, m が平方数を因子に含むとき  0,それ以外のときに

  •  m の素因子の個数が偶数であれば  1
  •  m の素因子の個数が奇数であれば  -1

を返す関数です。



したがって,「パワーアップ前の記事」のリーマンの素数公式は

 \displaystyle \pi(x) = R(x) + \sum_{k=1}^{\infty}T_k(x) + I(x)

と記述していましたが,上の式に  R(x), T_k(x), I(x) の定義をそれぞれ代入すると,

 \displaystyle \pi(x)=  \sum_{1\leq m \leq \log_2(x)}\frac{\mu(m)}{m}li(x^{\frac{1}{m}})  - \sum_{1\leq m \leq \log_2(x)} \frac{\mu(m)}{m} \sum_{k=1}^{\infty} \left\{ li\left(x^{\frac{\rho_k}{m}}\right) + li\left(x^{\frac{\overline{\rho}_k}{m}}\right)\right\} + \sum_{1\leq m \leq \log_2(x)}\frac{\mu(m)}{m} \left\{ \int_{x^{\frac{1}{m}}}^{\infty}\frac{dt}{t(t^2-1) \log(t)} - \log 2 \right\} \tag{2}

となります。これが一般的に用いられる「リーマンの素数公式」と呼ばれる式です。


すなわち,リーマンの素数公式は

 \displaystyle \begin{align} R(x)&=  \sum_{1\leq m \leq \log_2(x)}\frac{\mu(m)}{m}li(x^{\frac{1}{m}}) \\
\sum_{k=1}^{\infty}T(x) &=  - \sum_{1\leq m \leq \log_2(x)} \frac{\mu(m)}{m} \sum_{k=1}^{\infty} \left\{ li\left(x^{\frac{\rho_k}{m}}\right) + li\left(x^{\frac{\overline{\rho}_k}{m}}\right)\right\} \\
I(x) &=  \sum_{1\leq m \leq \log_2(x)}\frac{\mu(m)}{m} \left\{ \int_{x^{\frac{1}{m}}}^{\infty}\frac{dt}{t(t^2-1) \log(t)} - \log 2 \right\} \end{align}

という本質的に3つの項によって成り立っています。

1項目は「主要部」と呼ばれ,素数階段の近似の主要部分を担っています。

2項目は「振動部」と呼ばれ,これが「ゼータ関数の非自明な零点」に関係する項です。 T_k(x) ひとつ分が「 k 番目の非自明な零点による寄与」を表した項です。主要部  R(x) に対して, T_k(x) k=1 から順番に足しあわせていくと,だんだんと素数階段  \pi(x) に近づいていくのです。

3項目はおまけみたいなもので,第1項と第2項と比べると十分小さく,どの  x をとってもほとんど  0 に近いので無視してもさほど目立たない項です。とはいえ,厳密に言えばこの項も含めないと  \pi(x) には一致はしません。理論的には,この項は「自明な零点」の寄与と考えることができます。



質問1の回答

さて質問1の方ですが,これについては「ややこしい事情」がありますので,前提となる説明をしてから回答に移ります。

まず,「パワーアップ後の記事」で用いている公式は,実は式  (2) ではないのです。 (2) よりも簡略化した以下のものを用いています。

 \displaystyle J(x)=  li(x) - \sum_{k=1}^{\infty}\left\{ li\left(x^{\rho_k}\right) + li\left(x^{\overline{\rho}_k}\right)\right\} + \int_{x}^{\infty}\frac{dt}{t(t^2-1) \log(t)} - \log 2  \tag{3}


 (3) の右辺全体に  \sum_{1\leq m \leq \log(x)}\frac{\mu(m)}{m} をかけて, x x^{\frac{1}{m}} に置き換えると,式  (2) の右辺に一致します。また,左辺は式  (3) J(x) \pi(x) に置き換えると一致します。

「パワーアップ後の記事」で用いる数式を変更したのは,式の構造を簡単化するためです。そのためパワーアップの前後で,左辺が素数の個数関数  \pi(x) から  J(x) に変わってしまっています。 J(x) も素数階段のような関数ですが,特に名前はついていません。「離散関数」と呼んでいる文献を見たことがあります。

リーマンの原論文に登場している関数なので,私は便宜上「リーマンの階段関数」と読んでいます。ただし,リーマン自身は  f(x) と記述していました。


以上のように,リーマンの素数公式といっても,その書き方は文献によってまちまちで,なおかつ私のブログでも2つの記事で異なった書き方をしているために混乱を招いています。


ただ,構造としては,(メビウス関数がついている・ついていないの違いはあるにせよ)大きく3つの項により成り立っていることは変わりません。



すなわち,「パワーアップ後の記事」で用いている簡略化された素数公式は,以下の3つによって成り立っています。

 \displaystyle \begin{align} r(x)&= li(x) \\
\sum_{k=1}^{\infty}t_k(x) &=  -\sum_{k=1}^{\infty}\left\{ li\left(x^{\rho_k}\right) + li\left(x^{\overline{\rho}_k}\right)\right\} \\
i(x) &=   \int_{x}^{\infty}\frac{dt}{t(t^2-1) \log(t)} - \log 2  \end{align}


「パワーアップ前の記事」で用いている式と「パワーアップ後の記事」で用いている式は,以下のように対応しています。

 \displaystyle \begin{align} R(x) &\longrightarrow r(x) \\
\sum_{k=1}^{\infty}T_k(x) &\longrightarrow \sum_{k=1}^{\infty}t_k(x) \\
I(x) &\longrightarrow   i(x) \end{align}

左側が「パワーアップ前の記事」で,右側は「パワーアップ後の記事」で用いている式です。パワーアップ前・後と言っているとややこしいので,以下この記号を用います。



さて,その上で質問1に回答しましょう。


「パワーアップ後の記事」のオレンジ色のグラフは,

 \displaystyle \cancel{r(x) + \sum_{k=1}^{n}t_k(x)} \tag{4}
 \displaystyle r(x) + \sum_{k=1}^{n}t_k(x) - \log 2 \tag{4}
2017/01/18: 訂正しました。

を用いています。つまり,式  (3) の「主要部」に対して,「振動項」の最初の  n 個だけを足しあわせた式です。すなわち,「ゼータ関数の非自明な零点」を最初の  n 個だけ使って作った式です。リーマンの素数公式は,本来は無限に多くの零点の寄与を足していくものですが,最初の  n 個だけを用いているのです。 n を十分大きくとれば,リーマンの素数階段  J(x) に近づいていきます。


では,ご質問のあった先の URL

http://empslocal.ex.ac.uk/people/staff/mrwatkin/zeta/encoding1.htm

における  R_n(x) とは何かというと,以下の式で表せる関数と考えられます。

 \displaystyle R_n(x) = R(x) + \sum_{k=1}^{n}T_k(x) + I(x) \tag{5}

つまり,式  (2) の「振動項」において最初の  n 個だけを足しあわせた式です。すなわち,「ゼータ関数の非自明な零点」を最初の  n 個だけ使って作った式です。これも同様に, n を十分大きくとれば,素数階段  \pi(x) に近づいていきます。


したがって,両者ではそもそも用いているリーマンの素数公式が異なるわけです。

  • 私が作ったパワーアップ後のアプリケーションは,式  (4)
  • ご質問のURLの先の動いているグラフ(と私のパワーアップ前の式)は式  (5)

用いています。

ただし,どちらも「ゼータ関数の非自明な零点」に関する項の「用いる零点の個数  n」を増やして,近似を近づけている点は変わりません。また,どちらの式においても  n の意味するものは同じです。その意味で,(メビウス関数等の細かい違いを除けば)本質的に同じものを扱っていると考えてよいでしょう。