続・円周率を求める
今度は、正多角形の周の長さから円周率を求めました。
半径1の円に内接する正n角形の一辺の長さから、
正2*n角形の一辺の長さを求める式は、
になる。(三平方の定理を駆使すれば出てきます)
で、これを使って正方形から求めていきます。
結果は以下
お、計算が速いぞ。数字もいい感じで出て・・・・・・ないぞ。
65536角形のとき減ってる。またその次では実際の円周率超えてるし。
原因にはわりとすぐに気がついた。
上の一辺の長さを出す式に原因がある。
辺の数が増えるとが小さくなり、
4に比べての2乗が小さくなりすぎてしまう。
ここでプログラミングで言うところの「桁落ち」が発生してしまったというわけだ。
計算方法を工夫しないと精度が上がらない。
うまくいくと思ったのにな。残念だ。
いい近似式を知っている方、ぜひお教えください。
半径1の円に内接する正n角形の一辺の長さから、
正2*n角形の一辺の長さを求める式は、
になる。(三平方の定理を駆使すれば出てきます)
で、これを使って正方形から求めていきます。
結果は以下
辺の数 | 一辺の長さ | 円周率の計算値 |
4 | 1.414213562373095 | 2.828427124746190 |
8 | 0.765366864730180 | 3.061467458920719 |
16 | 0.390180644032257 | 3.121445152258053 |
32 | 0.196034280659121 | 3.136548490545940 |
64 | 0.098135348654836 | 3.140331156954754 |
128 | 0.049082457045824 | 3.141277250932759 |
256 | 0.024543076571440 | 3.141513801144285 |
512 | 0.012271769298311 | 3.141572940367515 |
1024 | 0.006135913525929 | 3.141587725275636 |
2048 | 0.003067960372572 | 3.141591421514008 |
4096 | 0.001533980637482 | 3.141592345563526 |
8192 | 0.000766990375153 | 3.141592576625775 |
16384 | 0.000383495194616 | 3.141592634298169 |
32768 | 0.000191747598283 | 3.141592650272843 |
65536 | 0.000095873799101 | 3.141592648934190 |
131072 | 0.000047936900088 | 3.141592684156058 |
262144 | 0.000023968449460 | 3.141592607672169 |
524288 | 0.000011984225887 | 3.141592910939673 |
1048576 | 0.000005992110628 | 3.141591696683685 |
2097152 | 0.000002996059946 | 3.141596553704820 |
65536角形のとき減ってる。またその次では実際の円周率超えてるし。
原因にはわりとすぐに気がついた。
上の一辺の長さを出す式に原因がある。
辺の数が増えるとが小さくなり、
4に比べての2乗が小さくなりすぎてしまう。
ここでプログラミングで言うところの「桁落ち」が発生してしまったというわけだ。
計算方法を工夫しないと精度が上がらない。
うまくいくと思ったのにな。残念だ。
いい近似式を知っている方、ぜひお教えください。