Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

円周率近似式を同じ土俵で競争させるには

$
0
0

ちょっとやってみたかったことをやってみようかなと思いまして、



この前、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






100001000000
101112111101
102223223423
103343333554
104454454877
1055565541099
106676666121110
107787777141313
108889888151515
1099109999181717
1010101110101110201919


とても収束が遅いグループです。
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












































111122324107
2122345472016
32434686102124
425467118143132
5366891310174240
64769111612224248
748710111913255254
859912142115296264
9610913162417327371
106111015182619358478
116121117202821379487
127131118223123429495
13714131923332546105104
14815152025362648105112
15916162227392853125119
16917162329423056115128
17918172529433259145136
181019182631473462136143
191020192833493666156151
201120203035523869167160
211122213137544073167168
221223223139574176177176
231124233340594378188183
241325243542624583198192
251326253743654686198198
261426263845674890208207
271527273947695093219216
281529284148725296229223
2916302941507454992210231
30163029445276561032310239
31163131445478571062410248
32173132465682591102511255
33173433485785611142611264
34183533485987631172611271
35183534506189651212712280
36193636526292671242812287
37193837546495681272912295
38203837556696701312912303
39203937566899721333013311
402040405869102741373113319
412141405971104761413113327
422242416072107781443314335
432243436174110781483314344
442344436376112811513314351
452345436577115831553514360
462446466680117841583614367
472447466881120871613615375
482548476983122881633715383
492548497085125901683815390
502649507286127921713716398
512651507388130941753916407
522652517590131961784016415
532752527691135971814117423
5427535376931371001844117431
5528555478951401011884218439
5629565480961421021924318447
5729575681981451041954418455
58305857831001471071994318463
59295857851021491082024519471
60305959861031521102054619479
61316060871051551122074719486
62316261881071581132124820495
63326261901081601162154820503
64316363911091621182195020511
65336464931121651192224920519
66346465931131661202265120526
67336665951151701232295221535
68356766961171721252325321543
69346868981191751262355322551
703569681001201781292395422559
713670701011211791302435522567
723670711021241831312445422575
733772711041251851332485623583
743873731051271881352535723591
753774731061281891382565823599
763875741081301931392595724607
773775751101321951412635924615
783976761111341971432666024622
794078771121362001452706125630
804079771131372031472736125638
814080781151392061482766226646
824181781171412081502796326655
834182781181422101512836426663
844282821201442131532866526671
854384831211462161552906626679
864384841221472181572936627687
874384851231492211592976727695
884486861251512231613006827703
894387871261532251633036827711
904588871271532281633066928719
914689891281562311673107029727
924690901311582331683137129735
934691911321592351703167229742
944792921341612381723207230751
954793931351632411743247330759
964893941361632421753267330761
974994951381662461773307530775
984896951391662471793347530782
995096971401682511813377631791
1004998971421712531833417731798

 

1着:ラマヌジャン
2着:高野喜久雄
3着:ガウス
 

インドの魔術師ラマヌジャンが圧倒的速度で逃げ切りました。
高野喜久雄やガウスが他のarctan系よりも有利になった要因は、arctan自体の項数が多かった事によるものと思われる。
arctan自体の項数が3項であるガウスとストマ―で、これだけの差が出るのも面白い事実です。


縦軸が正しい円周率の桁数、横軸が項数です。

グラフにすると、圧倒的なラマヌジャンの速度が解ります。
いずれも、多少の揺れはあるが、ほぼ直線、つまり等速運動と考えて良いですね。

マーダヴァや連分数型は、このレースでは遅い方ですが、第一レースに入れてしまうと、圧倒的な速度で逃げ切ってしまいます。


続いて、第三レースの紹介です。


【ガウス=ルジャンドルのアルゴリズム】
アドリアン=マリ・ルジャンドル(フランス・1752年9月18日~1833年1月10日)



算術幾何平均による漸化式での収束です。

参考までに、2nとラマヌジャンを入れました。
 

【第三レース】

n








2n




0017
13216
28424
319832
4411640
5843248
61716454
734512864
869425671
9139251278
102788102487
115582204895
12111714096104
13223488192112
144470116384119
158941032768128
1617882565536136
17357656131072143
18715318262144151
191430645524288160
2028612971048576168




ガウス=ルジャンドルの圧勝です。
あれだけ速いと言われたラマヌジャンを、平面に押しつぶしてしまう脅威の加速。
2nは、倍々になていくグラフ、ドラえもんのバイバインだと思ってください。
それをも上回る加速ですね。

今後、ガウス=ルジャンドルを上回るものが登場し、第三レースも楽しくなっていくのでしょうか。
それとも、第四レースが行われるのか。
どちらにしても楽しみですね。


総評

第一レースがy=log(x)のグラフ
第二レースがy=ax+bのグラフ
第三レースがy=axのグラフ
という圧倒的な次元の異なるグラフということがお解りいただけたでしょうか。

各項の計算量が多くなると、プログラミング的には遅くなるということはありますが、そこは無視して、何回反復させれば、10進数としてみてどれだけ正しい円周率の桁数が求まるかというところに重点を置いております。

振動する式において、2項を1項にまとめて、下から収束、上から収束、ということは、速度は倍になるということでもあります。
また、下から収束、上から収束を使って、算術幾何平均ということも出来るのでしょう。

コンピューターによる円周率の桁数の競争は、アルゴリズムの出来の良さだけではなく、コンピューター自身の性能の差や、ハードウェアを分散させるなどのアイディアによって、もともとの数式の持つポテンシャルが解りにくくなるというところでもあります。

このアルゴリズムを使って、このハードウェアで、何時間掛かって、何桁求めた、と言われても、掛かった時間の短さ、桁数の多さ、くらいしかでしか凄さが解りにくいということです。

同じ土俵で、どれだけの差が出るのかというのは、実際にプログラミングして自分のパソコンなりで性能差を比べないと実感出来なかったりする。

ただ、皆が皆が、プログラミング出来るのか、プログラミングに長けているか、ということではないので、性能差を比べるには同じ土俵におけるグラフが直感的に解りやすいということです。

但し、各式の持つ計算量、計算の難しさは、また別の話しですので、実際にプログラミングしてみて、ボトルネックになるところなどが解ったりもします。


ではでは


Viewing all articles
Browse latest Browse all 5376

Trending Articles