• ベストアンサー
  • 暇なときにでも

表計算(エクセル)で、円周率の近似値を求めようとすると・・・

コンピュータのカテゴリに書き込もうかとも迷いました。 場違いでしたらすみません。 表計算ソフト(エクセル)で、遊びで円周率の近似をやってみることにしました。半径=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角形の周の長さのほうが長いことになっています。 正∞角形の周の長さ÷直径=円周率というのは、数学の教科書にも載っているようなことなので、”下の行に行くほどどんどん円周率πに近づく”という考え方自体は間違っていないと思うのですが・・・ コンピュータの限界とか、そういう問題でしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数1269
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3

 1-cosは、角度が小さいときには、cosがほとんど1に近くなるため、この式のまま計算すると、桁落ちが起ります。また、この数列は先に行くほど√の中が1に近くなるので、ここでも精度が減少します。  結局、15桁使って計算しても、結果の精度はその半分の7桁程度になってしまいます。その上、4000回計算しても7桁の精度しか得られないので、この計算式は非常に能率が悪いといわざるを得ません。アルキメデスがこの式を使ってπを3桁までしか計算できなかったのもわかるというものです。 参考URLにいろいろな式があげてあるので、どれがよいか試してみてはいかがでしょうか?

参考URL:
http://oshiete1.goo.ne.jp/qa4536688.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 なるほど、いろいろな式があって参考になりました。

その他の回答 (4)

  • 回答No.5
  • Tacosan
  • ベストアンサー率23% (3656/15482)

半角の公式を使って (1 - cos x)/2 = sin^2 (x/2) とすれば桁落ちが発生する処理がなくなるので, 現状よりは精度がよくなります. この辺は数値計算では常に注意しなければならないことです.

共感・感謝の気持ちを伝えよう!

質問者からのお礼

参考になりました。試してみようと思います。 ご回答ありがとうございました。

  • 回答No.4

有効桁数の問題で、お使いの式では7~8桁しか求められません。 以下の2つの「有効桁数が15桁の数値」は、加算しても、正しく加算されません。 1.23456789012345 0.000000000000000123456789012345 この2つをA1、A2セルに入力し、=A1+A2とか=1-A2とか計算してみましょう。 桁落ちが発生し、=A1+A2はA1と同じ値に、=1-A2は1になります。 お使いの式では、SQRTやCOSの計算中に上記のような桁落ちが起き、正確には計算出来ません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

あ~、そういうことなのですね、なぜ有効桁数15桁なのにこの精度なのか、分かりました。 ありがとうございました。

  • 回答No.2
  • Tacosan
  • ベストアンサー率23% (3656/15482)

コンピュータの限界ではないです. あなたの使っている式が悪く, 桁落ちのために精度がでないだけ. 桁落ちしない式を使えばもっといける.

共感・感謝の気持ちを伝えよう!

質問者からの補足

なるほど、そうなのですか。 No.1の方のご回答によると、15桁が限界ということなので、その限界を考慮して式を入力すればOKということですか?(計算結果の桁数が小さくなるようにあらかじめ少し引いたり足したりするとか でしょうか・・・) 桁落ちしない式というのは、どのような式なのか、教えていただけるとありがたいです。 (使用したエクセルのバージョンははExcel2000です。)

  • 回答No.1

Excelの仕様です。 有効桁数は15桁までです。 文書番号: 264626 - Excel 2000 仕様の説明 http://support.microsoft.com/kb/264626/ja | Number precision 15 digits

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。なるほどー。 (使用したエクセルのバージョン情報も記載せずにすみませんでした。Excel2000で当たっています。) セルの書式設定の表示形式で「数値」を指定すると、小数点以下の桁数は30桁まで表示は出来るということになっているので、そのくらいの精度があるのかと思っていました。

