モンテカルロ法

1.概要

 乱数で近似解を求める方法
   乱数を用いて何度も試し、繰り返し、おおよその解を導き出す

 偶然な数を使うことで正確な答えが出せるのか疑問だが
   試行回数を増やすほど、真の値に近づくことが数学的に証明されている
   サイコロを振れば振るほど、出た目の平均値が理論値に近づくのと同じ

2.円周率を求める

 円の面積と円周率の計算を考えてみる
   正方形の中に円を描く
   正方形の中に点をランダムにたくさん打つ
   正方形全体に打たれた点の数と、円の中に落ちた点の数を数える
   円の中に落ちた点の数の割合は、円の面積と正方形の面積の割合に近い

   割合と正方形の面積から、円の面積を計算することができる
     円の面積が分かれば、そこから円周率を求めることができる

 実際の計算
   一辺2rの正方形の中にぴったり入る半径rの円を考える
   この正方形の中に、ランダムに点を打つ
     ある領域に入った点の数は、その領域の面積に比例するので
     円の中に入った点の数/打った点の総数は
     面積の比と同じになる πr2乗/(2r)2乗
     約分すると π/4 となり

     点の数を数えて4倍すれば、円周率の近似値になる

   参考:東北大学理学部物理学科
   http://www.cmpt.phys.tohoku.ac.jp/open-campus/2020/pi/

3.利点・欠点

 メリット
   直接計算が難しい問題でも比較的簡単に近似値を得られる
     汎用性が高い
       複雑な形状や条件を持つ問題
       数式で表現することが難しい現象
       多くの変数が絡み合うシステム 等に適用可能

     アルゴリズムが単純
       プログラムを書きやすい
       実装が容易
       幅広い利用者にとって扱いやすい

     並列計算との相性が良い
       複数の計算機を用いることで計算速度の大幅な向上が可能

 デメリット
   真値ではない、乱数の生成方法や試行回数を適切に設定する必要がある
     近似解しか得られない
       真の解との誤差を評価することは可能だが、
       厳密な解が必要な問題には適していない

     計算時間
       試行回数を増やすほど精度は向上するが、
       計算時間も増加し、計算コストが高くなる可能性がある

     乱数の質への依存
       質の低い乱数生成器を用いると、
       計算結果の信頼性が低下する可能性がある