ちょっとやってみたかったことをやってみようかなと思いまして、
この前、3月14日の記事でも書いたんだけど、いろいろな数学者が円周率を求めようと様々な近似式を編み出してきた。
その時代では最速な方法も、時が経つに連れ、もっと収束が速い方法が登場してくる。
速い、遅いという表現では、同じくらいの速度のもので比べてどっちが速いとか遅いということは、あまり語られて来なかったと思う。
まぁ、前置きはこれくらいにして、偉大な数学者たちと近似式を紹介する。
それでは、第一レースの紹介です。
【ライプニッツ級数】
ゴットフリート・ヴィルヘルム・ライプニッツ(ドイツ・1646年7月1日~1716年11月14日)
+と-が交互に現れることからも解るが、振動しながら収束していく。
そこで、
このように2項を()でまとめて1項とすると、各項は正で、+だけの式となり、単調増加関数となり、下から収束させることも出来る。
また、
このように2項を()でまとめて1項にすると、各項は正で、-だけとなり、単調減少関数となり、上から収束させることも出来る。
ライプニッツからの出馬は、とりあえずこれくらいにしておこう。
続いて、
【ウォリス積】
ジョン・ウォリス(イングランド・1616年11月23日~1703年10月28日)
今度は積です。
%演算子は、前者を後者で割った余りという演算です。
これも、1未満と1超過を交互に掛けていることから、振動しながら収束します。
というわけで、
このように2項を()でまとめて1項とすると、分母の方が分子よりも1小さいので、1超過を掛け続けることになり、単調増加関数となり、下から収束する。
また、
このように2項を()でまとめて1項とすると、分母の方が分子よりも1大きいので、1未満を掛け続けることになり、単調減少関数となり、上から収束する。
ウォリスの出馬もこれくらいにしておきます。
これらの数式をプログラミングして、どのくらいの速度で収束しているのかを比べてみようというのが、今回の企画の意図です。
これら6式と、内接正多角形の辺、内接する正多角形の面積、概説する正多角形の辺・面積の3式を加えた9式で競争させます。
【第一レース】
10n | ラ イ プ ニ ッ ツ | ラ イ プ ニ ッ ツ ・ 下 | ラ イ プ ニ ッ ツ ・ 上 | ウ ォ リ ス | ウ ォ リ ス ・ 下 | ウ ォ リ ス ・ 上 | 内 接 正 10n 角 形 ・ 辺 | 内 接 正 10n 角 形 ・ 面 積 | 外 接 正 10n 角 形 ・ 辺 ・ 面 積 |
---|---|---|---|---|---|---|---|---|---|
100 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
101 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 0 | 1 |
102 | 2 | 2 | 3 | 2 | 2 | 3 | 4 | 2 | 3 |
103 | 3 | 4 | 3 | 3 | 3 | 3 | 5 | 5 | 4 |
104 | 4 | 5 | 4 | 4 | 5 | 4 | 8 | 7 | 7 |
105 | 5 | 5 | 6 | 5 | 5 | 4 | 10 | 9 | 9 |
106 | 6 | 7 | 6 | 6 | 6 | 6 | 12 | 11 | 10 |
107 | 7 | 8 | 7 | 7 | 7 | 7 | 14 | 13 | 13 |
108 | 8 | 8 | 9 | 8 | 8 | 8 | 15 | 15 | 15 |
109 | 9 | 10 | 9 | 9 | 9 | 9 | 18 | 17 | 17 |
1010 | 10 | 11 | 10 | 10 | 11 | 10 | 20 | 19 | 19 |
とても収束が遅いグループです。
10n項まで求めると、n桁正しい円周率が求まるというイメージです。
参考に内接・外接する正10n角形の辺の長さや面積から円周率を求めた場合と見比べてみると解りますが、これらは三角関数の精度がそれだけ必要になりますので、参考ということです。
縦軸が正しい円周率の桁数、横軸は項数ですが、10の冪乗であることを注意。
ライプニッツ級数も、ウォリス積も、それほど速度に違いはありませんでした。
敷いて言えば、下から収束させるほうが収束が多少速いように思えますが、そもそもが遅いので、挟み撃ちするとか別の方法も考えられますね。
続いて、第二レースの紹介です。
【マーダヴァ】
サンガマグラーマのマーダヴァ(インド・1340年~1425年)
ライプニッツ級数を発見したとも言われているが、今回は別の式です。
この時代にarctanですから凄いです。
これも振動するので、下から収束と上から収束の出馬としておきます。
ここからは、arctanを使った式です。
【マチンの公式(1706年)】
ジョン・マチン(英・1680年頃~1751年6月9日)
【オイラーによる公式(1748年)】
レオンハルト・オイラー(スイス・1707年4月15日~1783年9月18日)
【ガウスによる公式(1863年)】
ヨハン・カール・フリードリヒ・ガウス(ドイツ・1777年4月30日~1855年2月23日)
【ストマ―による公式(1896年)】
フレドリック・カール・ミュラーツ・ストマー(ノルウェー・1874年9月3日~1957年8月13日)
【高野喜久雄による公式(1982年)】
高野喜久雄(日本・1927年11月20日~2006年5月1日)
arctan系はこれくらいにしておきます。
続いて、連分数を2つ。
【冪乗型連分数】
ウイリアム・ブラウンカー(イングランド・1620年頃~1684年4月5日)
どこで区切るかは色々有るかとは思いますが、
赤文字の部分を初項としてπを導くことにします。
4/π=1+1/3=4/3
π=3を初項とします。
【階乗型連分数】
発見者不明
どこで区切るかは色々あるかとは思いますが、
赤文字の部分を初項としてπを導くことにします。
π/2=0!+1!/3=1+1/3=4/3
π=8/3を初項とします。
連分数はこの2つとします。
【ラマヌジャンによる級数】
シュリニヴァーサ・ラマヌジャン(インド・1887年12月22日~1920年4月26日)
まったく新しい方法です。
モジュラー関数という考え方です。
【第二レース】
n | マ ー ダ ヴ ァ | マ ー ダ ヴ ァ ・ 下 | マ ー ダ ヴ ァ ・ 上 | マ チ ン | オ イ ラ ー | ガ ウ ス | ス ト マ ー | 高 野 喜 久 雄 | 冪 乗 型 連 分 数 | 階 乗 型 連 分 数 | ラ マ ヌ ジ ャ ン |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 2 | 2 | 3 | 2 | 4 | 1 | 0 | 7 |
2 | 1 | 2 | 2 | 3 | 4 | 5 | 4 | 7 | 2 | 0 | 16 |
3 | 2 | 4 | 3 | 4 | 6 | 8 | 6 | 10 | 2 | 1 | 24 |
4 | 2 | 5 | 4 | 6 | 7 | 11 | 8 | 14 | 3 | 1 | 32 |
5 | 3 | 6 | 6 | 8 | 9 | 13 | 10 | 17 | 4 | 2 | 40 |
6 | 4 | 7 | 6 | 9 | 11 | 16 | 12 | 22 | 4 | 2 | 48 |
7 | 4 | 8 | 7 | 10 | 11 | 19 | 13 | 25 | 5 | 2 | 54 |
8 | 5 | 9 | 9 | 12 | 14 | 21 | 15 | 29 | 6 | 2 | 64 |
9 | 6 | 10 | 9 | 13 | 16 | 24 | 17 | 32 | 7 | 3 | 71 |
10 | 6 | 11 | 10 | 15 | 18 | 26 | 19 | 35 | 8 | 4 | 78 |
11 | 6 | 12 | 11 | 17 | 20 | 28 | 21 | 37 | 9 | 4 | 87 |
12 | 7 | 13 | 11 | 18 | 22 | 31 | 23 | 42 | 9 | 4 | 95 |
13 | 7 | 14 | 13 | 19 | 23 | 33 | 25 | 46 | 10 | 5 | 104 |
14 | 8 | 15 | 15 | 20 | 25 | 36 | 26 | 48 | 10 | 5 | 112 |
15 | 9 | 16 | 16 | 22 | 27 | 39 | 28 | 53 | 12 | 5 | 119 |
16 | 9 | 17 | 16 | 23 | 29 | 42 | 30 | 56 | 11 | 5 | 128 |
17 | 9 | 18 | 17 | 25 | 29 | 43 | 32 | 59 | 14 | 5 | 136 |
18 | 10 | 19 | 18 | 26 | 31 | 47 | 34 | 62 | 13 | 6 | 143 |
19 | 10 | 20 | 19 | 28 | 33 | 49 | 36 | 66 | 15 | 6 | 151 |
20 | 11 | 20 | 20 | 30 | 35 | 52 | 38 | 69 | 16 | 7 | 160 |
21 | 11 | 22 | 21 | 31 | 37 | 54 | 40 | 73 | 16 | 7 | 168 |
22 | 12 | 23 | 22 | 31 | 39 | 57 | 41 | 76 | 17 | 7 | 176 |
23 | 11 | 24 | 23 | 33 | 40 | 59 | 43 | 78 | 18 | 8 | 183 |
24 | 13 | 25 | 24 | 35 | 42 | 62 | 45 | 83 | 19 | 8 | 192 |
25 | 13 | 26 | 25 | 37 | 43 | 65 | 46 | 86 | 19 | 8 | 198 |
26 | 14 | 26 | 26 | 38 | 45 | 67 | 48 | 90 | 20 | 8 | 207 |
27 | 15 | 27 | 27 | 39 | 47 | 69 | 50 | 93 | 21 | 9 | 216 |
28 | 15 | 29 | 28 | 41 | 48 | 72 | 52 | 96 | 22 | 9 | 223 |
29 | 16 | 30 | 29 | 41 | 50 | 74 | 54 | 99 | 22 | 10 | 231 |
30 | 16 | 30 | 29 | 44 | 52 | 76 | 56 | 103 | 23 | 10 | 239 |
31 | 16 | 31 | 31 | 44 | 54 | 78 | 57 | 106 | 24 | 10 | 248 |
32 | 17 | 31 | 32 | 46 | 56 | 82 | 59 | 110 | 25 | 11 | 255 |
33 | 17 | 34 | 33 | 48 | 57 | 85 | 61 | 114 | 26 | 11 | 264 |
34 | 18 | 35 | 33 | 48 | 59 | 87 | 63 | 117 | 26 | 11 | 271 |
35 | 18 | 35 | 34 | 50 | 61 | 89 | 65 | 121 | 27 | 12 | 280 |
36 | 19 | 36 | 36 | 52 | 62 | 92 | 67 | 124 | 28 | 12 | 287 |
37 | 19 | 38 | 37 | 54 | 64 | 95 | 68 | 127 | 29 | 12 | 295 |
38 | 20 | 38 | 37 | 55 | 66 | 96 | 70 | 131 | 29 | 12 | 303 |
39 | 20 | 39 | 37 | 56 | 68 | 99 | 72 | 133 | 30 | 13 | 311 |
40 | 20 | 40 | 40 | 58 | 69 | 102 | 74 | 137 | 31 | 13 | 319 |
41 | 21 | 41 | 40 | 59 | 71 | 104 | 76 | 141 | 31 | 13 | 327 |
42 | 22 | 42 | 41 | 60 | 72 | 107 | 78 | 144 | 33 | 14 | 335 |
43 | 22 | 43 | 43 | 61 | 74 | 110 | 78 | 148 | 33 | 14 | 344 |
44 | 23 | 44 | 43 | 63 | 76 | 112 | 81 | 151 | 33 | 14 | 351 |
45 | 23 | 45 | 43 | 65 | 77 | 115 | 83 | 155 | 35 | 14 | 360 |
46 | 24 | 46 | 46 | 66 | 80 | 117 | 84 | 158 | 36 | 14 | 367 |
47 | 24 | 47 | 46 | 68 | 81 | 120 | 87 | 161 | 36 | 15 | 375 |
48 | 25 | 48 | 47 | 69 | 83 | 122 | 88 | 163 | 37 | 15 | 383 |
49 | 25 | 48 | 49 | 70 | 85 | 125 | 90 | 168 | 38 | 15 | 390 |
50 | 26 | 49 | 50 | 72 | 86 | 127 | 92 | 171 | 37 | 16 | 398 |
51 | 26 | 51 | 50 | 73 | 88 | 130 | 94 | 175 | 39 | 16 | 407 |
52 | 26 | 52 | 51 | 75 | 90 | 131 | 96 | 178 | 40 | 16 | 415 |
53 | 27 | 52 | 52 | 76 | 91 | 135 | 97 | 181 | 41 | 17 | 423 |
54 | 27 | 53 | 53 | 76 | 93 | 137 | 100 | 184 | 41 | 17 | 431 |
55 | 28 | 55 | 54 | 78 | 95 | 140 | 101 | 188 | 42 | 18 | 439 |
56 | 29 | 56 | 54 | 80 | 96 | 142 | 102 | 192 | 43 | 18 | 447 |
57 | 29 | 57 | 56 | 81 | 98 | 145 | 104 | 195 | 44 | 18 | 455 |
58 | 30 | 58 | 57 | 83 | 100 | 147 | 107 | 199 | 43 | 18 | 463 |
59 | 29 | 58 | 57 | 85 | 102 | 149 | 108 | 202 | 45 | 19 | 471 |
60 | 30 | 59 | 59 | 86 | 103 | 152 | 110 | 205 | 46 | 19 | 479 |
61 | 31 | 60 | 60 | 87 | 105 | 155 | 112 | 207 | 47 | 19 | 486 |
62 | 31 | 62 | 61 | 88 | 107 | 158 | 113 | 212 | 48 | 20 | 495 |
63 | 32 | 62 | 61 | 90 | 108 | 160 | 116 | 215 | 48 | 20 | 503 |
64 | 31 | 63 | 63 | 91 | 109 | 162 | 118 | 219 | 50 | 20 | 511 |
65 | 33 | 64 | 64 | 93 | 112 | 165 | 119 | 222 | 49 | 20 | 519 |
66 | 34 | 64 | 65 | 93 | 113 | 166 | 120 | 226 | 51 | 20 | 526 |
67 | 33 | 66 | 65 | 95 | 115 | 170 | 123 | 229 | 52 | 21 | 535 |
68 | 35 | 67 | 66 | 96 | 117 | 172 | 125 | 232 | 53 | 21 | 543 |
69 | 34 | 68 | 68 | 98 | 119 | 175 | 126 | 235 | 53 | 22 | 551 |
70 | 35 | 69 | 68 | 100 | 120 | 178 | 129 | 239 | 54 | 22 | 559 |
71 | 36 | 70 | 70 | 101 | 121 | 179 | 130 | 243 | 55 | 22 | 567 |
72 | 36 | 70 | 71 | 102 | 124 | 183 | 131 | 244 | 54 | 22 | 575 |
73 | 37 | 72 | 71 | 104 | 125 | 185 | 133 | 248 | 56 | 23 | 583 |
74 | 38 | 73 | 73 | 105 | 127 | 188 | 135 | 253 | 57 | 23 | 591 |
75 | 37 | 74 | 73 | 106 | 128 | 189 | 138 | 256 | 58 | 23 | 599 |
76 | 38 | 75 | 74 | 108 | 130 | 193 | 139 | 259 | 57 | 24 | 607 |
77 | 37 | 75 | 75 | 110 | 132 | 195 | 141 | 263 | 59 | 24 | 615 |
78 | 39 | 76 | 76 | 111 | 134 | 197 | 143 | 266 | 60 | 24 | 622 |
79 | 40 | 78 | 77 | 112 | 136 | 200 | 145 | 270 | 61 | 25 | 630 |
80 | 40 | 79 | 77 | 113 | 137 | 203 | 147 | 273 | 61 | 25 | 638 |
81 | 40 | 80 | 78 | 115 | 139 | 206 | 148 | 276 | 62 | 26 | 646 |
82 | 41 | 81 | 78 | 117 | 141 | 208 | 150 | 279 | 63 | 26 | 655 |
83 | 41 | 82 | 78 | 118 | 142 | 210 | 151 | 283 | 64 | 26 | 663 |
84 | 42 | 82 | 82 | 120 | 144 | 213 | 153 | 286 | 65 | 26 | 671 |
85 | 43 | 84 | 83 | 121 | 146 | 216 | 155 | 290 | 66 | 26 | 679 |
86 | 43 | 84 | 84 | 122 | 147 | 218 | 157 | 293 | 66 | 27 | 687 |
87 | 43 | 84 | 85 | 123 | 149 | 221 | 159 | 297 | 67 | 27 | 695 |
88 | 44 | 86 | 86 | 125 | 151 | 223 | 161 | 300 | 68 | 27 | 703 |
89 | 43 | 87 | 87 | 126 | 153 | 225 | 163 | 303 | 68 | 27 | 711 |
90 | 45 | 88 | 87 | 127 | 153 | 228 | 163 | 306 | 69 | 28 | 719 |
91 | 46 | 89 | 89 | 128 | 156 | 231 | 167 | 310 | 70 | 29 | 727 |
92 | 46 | 90 | 90 | 131 | 158 | 233 | 168 | 313 | 71 | 29 | 735 |
93 | 46 | 91 | 91 | 132 | 159 | 235 | 170 | 316 | 72 | 29 | 742 |
94 | 47 | 92 | 92 | 134 | 161 | 238 | 172 | 320 | 72 | 30 | 751 |
95 | 47 | 93 | 93 | 135 | 163 | 241 | 174 | 324 | 73 | 30 | 759 |
96 | 48 | 93 | 94 | 136 | 163 | 242 | 175 | 326 | 73 | 30 | 761 |
97 | 49 | 94 | 95 | 138 | 166 | 246 | 177 | 330 | 75 | 30 | 775 |
98 | 48 | 96 | 95 | 139 | 166 | 247 | 179 | 334 | 75 | 30 | 782 |
99 | 50 | 96 | 97 | 140 | 168 | 251 | 181 | 337 | 76 | 31 | 791 |
100 | 49 | 98 | 97 | 142 | 171 | 253 | 183 | 341 | 77 | 31 | 798 |
1着:ラマヌジャン
2着:高野喜久雄
3着:ガウス
インドの魔術師ラマヌジャンが圧倒的速度で逃げ切りました。
高野喜久雄やガウスが他のarctan系よりも有利になった要因は、arctan自体の項数が多かった事によるものと思われる。
arctan自体の項数が3項であるガウスとストマ―で、これだけの差が出るのも面白い事実です。
縦軸が正しい円周率の桁数、横軸が項数です。
グラフにすると、圧倒的なラマヌジャンの速度が解ります。
いずれも、多少の揺れはあるが、ほぼ直線、つまり等速運動と考えて良いですね。
マーダヴァや連分数型は、このレースでは遅い方ですが、第一レースに入れてしまうと、圧倒的な速度で逃げ切ってしまいます。
続いて、第三レースの紹介です。
【ガウス=ルジャンドルのアルゴリズム】
アドリアン=マリ・ルジャンドル(フランス・1752年9月18日~1833年1月10日)
算術幾何平均による漸化式での収束です。
参考までに、2nとラマヌジャンを入れました。
【第三レース】
n | ガ ウ ス = ル ジ ャ ン ド ル | 2n | ラ マ ヌ ジ ャ ン |
---|---|---|---|
0 | 0 | 1 | 7 |
1 | 3 | 2 | 16 |
2 | 8 | 4 | 24 |
3 | 19 | 8 | 32 |
4 | 41 | 16 | 40 |
5 | 84 | 32 | 48 |
6 | 171 | 64 | 54 |
7 | 345 | 128 | 64 |
8 | 694 | 256 | 71 |
9 | 1392 | 512 | 78 |
10 | 2788 | 1024 | 87 |
11 | 5582 | 2048 | 95 |
12 | 11171 | 4096 | 104 |
13 | 22348 | 8192 | 112 |
14 | 44701 | 16384 | 119 |
15 | 89410 | 32768 | 128 |
16 | 178825 | 65536 | 136 |
17 | 357656 | 131072 | 143 |
18 | 715318 | 262144 | 151 |
19 | 1430645 | 524288 | 160 |
20 | 2861297 | 1048576 | 168 |
ガウス=ルジャンドルの圧勝です。
あれだけ速いと言われたラマヌジャンを、平面に押しつぶしてしまう脅威の加速。
2nは、倍々になていくグラフ、ドラえもんのバイバインだと思ってください。
それをも上回る加速ですね。
今後、ガウス=ルジャンドルを上回るものが登場し、第三レースも楽しくなっていくのでしょうか。
それとも、第四レースが行われるのか。
どちらにしても楽しみですね。
総評
第一レースがy=log(x)のグラフ
第二レースがy=ax+bのグラフ
第三レースがy=axのグラフ
という圧倒的な次元の異なるグラフということがお解りいただけたでしょうか。
各項の計算量が多くなると、プログラミング的には遅くなるということはありますが、そこは無視して、何回反復させれば、10進数としてみてどれだけ正しい円周率の桁数が求まるかというところに重点を置いております。
振動する式において、2項を1項にまとめて、下から収束、上から収束、ということは、速度は倍になるということでもあります。
また、下から収束、上から収束を使って、算術幾何平均ということも出来るのでしょう。
コンピューターによる円周率の桁数の競争は、アルゴリズムの出来の良さだけではなく、コンピューター自身の性能の差や、ハードウェアを分散させるなどのアイディアによって、もともとの数式の持つポテンシャルが解りにくくなるというところでもあります。
このアルゴリズムを使って、このハードウェアで、何時間掛かって、何桁求めた、と言われても、掛かった時間の短さ、桁数の多さ、くらいしかでしか凄さが解りにくいということです。
同じ土俵で、どれだけの差が出るのかというのは、実際にプログラミングして自分のパソコンなりで性能差を比べないと実感出来なかったりする。
ただ、皆が皆が、プログラミング出来るのか、プログラミングに長けているか、ということではないので、性能差を比べるには同じ土俵におけるグラフが直感的に解りやすいということです。
但し、各式の持つ計算量、計算の難しさは、また別の話しですので、実際にプログラミングしてみて、ボトルネックになるところなどが解ったりもします。
ではでは