今注目のニュース
コインパーキングの跳ね上がる車止め! ボディに傷はつかないのか
女性の尿トラブル、即病院に行くべき症状とは
1本の針金が微生物に変身! 国立科学博物館の「ミジンコクリップ」がとっても素敵

円周率単語

エンシュウリツ

掲示板をみる(314)
  • twitter
  • facebook
  • はてな
  • LINE

円周率(えんしゅうりつ)とは、円の直径に対する円周のである。直径1の円の周の長さに等しい。

数学定数の一つであり、超越数である為、便宜上“π”で表される。

円周率に関する慣用表現

ゆとり教育の代名詞として、「円周率が3」と導された世代を揶揄する人も多い。 しかしながら、3だろうが3.14だろうが、等しく慣用表現であり正確な数値ではない[注]ので、それを計算の低下の徴であるかのように報道したり、揶揄したりする人々こそ間違っていると言える。

うかつに「円周率は3.14だ、このゆとりめ」とツッコむとやけどするかもしれませんよ。

注:有効数字という概念から3.14を慣用する事と整数部が3であることを利用して3を用いることには何の違いもない。尚、工学物理の分野では、実用的にも十分な精度を確保する為、5~6桁程度に拡されて用いられている。

円周率として3を使った場合最大で33%程度の誤差が出るが、3.14を使った場合0.3%程度に、3.1415なら0.003%程度になる。日常使う範囲なら3.14で、高い精度がめられる場合でもせいぜい5桁程度あれば十分であるといえる。また、観測可宇宙と同じサイズ円盤(半径約465光年)の円周の長さを水素原子の半径(5.29×10-9m)以下の誤差に収めるするには40桁あればいいらしい。地球サイズならば15桁もあれば同程度の精度になる。

円周率を求める方法

測る

ラップの芯などの円に近い筒に糸を巻きつけ、その長さを直径で割ってやればよい。そこそこそれっぽい値になる。

誤差は紐の伸びや歪み、筒の円度や強度、ものさしの精度に依存する。

正多角形で近似

正24形とかを見てもらえばなんとなくわかると思うが、正n形のnをどんどん大きくすれば円を近似できる。下記のD言語プログラムはこの原理に基づいて記述されている。「円周率およそ3」は円を内接正6形と見做した場合に相当する。

a0=2√3, b0=3, an+1=2anbn/(an+bn), bn=√(an+1bn) としてやれば、anは直径1の円に外接する、bnは内接する正6×2n形となる。従って、an<π<bn。nを増やしていけばより正確になる。n=4で3桁、n=10で7桁の精度でまる。

初歩的なアルゴリズムであり図形的にも理解しやすいが、N桁めるためにN×1.66回程度の平方根計算と乗算が必要であるため現在は使われていない。

また、東京大学2003年度前期入試試験で「π>3.05を明せよ」という問題が出たが、円に内接する正八形以上の多形で計算すれば明することができる。

三角関数のテイラー展開

tan-1(x)をテイラー展開すると、tan-1(x)=x-x3/3+x5/5-x7/7+…

となる。このxに1を代入するとπ/4=tan-1(1)=1-1/3+1/5-1/7+…となる。しかし収束が極めて遅い。つまり、がんばって計算しても全然桁数が増えない。この方法でπ10桁の精度でめるために100億回計算する必要がある。

この級数オイラー変換と呼ばれる変換を施すと、t=x2/(1+x2)、an=2n!!/(2n+1)!!として、tan-1(x)=(1+Σ(antn))×t/xとなる。この善した方法を使うと30回程度の計算で10桁の精度を得ることができる。

arctan公式

π/4=Σ(pntan-1(1/qn))の形式の物。タンジェントの加法定理を繰り返し適用することで導出する。各項の数値はtan-1(x)のテイラー展開による。

などがある。

収束が速く、πの桁数≒テイラー展開の項数である。一番上の物でtan-1(1/5)、tan-1(1/239)をそれぞれ第2項までテイラー展開すれば3桁の精度で、10項まで展開すれば10桁程度の精度で円周率がまる。

区分求積

01(1/(1+x2))dx=π/4 であることを用いる。

0から1をn等分に分割し、k番の点xk=k/nをf(x)=1/(1+x2)に代入、π/4≒Σf(xk)/nとしてめる。

1000項でおよそ3桁の精度なので収束は遅い。

モンテカルロ法

乱数を発生させてめる統計的方法。簡単にいえば、一辺2の正方形上に点をランダムに打った時、正方形に内接する半径1の円版上にプロットされる確率からめる。

