[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『円周率 パイ の算出方法』(パイパイ)
円周率 は3.14.... ですが、よく世間で、何桁まで求めた などという話が話題になりますが、自分でその値を算出する方法を 考えてみました。 EXCELで計算しましたが間違っているか、 画期的な方法か?皆さんの感想をお願いします。
パイの式=180×sinθ/θ ここで、θの値として 出きるだけ小さな値を入れればいれるだけ真の円周率に 限りなく近づくという考えです。 下記にEXCELのセルで計算させました。
θとしてさらに限りなく小さな小さな値を入れていけば
真のパイに近い値がもとまります。
θ sinθ パイ 1 0.017452406 3.141433158711030000000E+00 0.1 0.001745328 3.141591058616960000000E+00 0.001 1.74533E-05 3.141592653430300000000E+00 0.0001 1.74533E-06 3.141592653588200000000E+00 0.00001 1.74533E-07 3.141592653589780000000E+00
文献の値(参考)3.14159 26535 89793 23846 26433 83279 50288 …
この理論式の根拠は非常に簡単明快です。 以下に説明します。半径はrとします。
円を描いて、その円を中心で角度θの扇形に分割します。 そして、その分割した1個の扇形の円周の両端を結んだ三角形 を作ります。 そして扇形の面積A1と三角形の面積をA2とすれば A1=パイ×r×r×θ/360 A2=r×sinθ×r/2 A1>=A2 となりますので ....=は θが無限に0となった場合。 パイ×r×r×θ/360 >=r×sinθ×r/2 パイ>=180×sinθ/θ ここで面積をイメージすれば、θを小さくしていけば、 三角形の集合体は限りなく円に近づくので、パイに近づく ことが容易に理解できると思います。 以上
蛇足) 電車に乗っていたら、吊広告に 確か パイは 3.05より大ききことを証明せよ というような 予備校か何かの宣伝が乗っていて、思いつきました。 ・・・けちなことを、言わないで、真に近いパイが 求まるではないかと。 実は、だれでも知っていることだったりして....
今回気をつけなければいけないのは、EXCEL でのsin の引数の単位は RADIAN だということです。 このため、EXCEL での与式 180 * sinθ/θ は数学では
180 × sinθ/(θ×180/π) = π×sinθ/θとなり、もともとの数式の中に πが含まれてしまっています。
極限での基本的な式の通り lim sin(x)/x はの極限値として 1 を持ちます。 x→0
このため見かけ上、今回のEXCEL上での振舞いはπに近づいているように見えますが、 それはsin(x)/x が1に近づいているためで、円周率を算出していることにはなりま せん。
今回の数式を数学的に考えた場合、極限値は、 lim 180 * sinθ/θ = 180 です。 x→0 (Mook)
上記公式は、角度は度で考えての式です。 (度を想定した面積計算です。) sinの中の角度は、度でもラジアンでもどちらでも かまわなく、現実の角度に対するsin値を使うことで 十分です。従って、「180 × sinθ/(θ×180/π) = π×sinθ/θ」 は成立しません。 度でも、ラジアンでも、混在させなければ結果は同じものが 得られるわけです。Excelではsinの 中をラジアンで計算している だけですので、そこのみラジアンを使っています。
>度でも、ラジアンでも、混在させなければ結果は同じものが得られるわけです。 とおっしゃっている通りですが、自身のされている数式がそれを混在しています。
EXCEL でのsin は RADIAN 以外扱えないので、すべてをRADIANで統一する必要が あります。
EXCEL では SIN(30) はどうやっても0.5にはなりません。 これを行うためには、SIN(30/180*PI()) もしくはSIN(RADIANS(30))とします。 (Mook)
すべてをRADIANで統一する必要が あります。
sin(30度)でもsin(パイ/180×30 ラジアン つまり 0.523・・・)でも
どちらも結果は0.5という数値を得るという意味で,度を使おうが,ラジアンを 使おうが適したほうを入れて計算すればOKということです。 勿論,EXCELの引数はラジアンですから,ラジアンに換算させて,sin値を出して います。 sin() は単位は無次元で単位はつきません。つまり,度でも,ラジアン でもない単位ですから,sinの中の単位(度/ラジアン)は角度を表現する見せ掛けの 数値が異なるだけで,現実の角度は同じですから,sinの結果も同じ値です。 そして,ここでは180とθの単位は度で表現しています。こちらは勿論,同じ単位で なければなりませんが,どちらでもいいわけです。(パイパイ) 従って,θ側だけラジアンに換算することは間違いになります。
ご参考までに、こんな方法でも円周率は求められるようです。 くり返し回数を増やせば更に近づきます。 (ROUGE) '---- Sub test() Dim i As Long, j As Integer Dim x As Double For i = 1 To 10 ^ 9 Step 2 j = (i - 1) Mod 4 Select Case j Case 0 x = x + 1 / i Case 2 x = x - 1 / i End Select Next x = x * 4 MsgBox x End Sub
あまり不毛な論争をするつもりもありませんが、 A1 と A2の θ は、RADIANでもDEGREEでもかまいませんが、 どちらも同じ数値であることが前提です。
>従って,θ側だけラジアンに換算することは間違いになります。 ではなく、最初の式で A2(すくなくとも EXCELでは RADIAN)とA1(DEGREE)を 比較することがナンセンスなのです。
EXCEL(RADIAN)で sin(0.1) は、DEGREE で表記すれば sin( 5.72957795・・・)です。 0.1/360 と比べたら、比べる中心角 自体が異なるということです。 比べるなら A2 = πr^2 × 5.72957795/360 (DEGREE) と比較しないと。 なので最初の発言では、これを揃えるために変換をしたのです。
そもそそも π>=180×sinθ/θ の式が誤っていることは、適当な数値を代入してみれば明白でしょう。
ROUGE さん、大人ですね。 つい熱くなってしまいました(反省)。
ROUGE さんの提示された アーク・タンジェントを利用した計算はメジャーですが、 他にもいろいろアルゴリズムがあるので、一度検索してみてはどうでしょう。 (Mook)
#冷静になってみったら、数値がおかしかったので修正
>そもそそも >π>=180×sinθ/θ >の式が誤っていることは、適当な数値を代入してみれば明白でしょう。
実際やってみてください。結果はどうでしたか。(度を使ってみてください。)
実際やった表が,上の一覧表ですよ。(パイパイ)
あまり,しつこく説明するのも好きでありませんが,理解していただくために
補足します。
上記は基本的には,A1,A2ともどちらも度:DEGREEを使って計算した式です。 (勿論,ラジアンでも結果は同じ)
ここで,誤解されているのは,SINθの中のθですが,これはA1,A2では度:DEGREE を想定しています。 しかし,度:DEGREE表現でも,ラジアン表現でも実際の角度に対するSINの値は 一緒ですから,どちらでSINの値を求めても,式の流れとしては問題ありません。 そこで,便宜上,上記表のEXCELのセルでSIN値を求める場合には,左の角度(度)に 対して,ラジアンに換算してSIN値を算出して表にしたものです。 従って,一覧表の数値には誤りはないと考えていますし,式の論理,式事態にも 誤りはなく,上記計算で,パイは求められるということは確認できます。
EXCELでは,ラジアンだとか,どうだということは,角度に対するSINの値を 求めることだけに於いて,配慮すべきことで,SINの結果を使う上ではどうでも いいことです。 数値そのものに拘ることでなく,角度に対して,SIN値がいくつかを明確にすれば 済むことです。見た目の数値だけに目を奪われると上のような,認識をされることに なってしまいます。 理解いただけたでしょうか。(パイパイ)
最後に文献から調査した値は下記になります。(上の質問にも追記)
3.14159 26535 89793 23846 26433 83279 50288 …
私のEXCEL表のθ=0.00001に対する単純計算結果 3.141592653589780000000E+00
以上のように,かなり正確に文献値に近い数値が得られています。 このような同じような数値が間違った理論式から得れるでしょうか??。
補足
上記一覧表1行目でθと,SINθ がありますが,どちらも度:DEGREEを想定 しています。そしてSINθの値は,結果が表示されていますが,セル内では ラジアンに換算してSIN値を算出しています。その点を理解いただけずに セル内の計算にそのまま度の数値を入れたと誤解されやすかったことも 事実だったと思います。
では、実際に EXCEL で入力した式を示していただけますか? そもそもそこで、齟齬があると思います。
こちらでは A1 0.00001 B1 =180*SIN(A1)/A1 を実行したら、180 にしかなりませんし、それを想定して話しております。 (Mook)
sin30→sin15→sin7.5→sin3.75→sin1.875→sin0.9375 A^2+B^2=C^2 をどんどん角度を小さくすればπに近ずく値が求まります。 ただしパソコンでは桁数に限りがあります. (PP)HN忘れでした
>実際に EXCEL で入力した式を示していただけますか?
表の 1 のセルがD15 での例です。
θ SINθ 1 =SIN(PI()*D15/180) =E15/D15*180 0.1 =SIN(PI()*D16/180) =E16/D16*180 0.01 =SIN(PI()*D17/180) =E17/D17*180
各セルには,上記のような計算式が入ります。 単純に理論式どうり,上の説明のように値を入れて計算させているだけです。 1度,0.1度, 0.001度 とどんどん小さな角度(度)を書けば,真の円周率 に近づいていくようです。パソコンの精度と能力の限度はあるでしょうけけれ ど。 直ぐ上の「名前無しさん」には理解していただけた?ようですが。
(パイパイ)
求めたい数値:X この場合 Xがπということですよね。
では、何故求めたい数値が入っている数式を平気で出せるのですか? 極論を言えば、 未知数Xを導き出すのに =X*1/(1-Y) これで、Yの値を限りなく0に近づけた場合と同じことじゃないのですか?
当然X=Xなのですから、必然的にXに近づくことになるのは当たり前。
πを導き出したいのであれば、数式の中に PI() が入ったらダメでしょ。
>数式の中に PI() が入ったらダメでしょ。
そういう言い方をすれば,EXCELを使う場合はそういえるかもしれませんね。 (パイパイ)
EXCELで計算しない場合,たとえば,電卓で計算する場合,SIN(0.1度), SIN(0.001度)と,度表示でSIN値を計算できれば, PI() を使う必要はありません。 そのように PI() を使わない計算方法でも,この方式で円周率は計算できます。 三角関数SINの値が求まれば別に PI() を使う必要がないのです。 たまたま,EXCELのシステムがラジアン方式の引数しか引き受けないシステム だから,そのような屁理屈が通るだけのように思えます
PI() と三角関数は別ものという理解が出来れば,そのような発言は 起きないように思います。 必要とするのは PI() でなく,SINの値だけで十分です。昔は電卓が無い 時代は三角関数表という表があり,そこに,θ(度)とSINの値の一覧表に した厚いハンドブックなどもありました。その値を入れても,上記理論式は 成立します。
発言者の名前がありませんが,(Mook)さんでしょうか。
エクセルで円周率を求める方法。。。 =PI() ですね。 3.141592653589790000 エクセルで使える有効桁数15桁で打ち切り。
(川野鮎太郎)何となく、またもや日暮れっぽかったので・・・。
見解は後ほど。
上の名無しは私では無いので、その点のみ弁明です。 (Mook)
Mookです。 まず一方的に式が誤っていると決め付けた点に関しては、謝罪いたします。
パイパイさんが言っているように、sin(x)/x は degree で計算した場合、x→0への極限値 として π/180 になります。
これまでのやり取りで双方の大きな誤りは、degree で計算しても、radianで計算しても 体系が一緒であれば、変わらないとした点で、単位系が異なった場合この結果が異なります。
弁解じみていますが、幾何や微積分数学において degree を使用することはほとんどなく、 sin θ/θ は非常に有名で基本的な式でθが0への極限値として1であるため、これを疑い ませんでしたが、それはあくまで radian での前提があってのことのようです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 さて、これらのことを含めた上での個人的感想ですが、
>円周率 は3.14.... ですが、よく世間で、何桁まで求めた >などという話が話題になりますが、自分でその値を算出する方法を >考えてみました。
という目的に対しては、やはりdegreeを使用するのは実用的ではありません。 というのは、「電卓や数表を使用すればいいじゃないか」、と言われていますがそれらは 近似的な値であって高精度の計算を行うためには使えないからです。 そもそもsin の値自体が無理数であるため、高精度の計算をするためには「鶏が先か卵が先か」 の状態になります。
radian で考える大きなメリットは、無理数である円周率が有理数の無限級数の形に 展開できる、あるいはシンプルな反復演算に変換できることです。 現在は円周率を計算するアルゴリズムのほとんどでこのことを利用しています。
有名なのは、ROUGEさんの示されたアークタンジェントを利用したもの、そらからガウス=ルジャンドル のアルゴリズムや、これを改良したAGM法 などです。 http://momonga.t.u-tokyo.ac.jp/~ooura/pi_fft-j.html
上記にも書かれていますが、これはわずか 26回のループの反復で14億桁以上の結果が得られます。
結果的に、degree で高精度の計算をするための最も大きな欠点は、無理数の中で計算を行わなけれ ばならない点だと思います。
EXCEL や電卓で計算を行う程度でしたら、どちらも大差ありませんが、数万桁、数億桁という精度で 計算を行うためにはやはり radian での計算アルゴリズムが必要でしょう。
もう一点、なぜsinθ/θが degree で計算したときに、πと関連した結果になるかについては、 >ここで面積をイメージすれば、θを小さくしていけば、 >三角形の集合体は限りなく円に近づくので、パイに近づく >ことが容易に理解できると思います。 とさらっとかかれていますが、実際にはもっと奥が深い話で、数学的にも面白いテーマです。 radian の定義とも密接に関係しており、下記なども参考になるでしょうか。 http://ufcpp.net/study/miscmath/lopital.html
長文失礼しました。 (Mook)
三平方の定理より導きだしたSINθその結果より導き出すπ sin30→sin15→sin7.5→sin3.75→sin1.875→sin0.9375 πもしくはラジアンより導き出されたSINθでπでは無意味なπを求めているとしか思えませんが (PP)
(Mook)さん いろいろご意見、感想ありがとうございます。
実際に、私自身は正確な、円周率を詳しく追求することには、特別興味が あるわけではありません。2桁でも、3桁でもかまいませんが、円周率というものが 特別な数値、われわれが簡単に求められない数値と思っていたものが、意外と単純 な式(方法)で算出できてくるということがが興味深いことでした。 実際の計算をすることや、数値を出すことが目的でなく、上の理論式で、答えが 得られるということが確認できるか、正しいと納得していただけるかということで した。三角関数のsinθで角度θの値を限りなく小さくしたsin値さえわかれば、 その数値と、180と角度(度)を使い、円周率に近い値を得ることが出きると いう考え方・論理が納得していただけるかどうかだけのことです。 sinθ自身の求め方(excelを使うとか、電卓とか、三角関数表とか)や精度は 実は重要でなくその値を知れば、求まる方向に向くということだけで十分と考え ています。 正直、皆さんの理解・納得が得られたかどうかわかりませんが、お付き合い いただきありがとうございました。(パイパイ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.