MonteCarloアルゴリズムの実装
概要
「モンテカルロアルゴリズムでπの近似値が出せるよ!」とか今まで言っておきながら、実際シミュレーションしたことがありませんでした(恥)
なので、とても簡単ですが、R言語で実装してみます。
コードはGitHubに置いておきます。
シミュレーション方法
モンテカルロ法でπを近似してみます。方法はおなじみの一辺が2の正方形の的の中に、半径1の円を書き、
乱数(Mersenne Twister)をプロットし、円の中に入った数/入らなかった数を数えるというシンプルなものです。
で計算し、出力します。
また、初めは、エンターキーを押すたびに1ステップずつ進むようにしていましたが、面倒なので、
精度を入力し、その精度に達した時に入力受付状態(一時停止)になるようにしました。
シミュレーション結果
初期画面はこのような感じです。シミュレーション開始します。すると、、
ここで、止まりました。
精度で、1356ステップかかり、
と近似できました。
感想
思っていたより早く収束し、驚きました。しかし、もう一桁精度をあげようとすると、全く終わりません。
有効数字7桁と8桁の壁は大きいようです。