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)) #プロット

すると以下のように表示される。

f:id:rikein12:20181128204209p:plain
ステップ数1000で生成したブラウン運動

ブラウン運動のパスも見てみるが、一時休止。