Juliaでブラウン運動②
さて、前回N(0.T)に従う乱数を発生させたところで終了したが、ブラウン運動らしく、ランダムウォークからT=100におけるブラウン運動の粒子の位置を表示しよう。
y = [] for i in 1:1000 #1000個の粒子を生成 a=0 #初期位置は0 for j in 1:1000 #今回はT=100に至るまでの時間を1000ステップに分割する。 a += 2 * (abs(rand(Int))%2-0.5) * sqrt(T/1000) #sqrt(T/1000)であることに注意。+方向か-方向かはランダム。 end push!(y,a) #yにaを加える。!マークがなんとなく見慣れないが、破壊的な関数(引数をいじるような関数)には!をつけるのがjuliaらしい。 end df2 = DataFrame( x = y ) plot(df2, x="x", Geom.histogram(bincount=50)) #プロット
すると以下のように表示される。
ブラウン運動のパスも見てみるが、一時休止。