円の正多角形近似によってπの近似値を得る
単位円に内接する正(6×2^n)角形を構成する
弦の長さを$ a_n とする
n=0から始めればよくある正六角形から始められる
弦と半径によって二等辺三角形が得られる
これを二等分すれば正(6×2^{n+1})角形を構成でき、長さ$ a_{n+1} の新たな短い弦を得る
分割数を2倍に更新していく操作
半径は更新前の弦で2つに区切られている
中心から円周の方向に、その長さを$ x, y と割り当てる
更新で生じる2種類の直角三角形について、三平方の定理から関係式を導ける:
code:tex
\begin{cases}
1^2 = \left(\frac{a_n}{2}\right)^2 + x^2\\
a_{n+1} = \left(\frac{a_n}{2}\right)^2 + y^2
\end{cases}
$ x+y=1 に注意して解けば漸化式が得られる:
$ a_{n+1} = \sqrt{2 - \sqrt{4 - a_n^2}}
得られた漸化式は桁落ちが生じる形式なので変形する: $ a_{n+1} = \frac{a_n}{\sqrt{2 + \sqrt{4 - a_n^2}}}
code:jl
function approx_pi(n)
c = 1
for _ in 1:n
c = c / (sqrt(2 + sqrt(4 - c^2)))
end
return 3 * 2^n * c # (6 * 2^n / 2) * c より少しマシになる
end
approx_pi(61) # 3.141592653589793