流れる空の中で数学を。

とある数学好きの「手作りすうがく」と「気ままな雑記」。

【リーマン予想】約数関数を計算してみた

約数関数

 自然数Nに対して、約数関数\sigma_x(N)は次のように定義される。

\sigma_x(N)=\sum_{d|N} d^x……①

 つまり、Nの全ての約数のx乗の総和である。詳しくは、約数関数 - Wikipediaを参照。\sigma_1(N)を特に、\sigma(N)と書く。

リーマン予想と約数関数

 wikiによると、この約数関数\sigma(N)が次の不等式を満たすとき、リーマン予想も真であるらしい。

\sigma (N) \lt e^{\gamma} N \log \log N \;  (N \gt 5040) ……②

ここで、\gammaオイラーの定数(オイラーの定数 - Wikipedia)である。*1
 そこで、具体的に大きなNに対して、上の不等式が成り立つかチェックしてみることにした。

数値計算で求めた約数関数

 Pythonで、約数関数\sigma(N)を計算したものが次の図である。青線が約数関数で、オレンジ色の線が②式の右辺の式である。まずは、N=1000までを見てみた。

f:id:FoxQ:20181229104234p:plain

不等式が成り立たないNがいくつかあるが、まだN \le 5040なので問題ない。
次に、N=5040までを見てみる。

f:id:FoxQ:20181229113059p:plain

N=5040ちょうどでは、不等式は成り立たないことがわかった。

次に、N=10000までを見てみた。

f:id:FoxQ:20181229104442p:plain

②の不等式が成り立っていることが確認できた。さらに、N=100000までを見てみる。

f:id:FoxQ:20181229104550p:plain

 結構きわどいところまで約数関数の値が大きくなっているところもあるが、やはり②の不等式は成り立っている。計算時間の都合上、今回はここまでで計算をやめた。今回計算した範囲では、リーマン予想の反証は得られなかった。

約数関数\sigma_x(N)

  最後におまけとして、約数関数\sigma_x(N)xを変えながら、プロットした図も調べてみた。これは、英語版wiki(Divisor function - Wikipedia)に乗っているものの再計算と追加計算になる。以下、N=250までとする。
 まずは、\sigma_0(N)から、

f:id:FoxQ:20181229105243p:plain

これは、約数の個数をカウントしたものになる。ところどころ、値が2になっているところが素数に対応している。\sigma_1(N)から\sigma_5(N)までを一気に見ていこう。

f:id:FoxQ:20181229105530p:plain

f:id:FoxQ:20181229105507p:plain

f:id:FoxQ:20181229105548p:plain

f:id:FoxQ:20181229105603p:plain

f:id:FoxQ:20181229105620p:plain

\sigma_x(N)xの値が大きくなるにつれ相対的な値のばらつきが小さくなっていくことがわかった。
 x=1のときのN \gt 5040での上限が、②式で与えられることを考えると、N^xになんらかの因子をかけたものが、\sigma_x(N)Nが十分大きいときの上限になると予想される。だが、具体的な式の形は今のところわからない。

*1:ちなみに、オイラーの定数は無理数かどうかすらよくわかっていない謎の多い数である。