関連するQ&A

  • 円周率の求め方

    円周率は3,141592…… などといいますが、 どのような式から出ている答えなんで すか? 知ってる方、教えてください ... 現在は、無限級数展開を利用する方法が一般的 ですが、アルキメデスは円に内接、外接する正多角形の周長で計算し、3桁 円周を測る 円を作って転がして求める方法。(やりやすい方法と実測値). 再帰的に円周 率を求める方法. 正n角形の面積 円に内接や外接する正n角形の面積から円周率を 求めます。 正2n角形の周りの長さ 円に内接2n角形の周りの長さの求め方. 確率で円周 率

  • 円周率の証明

    円周率が3.14159・・・となることの証明を お願いします。 できれば円に内接する正多角形の 辺数を増やして円周率の近似値を求める 以外の方法を教えてください

  • アルキメデスが円周率を計算したやり方は?

    Blue Backs「パソコンで挑む円周率」で教えられたのですが、世界で最初に円周率を計算により求めたのはアルキメデスとのことです。彼は円に内接・外接する正96角形の周の長さから円周率の近似値を計算し、3.14までは正確に求めたとのことです。 大変ためになる情報ですが、残念ながら私には正96角形の周の長さを求めるやり方が分かりません。アルキメデスは三角関数を知っていたのですか? 三角関数を知っているとしても、それを計算できたのでしょうか。 たぶん簡単なやり方があるのでしょうが、どなたか親切な方、教えてください。

  • 円周率の理解は小学5年では厳しいと思いますか。

     私は厳しいと思います。といいますのは,円に内接する正六角形と外接する正六角形をかきます。  円の直径を1としたとき,内接する正六角形の周の長さ(=3)は容易に求まりますが,外接する正六角形の周の長さ(=2√3≒3.46)は三平方の定理なしでは求まりません。  よって円周率の理解は中学3年でないと厳しいと考えます。

  • 円周率の元の意味は?

    基本的な質問で恐縮です。円周率は円の直径と円周の長さとの比だと思いますが、3.14という数字はそもそもどのような計算式の結果から出た数字なのでしょうか。私が思うに、例えば直径が1の円に内接する6角形の外周の長さの和は3.0になりますが、極端に言えばこれが100角形とした場合とか、1000角形とかにした場合に限りなく3.14に近づくのでしょうか。3.14という数字の出所を教えていただきたいと思います。

  • 円周率の大桁数の計算

    円周率 3.1415~延々と続きますが、この莫大な桁の数字はどうやって計算するのでしょうか? ・計算機ならではの特別なアルゴリズムがあるのか? ・手計算で無理やり算出する方法はあるのか? 正多角形を内接、外接させる方法は桁数が小さい場合に有効ですが、何十桁も求めるには不向きと思います。世に出ている数値はどうやって計算したのでしょうか?素人考えですが、今日は40~50桁数、明日は51~60桁などという方法があるのでしょうか?

  • 円周率が定数であることの証明

    円周率πが3.14...と半径によらず一定であることの証明って、どうすればよいのでしょうか。 定義は π=【円周の長さ】/【直径(2r)】 ですよね。 直径が既知だとそて、円周の長さも求めなくてはならないとき、半径rの円とその円に内接する正n角形(周長=Ln)を考えた際に、 円周の長さが【lim(n→∞)Ln】で近似されることも前段階として示す必要がある気がします。 つまり、 (ⅰ) lim(n→∞)Lnが存在すること(=収束すること?) (ⅱ) lim(n→∞)Lnが円周の長さとして適当か。 ってことなんですけど・・・。 (ⅰ)も(ⅱ)も感覚的には収束すると思うし、適当だと思うんですけどうまく証明ができません。 最終的にはπが定数であることの証明がしたいのですが、その前段階のことも気になりました。 どなたか教えてください。お願いします。

  • 円周率

    円周率が3だったら、六角形になりますが(これを円周率と言って良いのか、疑問がありますが)、 円周率が3.14だったら、何角形になるんですか?

  • 円周率について

    初歩的な質問ではずかしいのですが、円周率の近似値についての質問です。アルキメデスの方法では円に内接・外接する正多角形で円周率の上限、下限を計算するため、何桁まで信頼できるのか、判定できますが、マチンの公式などの、級数によって近似値を求める場合、何桁まで信頼できるのかの判定はどのようにしているのでしょうか。ご存じの方がおりましたら、教えて下さい。

  • 円周率の求め方について

    円周率の求め方について アルキメデスの円周率の求め方についてレポートを書いているのですが、正6角形まではだせたのですが 正12角形の周の長さを求めるやり方が分かりません…。 ピタゴラスの定理とあわせて解くやり方を教えてくださいお願いいたします。