ver79証明の解説




ver79証明を完成させて6か月がたちました。今までの経験では証明完成後、1か月以内に自分で間違いを見つけました。しかし、今回は6か月たってもまだ間違いが見つかりません。・・・ということは、正しい証明である可能性が高まったように思います。

ここで、この証明の解説することにより、自分でもさらに再検討してみたいと考えています。

先日、私の友人にこの「リーマン予想証明」の話をしたところ、関心を持ってくれました。そこで、私のHPを紹介したのですが、彼曰く「何のことかさっぱりわからない」とのことでした。これには少しショックを受けました。数学の専門家ではないにしても、ある程度の理解力のある人が「さっぱりわからない」では困ります。私の書き方が悪いのでしょうか。説明が足りないのでしょうか。大いに反省するとともに、分かりやすい解説を付け加えることにしました。

普通の人は「リーマン」と聞くと「リーマンショック」を思いつきます。数学者のベルンハルト・リーマンを知っているのは数学者だけかもしれません。また、ゼータ関数も知らない人が多いと思います。かく言う私も、自分なりの数学研究を始めた当初、ゼータ関数という名称を知りませんでした。そしてある時、私が研究している実数の級数がゼータ関数をいう名前であることをある本を読んでいて教えられました。その本ではリーマン予想証明も解説されていたように思いますが、どこか遠い世界の話のような気持ちがしました。なぜなら、私は実数の範囲で研究していたので、複素数にはまったく関心がなかったからです。しかし、ある時、リーマン証明にトライしようかなという気持ちになりました。その理由は、私がすでに発見していた k(s) という計算式がリーマン証明に密接に関係していることが分かったからです。

k(s)を発見したのは、ゼータ関数の a=1.5 の値をどうやって速やかに収束させるかを研究した結果です。a=2 のときは 1.6449... とある程度速やかに答えが出てきます。しかし、a=1.5 となると答えを出すのに時間がかかります。また、a=1.1 になるといくら時間をかけてもなかなか収束してくれません。そこで何とか速く収束させる方法はないかと工夫した結果 k(s) という式が見つかりました。実数の範囲で研究していたので、当然この k(s) は k(x) という実数式で見つけたわけです。すぐに収束してくれるので、とても便利だと喜んだわけです。

k(x) を発見した当時、a < 1 を計算するなど考えもしませんでしたし、ましてや複素数などはまったく関心ありませんでした。しかし、ある時、偶然、k(x) で計算するとマイナスでも収束することがわかり、オイラーが解析接続で答えを出した値と同じ値になることを発見し、がぜんリーマン証明に関心が湧いてきました。もしかすると k(x)を複素数に拡張すればリーマン零点を計算できるのではないか? そう思いついてからようやく複素数の勉強を始めたというわけです。複素数はむかし高校時代に習っただけですから、もうすっかり忘れていました。1/2^s といっても、どう計算してよいのかまったくわかりませんでした。しかし、オイラーの公式を参考に自分なりに計算方法を工夫して計算した結果が「リーマン零点の求め方」になりました。




■      ゼータ関数とは? リーマン証明とは?

k(s) はゼータ関数を解析接続した式である。

ここで改めてゼータ関数とリーマン予想(仮説)証明について解説します。

せーた関数とは、実数で説明すると、1 + 1/2^x + 1/3^x + 1/4^x + .... と続く関数のことです。つまり、Σ_[n=1,∞}1/n^x という関数です。高校の数学で登場するのでご存じの方も多いはずです。x=2 のときの答えが 1 + 1/2^2 + 1/3^2 + 1/4^2 + .... =1.6449... = pi^2/6 であることは良く知られています。x=4 のときが pi^4/90 となります。

この関数は 1 < x で定義されていて、x=1 では無限大、それ以下では計算不能になります。しかし、その計算不能な領域でも解析接続というやり方によって計算可能になるというのが従来の説明です。しかし、私の発見した k(s) という関数を使うと解析接続を使うことなく結果を求めることが可能になります。つまり、k(s) とはゼータ関数を解析接続したあとに求められる式であるということです。

では、k(s) とはゼータ関数ではないのか? という問いが生まれますが、それについては、証明とは別の問題になるのでここでは取り上げません。解析接続した後の値をゼータ関数値と呼ぶかどうかという定義問題ですから、証明そのものとは別問題です。また、k(s) が解析接続後の式であることは計算結果を見れば一目瞭然ですから、議論の余地はありません。そういうわけで、このhirokuroリーマン証明では k(s) を使って証明を進めているわけです。

k(s) = lim_[n→∞] { zt(s,n) + ber(s,n) } という式の計算方法については ver20 の第1章「解説」を参照してください。

とは言うものの、面倒だから開けない人もいるでしょうから、少しだけ解説しておきます。

zt(s,n) がいわゆるゼータ関数です。もっとも、n は有限なので zt(s,n) = 1 + 1/2^s + 1/3^s + . . . + 1/n^s となります。ber(s,n) はやや複雑な式なのですが、 ber(s,n) = Σ_[r=0,∞] B(r)*(s-2+r)!/r!/(s-1)!/n^(s-1)/n^r という、r についての無限式になっています。ベルヌーイ数 B(r) もあるし、s! という複素数階乗(ガンマー関数)もあるし、解説しないとわからない人もいるとは思いますが、順番に考えていくと難しいところはありません。

