pythonでランダム・ウォークのシミュレーションを作った



スポンサードリンク

モンテカルロ法→ブラウン運動→ランダムウォークにたどり着いたので、これくらいなら秒殺できるかも!と思い、作って見ました。

ついでに前回書いた記事(モンテカルロ法)も見たい方はこちら。

 

ランダムウォーク

事象Xnの次に現れる事象Xn+1が確率的にランダムに決まるものをいう。

数学的に説明するならば、確率変数X1が以下の分布
\begin{eqnarray}
P\{X_{n} = 1\} = p , P\{X_{n} = -1\} = 1-p
\end{eqnarray}

に従うとき、確率変数Xnの分布は、n=1, =2の時、
\begin{eqnarray}
P\{S_{1}\} = P\{X_{1}\} = p\\
P\{S_{2}\} = P\{X_{1}\}P\{X_{2}\} = p^2
\end{eqnarray}

となる。この確率分布の時は「単純ランダムウォーク」という。

特に\(p = \frac{1}{2}\)の場合を対称ランダムウォークという。

 

シミュレーション動画

グラフを更新するたびに色が変わるのですがお許しください。

計算に用いたコードは以下です。

 

list内の要素をランダムに取得するchoice関数というものがあるので、それを使います。他の方も結構使ってるみたいなので、オーソドックスなようです。

今回はランダムウォークさせる回数分、for文で処理していますがfor文を使わず、random.choice(plus,size=100)というようにrandom.choice()を実行する回数を直接指定する方法もあるそうです。こちらの方がインデントもなくなり、綺麗になるので試しにやってみてください。

 

動画保存の部分で少々手間取ったので今回はQuicktimeplayerの画面収録で保存しました。

動画保存にはffmpeg?というものをインストールしてパスを通してと、やらなければいけないことがあるそうで。pythonで動画保存ができ次第、また更新します。

 



スポンサードリンク

おまけ

100回までランダムウォークした時の挙動がこんな感じ。確かに株価の挙動に似てますね!

勉強材料には以下を使いました。

 

記事が役に立ったらシェア!

投稿者:

中村 俊

中村 俊

1993/09/04生まれ。機械系大学院を休学し、ベンチャーでインターンしている最中。直近では、デカルトの「方法序説」に感銘を受けた。 趣味:読書、web開発の勉強、異分野の論文読んだり、記事書いたり。 最終的には経営者か研究者になりたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA