見出し画像

[ ウォリスの公式 ] 掛け算を繰り返すだけで正確に円周率を求める

[サイトマップを見る ]

円周率とは

直径が1の円があるとします。この円の周りは $${3.14159265359 \cdots}$$ です。この値のことを円周率といいます。

アルキメデスの近似値

アルキメデス(紀元前287年 - 212年)は円周率は $${\frac{223}{71} }$$ より大きく,$${\frac{22}{7}}$$ より小さいと考えました。

$$
\frac{223}{71} < \pi < \frac{22}{7}
$$

すると,$${\pi}$$ はだいたい 3.14 ということになります。私たちが学校でならった 3.14 と同じですね。

ウォリスの公式

ウォリスは西暦 1616年 - 1703 年の間生きた数学者です。ウォリスは正確に円周率を求める方法を発見しています。

$$
\prod_{n=1}^\infty \lparen \frac{2n \cdot 2n}{2n-1 \cdot 2n+1 } \rparen
$$

一見すると,ぎょっとするような公式ですね。しかし,やっていることは次のとおり単純です。

$$
2 \pi = \frac{2 \times 2}{1 \times 3} \times \frac{4 \times 4}{3 \times 5} \times \frac{6 \times 6}{5 \times 7} \times \frac{8 \times 8}{7 \times 9} \cdots
$$

この計算を続ければ続けるほど,$${3.14159265359 \cdots}$$に近づきます。すごい。

Python で計算

しかし,何回くらい計算したらいいのでしょう。Python でウォリスの公式を実装して実際に計算してみましょう。以下は 10回,100回,1000回,10000回計算した場合に得られる値です。

  • 10回 ---- 3.0677038066434976

  • 100回 --- 3.1337874906281584

  • 1000回 -- 3.140807746030388

  • 10000回 - 3.1415141186819215

  • 100000回 - 3.141584799657313

  • 1000000回 - 3.1415918681924677

10000回続けると,3.1415 までは計算できるようです。しかし,次の3.14159 まで正確に求めるには,1000000回も計算する必要があります。しかし,ずっとずっと続けていけば,どんどん精度は増していきます。

あんな単純な公式から円周率を正確に求められるなんて,とてもすばらしいですね。

Python のコード

import sys

n = int(sys.argv[1])

numerator = 2
pi = 1

for i in range(n):
pi = pi * ( numerator * numerator ) / ( (numerator - 1) * (numerator + 1) )
numerator = numerator + 2

print(pi*2)

[ サイトマップを見る ]


いいなと思ったら応援しよう!