時は数年前,意識高かった頃にフェルマーの最終定理・佐藤-テイト予想解決への道
という書籍をわからないながらも読み勧めている時,素数定理というものに出会った.
そこから興味本位で調べていくうちに,この素数定理がゼータ関数やリーマン予想の話につながってることがわかったが,まず複素解析自体無縁の生活を送っていたので,とりあえず複素解析なるものの書籍を読むところから始めた.
当初は式の導出にしか興味が無かったけど,せっかくプログラムの環境を整えているのと,式で得られる結果を自分で出力してみたいという気持ちも溢れてきて,組んでみたいという気持ちが出てきた.
しかし実際組んでみた結果だが,一部うまくいかなかったので,一部先駆者のtsujimotterさんがブラウザで動くものを組んでいる記事を書いている解説
も勝手にだが利用させてもらった.
目次
素数計数関数
素数は無限に存在する.それ自体はよく知られた背理法,有限である場合,と番号付けするとそれら全てかけた数
はどれでも割り切ることができないし,コレが合成数だと他に素数があり,素数ならそれが新たな素数になる.という方法で示せる.
しかし今のところ素数はランダムに出現するように見えるわけで,素数の出現頻度的なものを推定することが昔のトレンドだった.
リーマンさんは「与えられた数より小さい素数の個数について*1」という論文で近似式を表すためにまでの素数の個数を表す関数,素数計数関数
を定義した.ちなみにが素数のときは
を表す.これはリーマンさんが素数公式を導出する際フーリエ変換の派生(メリン変換という(本記事ではラプラス変換を用いるが))を用いているため,フーリエ変換の性質を表してある.
文字がなのはPrimeのPをギリシャ文字に置き換えたからかな?と思う.円周率とはなんら関係がない.
素数定理
時の流れは今から500年程前,オイラーさん等の怪物が蔓延ってた時代に
という近似が予想された.これが素数定理となるが,後々この素数定理は研究されて対数積分
を用いると
と更に精度が良い近似ができることがわかった.
勘の良い人は気づいたと思うが自体はで0になるのでで自体は極になる.
ここで
と解釈をする.この解釈はコーシーの主値と言って
と表記したりもする.
極を回避した積分
を補正対数積分といって普通の対数積分と定数しか変わらないのでまぁ近似としてはそんな悪くないんじゃないかな?
リーマンの素数公式
その素数定理を証明しようとリーマンさんは複素解析を駆使して素数の個数を定式化した.結果的には大問題に阻まれてできなかったけど,かなり大きく進展したのも間違いない.
それにはオイラーさんが導出した,ゼータ関数のオイラー積を用いている.
オイラー積
について
という公式を導出した.
これはのときに絶対収束するので和の順序交換ができるため,のときという前提でゼータ関数
からをかけたもの
を引くと
とゼータ関数から偶数をとっぱらったものだけが残る.
同様に
からをかけたもの
を引くと
とゼータ関数から2の倍数と3の倍数をとっぱらったものだけが残る.
これを全ての素数について適用すると
になるので
が得られる.
オイラー積に対数をつける
得られたオイラー積に対数をつけて計算を行う.
ここで()のテイラー展開
を用いると
になる.これを整理すると
と書き換えることができる.
素数計数関数の導入
得られた式
に対して
という関係を用いると,
と書き換えることができる.
この積分
は,積分開始が2,3,5,7,...といったように素数開始なので,素数計数関数を用いて
と書き直すことができる.
同様に
は素数の2乗,4,9,25,49,...を開始地点にしているので,『の平方根未満の素数の個数』と考え
と書き直すことができる.この操作を同様に続けていくと
となる.
これを整理して
新たな関数
を導入すると
と綺麗にまとまる.
メビウス反転公式の導入
メビウス関数
メビウス関数について,
(nが相異なるk個の素因数の積のとき)
(nが平方数で割り切れるとき)
という関数を考える.
この関数の特徴は,がの約数のときにと表記するとき
(のとき)
(のとき)
という特徴があり,の素因数を
とする.平方数で割り切れる時は0なので素因数は全て単体になっている.
の素因数が個の時,約数の素因数がならになり,全てにわたり足していく場合,素因数が個になるの個数は個の素因数の中から個選べばいいんだから個存在する.
つまりのとき,二項定理を使って
になり,のときは1になる.
メビウス反転公式
という式からについての式を表すことができて
になる.
これは
のにを代入してみると
になる.
これは総和をまとめて
とおく.するとはの約数になるので
と書き換えることができる.
とわけてやるとのときにしかにならず,その他は全て0になるので
になる.
逆の場合も同様に
になることがわかり,必要十分であることがわかった.
πからΠを求める
メビウス関数の扱い方もある程度わかってきたからそろそろを求めたい.
関数
を出したので,ここからの式にすると
になる.これもメビウス反転公式の導出と似た方法で確認できる.
逆ラプラス変換の導入
こうして新たな関数
を用いて綺麗にまとまった式
を
と変形し,,と置換すると,積分範囲はになるので
これはラプラス変換
の式と考えることができ,ラプラス逆変換
を用いると
とまとまり,と置換すると
と綺麗な式にまとめられる.
この置換により,ラプラス変換の仕様上という前提だったものが,という前提に置き換えられる.
ゼータ関数の因数分解の導入
ゼータ関数のテータ関数を用いた解析接続では
といった函数等式を得ることができた.
またゼータ関数は解析接続するとが1位の極になり,負の偶数が自明な零点になるので,未知数とを用いて
と因数分解できそうで,(ρは非自明な零点の集合とする*2 )ガンマ関数は
と因数分解できた.
ここでという関数を定義すると
とまとめることができる.
これでを代入したらが得られそうなので,ガンマ関数の性質より
は
と変形ができ,これからゼータ関数の特殊値より
が得られる.
次にに対数をつけて
微分を行う
こうしてと極限をとると
が得られる.
ここでガンマ関数の項 は,ガンマ関数
の対数微分
からを代入して
が得られる.
の対数微分
について,とすると,の部分分数分解
と,のを中心としたローラン展開
を用いて
これを整理して
最後にと極限をとると
が得られる.ちなみになのでが得られる.
これでようやく
と指数部が得られたので
が得られたが,指数部は長いので必要になるまではのまま
でいく.
が得られた.
ちなみに因数分解とは言ってるが,アダマール積といったほうがどちらかというと正しいように感じる.
逆ラプラス変換にゼータのアダマール積を代入
得られた関数についての逆ラプラス変換
に,さっき求めたゼータの因数分解
をぶち込んでやりたいが,このまま計算するとうまく収束しない.
そこで部分積分を行い
としたものを計算する.
これ
にのアダマール積
をぶちこむ.
これを
と変形していく.定数になる項を消去すると,この積分は4つの項
にわけることができる.
とりあえず の項は邪魔なので,ガンマ関数の因数分解形式から
と変形できることを利用して
と変形する.
積分をしていく(1)
積分するべき内容は
の4つになった.
最初の
については部分積分で
と計算する.
次に積分経路をからを通りぐるっと左側に半円を描いて戻っていくという経路
で積分を行うと,弧の部分の積分結果は0になるので留数定理から,はのとき留数は1なので
が得られる.
積分をしていく(2)
こうして計算する内容は
になったが,2~4個目の積分は
と考えることができ,でありという前提がある.
logの決定
ちなみにはを周期として周期関数になるためは多価関数になる.そこで1価関数にするため戻り値を限定させないといけない.
そこではで多価関数となるので,のときはについてで一区切りするようにする.
逆にのときはについてで一区切りするようにする.
そして多価関数なので基準となる出力値を決めないといけないので,のときをとることにする.
リーマンさんの工夫
ここで面白いなと思ったのが,リーマンさんはをで微分した結果が
になるので
を計算して後でで積分すればいいでしょ?というメソッドを用いている.
これは部分積分で
と変形すると
はのときの留数はなので,留数定理から
になる.
この結果はの実部が正負の場合分けを行い,実部が負の時は
正の時は
とすると,これをで積分してやれば,のとき
になり,のとき
になる.
次に積分定数の決定だが,についてのときと決定したことを踏まえてテイラー展開を用いて変形を行うと
になるので,と極限をとると
になることを利用する.
こうしてのとき,なので1とは関係無しに考えることができて
についてはとするとがわかるので,になる.
一方のときは
であり,なので1を回避することを考えないといけない.
この積分は0から1まで直進し,1をぐるっと回避してxまで到達する積分を考える.
こうして計算を行うが,こちらは上方向の回避をしたときとするならになり,下方向の回避をしたときとするならになる.このように経路を場合分けできるならばという前提もあるのでになる.
ちなみに上方向の回避をした場合,
になり,下方向の回避をした場合,
になる.
仕上げ
こうして
を計算する方法ができあがったのでやっていく.
最初は
について考えてみるが,の場合なので
になる.
あとは総和はで初項で公比の等比級数になるので
にとまとまる.
次は
について考えてみるが,
と変形すると
になり,なので
残りの項
は計算していくと
これは第一項は0になるし,第二項は留数定理からになる.
ここで
についてだが,1で上方向に回避するとなので,最終的には
になる.
最後に
について,非自明な解はに存在するのでそのまま計算ができ
になる.
ここで
と置換すると
が得られる.
こうしてようやく
と計算ができた.
リーマンの素数公式の完成
から4項が得られたので代入すると
が得られる.
ちなみにゼータ関数の函数等式からとで零点が対になっているので,
と書き直すこともできる.
そしてメビウス反転公式から得られた式
に代入を行いようやく
が得られる.長かった.
ちなみにこの手法では素数定理はリーマン予想が解決しないと証明できないが,別の手法で証明がされたらしい.
一時期リーマン予想が証明されたなんて噂があって,『RSA暗号終了するー』なんて言ってる人がいた.それはRSA暗号が素数を用いてるから今回の素数公式と結びつけて言ったんだろうなと思うけど,正直リーマン予想が解決してこの式が完成したとしてもRSA暗号は終了しないと思う.
プログラムを組んでみる後編は次の記事にて.
aryuaryuaryuryu.hatenablog.com