質問: 表計算(エクセル)で、円周率の近似値を求めようとすると・・・ コンピュータのカテゴリに書き込もうかとも迷いました。 場違いでしたらすみません。 表計算ソフト(エクセル)で、遊びで円周率の近似をやってみることにしました。半径=0.5の円に内接する正多角形の周の長さを求めるやり方です。半径=0.5にしたのは、直径1の円の円周率は、周の長さをそのまま円周率とすることができるからという理由からです。 半径0.5の円に内接する正多角形の隣り合う2点abと円の中心oとを結んで出来る二等辺三角形oabの辺abの長さは、 =√(0.5^2+0.5^2-2*0.5*0.5*cos∠aob)(余弦定理) =√(0.5^2*2*(1-cos∠aob)) エクセルでの具体的な計算の仕方 (1) a1セルに「=3」 b1セルに「=sqrt(0.5^2*2*(1-cos(radians(360/a1))))*a1」 ※これでa2セルには、半径0.5の円に内接する正三角形の周の長さが表示されます。 (2) a2セルに「=a1+1」 b2セルに「=sqrt(0.5^2*2*(1-cos(radians(360/a2))))*a2」 (3) a2、b2を選択して、下方向へオートフィルします。 オートフィルを続ければ続けるほど、正n角形のnが増大するので、3.14にb列に表示される数値は、”下の行に行くほどどんどん円周率πに近づく”はずです。 なのに、正4316角形と正4317角形(セルb4315とセルb4315)では、 正4316角形の周の長さ=3.14159237622779 正4317角形の周の長さ=3.14159237622464 となっており、正4316角形の周の長さよりも正4315角形の周の長さのほうが長いことになっています。 正∞角形の周の長さ÷直径=円周率というのは、数学の教科書にも載っているようなことなので、”下の行に行くほどどんどん円周率πに近づく”という考え方自体は間違っていないと思うのですが・・・ コンピュータの限界とか、そういう問題でしょうか?
回答: 1-cosは、角度が小さいときには、cosがほとんど1に近くなるため、この式のまま計算すると、桁落ちが起ります。また、この数列は先に行くほど√の中が1に近くなるので、ここでも精度が減少します。 結局、15桁使って計算しても、結果の精度はその半分の7桁程度になってしまいます。その上、4000回計算しても7桁の精度しか得られないので、この計算式は非常に能率が悪いといわざるを得ません。アルキメデスがこの式を使ってπを3桁までしか計算できなかったのもわかるというものです。 参考urlにいろいろな式があげてあるので、どれがよいか試してみてはいかがでしょうか? 参考url:http://oshiete1.goo.ne.jp/qa4536688.html