理系の若者が思ったことを書くブログです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
前回の日記では、円周率に収束する漸化式を考えました。
詳細は、円周率について-アルキメデスの方法を考えるを参考にしてください
この漸化式をアルゴリズムにしてみますと、非常に少ない量のプログラミングソースコードで高い精度の円周率を得ることが可能です。正25165824角形を用いて円周率を計算するプログラムを下記に示します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub 円周率計算()
Dim P1, Q1 As Double
Dim P2, Q2 As Double
Dim i, j, k As Long
P1 = 3
Q1 = 2 * 3 ^ 0.5
j = 6
Cells(1, 1).Value = "i"
Cells(1, 2).Value = "P(n)"
Cells(1, 3).Value = "Q(n)"
Cells(2, 1).Value = j
Cells(2, 2).Value = P1
Cells(2, 3).Value = Q1
For i = 1 To 22
k = j * 2
Q2 = 2 * P1 * Q1 / (P1 + Q1)
P2 = (P1 * Q2) ^ 0.5
Cells(2 + i, 1).Value = k
Cells(2 + i, 2).Value = P2
Cells(2 + i, 3).Value = Q2
P1 = P2
Q1 = Q2
j = k
Next i
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
この精度で計算しますと、
P(25165824)<π<Q(25165824)
3.14159265358978<π<3.14159265358981
を導くことができます。
まさにアルキメデスの考え方が、いかに偉大なものか思い知らされますよ。
※余談ですが、アルキメデスの96角形の計算結果の場合ですと
3.14103195089051<π<3.14271459964537
となります。紀元前の人間が円周率を3.14と定めたのがすごいと思うのです。
詳細は、円周率について-アルキメデスの方法を考えるを参考にしてください
この漸化式をアルゴリズムにしてみますと、非常に少ない量のプログラミングソースコードで高い精度の円周率を得ることが可能です。正25165824角形を用いて円周率を計算するプログラムを下記に示します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub 円周率計算()
Dim P1, Q1 As Double
Dim P2, Q2 As Double
Dim i, j, k As Long
P1 = 3
Q1 = 2 * 3 ^ 0.5
j = 6
Cells(1, 1).Value = "i"
Cells(1, 2).Value = "P(n)"
Cells(1, 3).Value = "Q(n)"
Cells(2, 1).Value = j
Cells(2, 2).Value = P1
Cells(2, 3).Value = Q1
For i = 1 To 22
k = j * 2
Q2 = 2 * P1 * Q1 / (P1 + Q1)
P2 = (P1 * Q2) ^ 0.5
Cells(2 + i, 1).Value = k
Cells(2 + i, 2).Value = P2
Cells(2 + i, 3).Value = Q2
P1 = P2
Q1 = Q2
j = k
Next i
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
この精度で計算しますと、
P(25165824)<π<Q(25165824)
3.14159265358978<π<3.14159265358981
を導くことができます。
まさにアルキメデスの考え方が、いかに偉大なものか思い知らされますよ。
※余談ですが、アルキメデスの96角形の計算結果の場合ですと
3.14103195089051<π<3.14271459964537
となります。紀元前の人間が円周率を3.14と定めたのがすごいと思うのです。
PR
Comment