T_NAKAの阿房ブログ

アクセスカウンタ

zoom RSS 20. Monte Carlo simulations, estimating piの復習(1)

<<   作成日時 : 2016/04/26 01:04   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 0

プログラミング課題として良くある「モンテカルロ法を使ったπの計算」です。
困ったことに Windows 8.1 での Chorme ではこのブログの MathJax が表示されないとのことです。まあ MathJax というか数式表示を使う必要がないのでこれから当面使用しないこととします。

今回はモンテカルロ法を扱うのですが、この言葉の由来となったモナコのモンテカルロのカジノだそうです。
画像

[引用]----------------------------------------------------------
当時、ラスベガス(にカジノができる)以前は、確かに世界でもっとも有名なカジノでした。見ての通り、今でも豪華なものの1つです。
ラスベガスとは違い、にせの豪華さと異なる、本物の豪華さを持っています。
そしてこのモンテカルロシミュレーションという言葉は Ulam と Metropolis という2人の数学者によってつくられたもので、1949年に遡りますが、以下に由来しています。
モンテカルロにおいて、人々はルーレットやテーブル上のカード、くじで賭けをしました。そこにはランダムが存在していました。ある意味で不連続なのです。
そして彼らは、これが単なるギャンブルのようであることから、モンテカルロシミュレーションと呼ぶことに決めました。
----------------------------------------------------------------

さて本題です。

コイントスをして表/裏の回数を求める関数です。
画像

そんなに難しい論理じゃないですが、ここでのミソは
 for i in range(0, numFlips)
じゃなくて、
 for i in xrange(0, numFlips)
となっているところです。
[引用]----------------------------------------------------------
range のすることとは、リストを作ることです。
この場合は 0 から 99999 までで、1つずつ通っていきます。
これはいいのですが、では numFlips が10億だと仮定してみましょう。
range はリストを作り、その中に10億の数を持ちます。これはコンピュータに多くのスペースを必要とします。むだ使いです。
xrangeが示すのは、わざわざリストを作り出さないということです。
この場合は数を1つずつ通っていくだけです。そのため range よりも効率がよいのです。
----------------------------------------------------------------
もう少し詳しいことが「【Python】range()とxrange()の違い・使い分け方」にも書いてあります。

さて、上の関数を使って正規分布をシュミレーションしてみましょう。
誤差分布についてに説明したようなクインカンクスの状況は上の関数で作り出すことができます。
ここでは 300 枚のコインをを投げて 「表になった枚数 ー 裏になった枚数」の分布を求めるために、この 300枚のコイントスのセットを 1000 回やったのが、次のプログラムです。
画像

ここで、コマンドを少し調べましょう。
 array ・・ リストを配列にかえる
 legend ・・ グラフに凡例を表示する
では、出力結果を示します。
画像

画像
Figure 1 は 1000 個のヒストグラムですが、Figure 2 は各回のデータをパーセントで表わし、時系列で表わしたものです。

今日はこの辺で。。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
20. Monte Carlo simulations, estimating piの復習(1) T_NAKAの阿房ブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる