目次
はじめに|レポート
8/22(日)桜井進のPython・UNIX・Math教室(応用コース)
毎月開催中Zoomオンラインセミナー、桜井進のPython・UNIX・Math教室(応用コース)、2021年のテーマは「Pythonで素数」です。
8月は「Pythonでバーゼルの問題」でした。
バーゼルの問題
バーゼルの問題とは、自然数を2乗した数(平方数)の逆数無限和がいくつかという問題です。
スイスのバーゼル大学にいたベルヌーイ兄弟が解けなかった難問です。弟子であるオイラーは10年以上の計算の末、解くことに成功しました。
1735年、28歳のオイラーは、答えが6分のπの2乗になるという驚きの結果を手にしました。
オイラーの計算にPythonとともに迫ります。
今回はjupyter notebookを使ってみましたが、連載第2回で紹介したグーグル・コラボラトリーでも同じことができます。
バーゼルの問題に登場する2つのシグマ(総和)の収束の速さを調べてみましょう。
ステップ1:バーゼルの問題は収束が遅い
バーゼルの問題の難しさは収束の遅さにあります。
203項たし算することでやっと1.64を超えます。手計算で収束値を見極めることは絶望的です。
ステップ2:オイラーの式は収束が速い
そこでオイラーはまずバーゼルの問題の式を変形することで収束を速くすることを考えました。そして導き出したのが次の式です。
バーゼルの問題の真値は1.64493…です。ステップ1の結果から1000項計算しても1.64までしかわかりません。
ところがオイラーの式を使えば、たった10項で1.6449まではじき出すことができます。20項で1.64493までわかるという驚きの速さです。
こうしてオイラーはバーゼルの問題の答えが1.64493…であることを突き止めました。
オイラーの驚くべき計算力
ここまでで十分にオイラーの実力の凄さがわかりますが、さらに驚かされるのが次のステップです。
なんと、オイラーは1.64493…という数値が6分のπの2乗であることを見抜いてしまうのです!
そこでπの値を1桁ずつ増やしたときにπ2/6の値がどのようになるかを計算してみます。
すると、3.14159のときに1.64493…となることがわかります。
それにしてもオイラーの頭の中ではどのような謎解きが行われたのでしょうか。信じられないことです。
なぜ答えにπが現れるのか
こうしてオイラーは最後の難関に取り組むことになります。
バーゼルの問題の収束値が6分のπの2乗であることを確信したオイラーは、なぜπが現れるのか、その仕組みの解明にとりかかりました。
1735年、28歳のオイラーはその証明に成功しました。
そこで活躍したのが三角関数sin xです。オイラーはsin xを和と積の2通りに変形することで、バーゼルの問題の答えが6分のπの2乗になることを証明してみせたのです。
ゼータ関数の発見
オイラーはバーゼルの問題の解決を通してゼータ関数にたどり着きました。
次回はゼータ関数にPythonで迫っていきます。
※今回のファイル(EulerBaselProblem20210822.ipynb)はグーグル・コラボラトリーかjupyter notebookで開いて使うことができます。