具体的には-1から1までの乱数の組2つを発生させて面上にプロットし、原点の距離が1以下の物とそれ以外に分ける。そうすると π≒4×(距離1以下の点)/(全点数)となる。だいたい1000点で2桁程度の精度。

また、長さ1cmの針を2cmの間隔で引かれた行線上に落とし、線と重なる確率からめるという方法もある。繰り返せば1/πに収束する。シャープペンの芯や鉛筆など十分に細長い棒があれば簡単に実験できる。

ラマヌジャンの公式

1/π=(2√2/9801)×Σ((4k)!×(1103+26390k)/((k!)43964k)

というもの。めちゃくちゃな式に見えるがモジュラー関数がどうのこうので収束が非常に速いらしい。

さらに高度な方法

算術幾何均、楕円積分法を用いたり、掛け算や割り算の計算量を圧縮するため高速フーリエ変換ニュートン法を用いたりする。また、通常のコンピュータではせいぜい十進数で19桁程度しか扱えないので桁数があっという間に足りなくなる。そのため高い桁数を計算するための専用ソフトを開発する必要がある。

アルゴリズムソフトウェアの開発だけでなく、大規模計算ではスパコンを始めとした並列計算を用いるのが必須であり、半導体技術やエネルギー効率の善、コンピュータの設計技術の発展も欠かせない。

楽で円周率をめるだけでもその背景には科学技術の凄まじい発展が垣間見えるのである。

桁数の記録

暇だから俺も計算してみたい

簡単にでいいならCとかのプログラムの知識と、高校生程度の数学があれば簡単にできる。

エクセルがあればコンパイルが通らないなどと悩まずもっと簡単にできる。

え? 手計算? 人間のやるもんじゃないよ。

俺の書いたプログラム

D言語編 (多角形近似)

import std.cstream;
import std.math;

void main() {
int N = 10;
real[] a = new real[N], b = new real[N], t = new real[N], pi = new real[N];
a[0] = 1.0;
b[0] = 1.0 / sqrt(2.0);
t[0] = 1.0 / 4.0;
for(int i=0; i<N-1; i++) {
a[i+1] = (a[i] + b[i]) / 2.0;
b[i+1] = sqrt(a[i] * b[i]);
t[i+1] = t[i] - pow(2.0, cast(real)i) * pow(a[i] - a[i+1], 2.0);
}
for(int i=0; i<N; i++) {
dout.writefln("%40.37f", pow(a[i] + b[i], 2.0) / (4.0 * t[i]));
}
dout.writefln("%40.37f", real.epsilon);
}

実行結果exit

OCaml編 (sin-1(x)のx=1/2におけるテイラー展開)

open Num;;

let pi length =
let min = Int 1 // Int 10 **/ Int length in
let rec sum n an x =
let n2 = (Int 2) */ n in
let n2_1 = n2 +/ (Int 1) in
let an' = (n2_1 */ n2_1) //
(Int 4 */ (n2 +/ Int 2) */ (n2 +/ Int 3)) */
an in
if an' </ min then x +/ an'
else sum (n +/ Int 1) an' (x +/ an') in
let a0 = Int 1 // Int 2 in
Int 6 */ sum (Int 0) a0 a0;;

print_string (approx_num_fix 100 (pi 100));;

宿題(来週までに65000桁覚えること)

記事が重くなりすぎるので分離しました。→こちら

豆知識

円周率は全な乱数表という予想がある。これが正しければ、円周率には全ての数字、例えばあなたが適当に思い浮かべた数値でも、ニコニコ動画ログインするパスワードでも、はてはクレジットカード暗号鍵も個人のDNA情報も全て載っていることになる。ただし、的の桁数を定する方が情報量が多くなるので情報圧縮には使えない。

関連動画

関連商品

関連コミュニティ

関連項目

掲示板

  • 312ななしのよっしん

    2019/07/20(土) 04:30:03 ID: WuWFa1TW7F

    普通代数的数祭り上げられる理由などどこにもない

  • 313ななしのよっしん

    2019/07/26(金) 20:12:17 ID: YlkjfNL29f

    たぶん√2は超越数じゃないからだと思うそれよりなぜeが空気なのか

  • 314ななしのよっしん

    2019/08/23(金) 20:29:39 ID: vb6Wf1Gi4n

    314コメ

急上昇ワード

最終更新:2019/08/25(日) 09:00

ほめられた記事

最終更新:2019/08/25(日) 09:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

       

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

TOP