トピックス プログラム、シミュレーション 数学

円の内か外か? 円周率を求める

投稿日:

機械学習に登場する「モンテカルロ法」という数値計算の手法です。この方法で円周率を求める事例を見れば、どんな方法か実感できます。難しい数式であっても、体感してみると理解し易くなります。先ずは手を動かしてみましょう。

資料はこちら → モンテカルロ法

Excelファイルはこちら → モンテカルロ法

p.1 乱数(x、y)で打った点が、半径r=1の円内の点数n個外の点数N個円周率を算出します。その比が、円と正方形の面積比と同じであるとして円周率πを算出します。 乱数はRAND()という関数を用います。0~1の乱数が得られます。 RAND()から0.5を差し引いて2倍すると-1~1の乱数が得られます。この値をxとyにしてx+yを計算して、1以下になるセルに11を超えるセルを0にします。 あとは、数をカウントします。総数COUNT(〇:〇)で〇:〇に試行した範囲を指定します。 となる数はCOUNTIF(〇:〇,1)とすると1のセルの数だけカウントしてくれます。

p.2 試行回数を100、200・・500・・1,000・・2,000回と実行した結果、上図のように点がプロットされ、求めた円周率は下図のように推移します。試行回数を増やすとばらつきはだんだん減少して3.141・・に近づいてきますね。

機械学習で乱数を用いる際に利用される方法です。

 

-トピックス, プログラム、シミュレーション, 数学

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.