Excelを用いたモンテカルロシミュレーションによるランダムウォーク

        

Excelを用いた科学技術計算が第2版になりました 30年10月

amazon:Excelで操る! ここまでできる科学技術計算 第2版

楽天: Excelで操る! ここまでできる科学技術計算 [ 神足 史人 ]


            図1 ランダムウォークのグラフ


ランダムウォーク


 ランダムウォークは酔っぱらいの運動です。
ある地点(原点)に酔っぱらいが立っており、任意の方向(ランダム)に1m移動します。
その地点からまた、任意の方向(ランダム)に1m移動します。
これを数回繰り返した後、酔っぱらいは最初の点(原点)からどれだけの距離にいるで
しょう。



EXCELの乱数を用いモンテカルロシミュレーション


モンテカルロは言わずと知れたバクチの町です。
バクチ(サイコロ)を使ってシミュレーションを行うことをモンテカルロシミュレーションと
いいます。

コンピュータの発達前、正20面体のサイコロを使い、シミュレーションが行われていた。
正20面体の場合、0〜9の数字を2箇所につくれば、10進数のサイコロが作れます。

コンピュータではサイコロの代わりに、(0〜1)の一様乱数が用意されています。

野球のコンピュータゲームを自動モードで実行すると、コンピュータ内で、選手個人の
データ(打率など)に基づき、
乱数を使い、打球の方向などをきめ、ゲームが進行します。
短時間で何万試合でも行えるため、最適打順を決めるシミュレーションにも使えそうです。

EXCELの乱数(rand())はあまり性能が良くないようで、より良い乱数を組み込む必要が
あるかもしれません。



EXCELを用いたランダムウォーク


図2のように、最初(N0. 1)の位置は原点(0,0)です。

2回目の方向(0〜360度)を乱数できめます。セル位置で =rand()*360 を入力します。
(randは0〜1の一様乱数のため、360倍すると0〜360の一様乱数となる)
角度の計算(sin,cos)はラジアンです。(1度=π/180ラジアン)セル位置で =(度のセル)*pi()/180を入力します。
移動量は三角関数を使います。

X方向移動量 = cos(方向)
Y方向移動量 = sin(方向)

位置は前回の位置に移動量を加算します。
原点からの直線距離は位置から計算します。 = sqrt(X^2+Y^2) となります。

3回目以降は2回目をコピーするだけで、出来上がります。


         図2 モンテカルロシミュレーションによるランダムウォークの結果



ランダムウォークのグラフ


図3のように、EXCELのグラフ機能を使い、ランダムウォークを図化します。

参考 :エクセル(EXCEL)でグラフを作ってみよう


           図3 ランダムウォークのグラフ


統計学が最強の学問である


たった1日で即戦力になるExcelの教科書

入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)

Excel VBAのプログラミングのツボとコツがゼッタイにわかる本

POD>乱数とモンテカルロ法POD版

入門ベイズ統計学

社会システム工学の考え方

確率と統計

コンピュータシミュレーション

ビジネスマンのための「数字力」養成講座 (ディスカヴァー携書 20)


完全独習 統計学入門



ランダムウォークの確率分布


 ランダムウォークによる酔っぱらいの位置の確立分布を求めます。1回目は必ず原点から1mの位置にいますが、2回目以降の確立分布関数を解析的に求めることは難しい。そこでモンテカルロシミュレーションによりこの確立分布を算出します。
 図-4のように、原点からの距離の範囲を設定し、ランダムウォークを10000000回試行し、範囲に入った酔っぱらいの数をカウントします。試行回数を増やせば増やすほど、確立分布は理論解に近づきます。


           図-4 ランダムウォークを試行するエクセルシート

ランダムウォークの試行は図-5のVBAを作成し、実行します。


              図-5 ランダムウォークを試行するVBA

 算出された確立分布をグラフにしました。エクセルの乱数は性能が悪いようで、なめらかな曲線になっていないところもあります。

                図-6 ランダムウォークの確立分布グラフ



エクセルを用いた標準正規分布に従う乱数(正規乱数)の発生

エクセルを用いた指数分布に従う乱数(指数乱数)の発生とヒストグラム


 





EXCELを用いた科学技術計算

EXCELのソルバーを用いた科学技術計算

Excelを用いた地球温暖化計算

Excelを用いた確率・統計計算



〒673−0036 兵庫県明石市松江62−14
(有)ゴッドフット企画



感想をお聞かせ下さい



JR福知山線 脱線事故シミュレーション

脱線事故シミュレーションもEXCELで
(Yahoo Japan 掲載)


Copyright (C) GODFOOT 2007 All Rights Reserved.