Σを展開すると   B(0)/0!/(s-1)/n^(s-1) + B(1)/1!/n^s + B(2)s/2!/n^(s+1) + B(4)(s+2)(s+1)s/4!/(n^(s+3) + .... となります。

ベルヌーイ数については数学をやっている人は誰でも知っているでしょうから、解説はいらないとは思いますが、もし知らない人がいるなら、「私の発見した数学公式」のベルヌーイ数の解説を参照してください。 B(0)=1, B(1)=-1/2, B(2)=1/6, B(4)=-1/30, B(6)=1/42, B(8)=-1/30, B(10)=5/66, ・・・ と並ぶ数列です。奇数のときは B(1) を除いて、すべて0となります。

階乗の複素数は、ガンマー関数に変換して考えるのではなく、k(s) ではそのまま計算します。つまり、(s-2+r)!/r!/(s-1)! は r が決まると分母が消えて、複素数の有限式になります。ちなみに、k(s)の計算では使いませんが、階乗の複素数を計算したければ階乗の公式を使います。n! = (n/e)^n * √(2*pi*n) * e^ { B(2)/2n + B(4)/12n^3 + B(6)/30n^5 + B(8)/56n^7 .... }という階乗の公式があるので、この n を s に変更すれば良いということです。ただ、これだと収束に時間がかかる場合は、 s! = k(1-s)*s*(2*pi)^s / { k(s)*2cos(pi*s/2) } という式を使うこともできます。どちらにせよ、ガンマー関数を使う必要はありません。

k(s) の計算は面倒ですから、プログラム化してあります。「Javaによる長桁計算」HPにプログラムを載せているので、それを使うと複素数でも一瞬にして答えが出ます。



さて、リーマン予想(仮説)証明とは、英語で Riemann hypothesis と言うので、私は「リーマン仮説」と訳すことにしました。このリーマン仮説とは、解析接続したゼータ関数を複素数に拡張したとき、つまり k(a+b*i) において、零点が a=0.5 上に並ぶ現象を証明するものです。零点は b=0 の横軸(実数)上にも並んでいるので、それを自明の零点( trivial zero point )と呼びます。それに対して、a=0.5 上に縦に並ぶ零点のことを 非自明の零点( non trivial zero point ) と呼びます。この「並ぶ」というのは「計算上並んでいる」ということで、すべての点を計算することは不可能です。それで、計算ではなく、証明としてすべての零点が並ぶこと、それ以外に非自明な零点がないことを証明することがリーマン仮説を証明することになります。

「すべて a=0.5 上にある」ことを証明するために背理法を使います。まず、a=0.5 上にない零点があったとします。その零点のことを「仮定上の零点」と呼びます。「もし、仮定上の零点が存在するとどういう矛盾が生じるか」を指摘することを目標にします。

この仮定上の零点がもしあるとすると、最初の条件は「a=0.5軸から等距離のところに左右並んでペアで存在する」 ということです。これについてほ証明は ver20 第2部(2の14)でおこなっています。ver79 はその続きですが、バージョン番号がかなり離れています。20以降でver79より前は失敗した証明です。失敗とはいうものの、それなりの意義はあるのですが、ver79 の前提になっているものはありません。

あとは証明の本体を見ていただきたいのですが、最初のところを少しだけ概説しておきます。

ver79証明のアイデアの基本は k(s) を極形式で考えることです。k(s)=a+b*i とすると r=√(a^2+b^2)、 θ=atn(b/a) となります。逆に説明すると a = r*cosθ , b = r*sinθ です。このとき、θを答えとする関数を考えます。これを k_th(s) と名付けます。sは複素数ですが、答えはθ、つまり角度になります。

k_th(s) の計算は k(s) から簡単に計算することができます。この関数のθ=0 のところが角度0線図となります。この図が k(s) の虚零線図とまったく一致します。sinθ=0 なので一致するのは当然です。θ=pi/2 のところが角度pi/2線図で、cosθ=0 ですから k(s)の実零線図と一致します。

ですから、k(s)のリーマン零点の場所は k_th(s)の0線、pi/2線の交点でもあるので、零点とはならず、特異点となります。もし、k(s)に仮定上の零点があるなら、k_th(s)では同じ場所が特異点になります。そこで、その点を「仮定上の特異点」と呼ぶことにします。k(s)に仮定上の零点が存在するなら、k_th(s)にも仮定上の特異点が存在することになります。そして、その特異点がもしあるとするなら、 k(s)同様、a=0.5軸から等距離のところに横に並んで存在しなければなりません。




■      k_th(s) を縦方向に微分する


k_th_dif_b_a-5_b0 の図 k_th(s)を微分することから ver79証明 が始まります。k_th(s)は正則なので、あらゆる方向から微分可能です。縦方向から微分した式を k_th_dif_b(s) と表記します。この零線図を再掲しておきます。

右図は b=30までの零線図です。k_th(s)の特異点(リーマン零点)の場所をk_th_dif_b(s)の零線が通っています。特異点の微分なので、この点も特異点となっています。

さて、k_th(s)に仮定上の特異点があるとするなら、k_th_dif_b(s)にも仮定上の特異点が存在することになります。その点は a=0.5 の左右に並んでペアで存在しなければなりません。そして、この点を微分零線が通ることになります。すると、a=0.5軸より左にかならず微分零線が発生しなければなりません。

そこで、もしa=0.5軸より左に微分零線が発生しないことを証明できれば仮定上の特異点は存在しないことになります。ただし、b=5 あたりにすでに零線は発生しています。ですから、b > 10 において、特異点にからむ零線がa=0.5軸より左に存在しないことを証明することになります。これにトライしたのが ver79証明ということです。







表紙に戻る

ご感想、ご質問、その他のご意見は、Mailのアドレス(hirokuro303@gmail.com)へお願いします。
メール アイコン


   


inserted by FC2 system