ASCENT2023-denshi
23/32

yO•原点(0,0)から出発してランダムな方向に1mずつ移動。•考え方:次の1歩がx軸となす角度θを乱数にする。1000歩進んでも、出発点からあまり遠くには行けないんだね23(xi,yi)θ(xi-1,yi-1) xi = xi-1 + cosθ yi = yi-1 + sinθXランダムウォークとグラフ作成の例 太陽内部で光子は電子によって何回も散乱されるため、なかなか表面に出てくることができません。このような現象のモデルとして、ある距離進むごとに進行方向がランダムに変わる運動を追跡してみます。import matplotlib.pyplot as pltimport numpy as np n=1000 x=np.zeros(n) y=np.zeros(n) seed=int(input('random seed :')) np.random.seed(seed) for i in range(1,n): theta=2.0*np.pi*np.random.rand() x[i]=x[i-1]+np.cos(theta) y[i]=y[i-1]+np.sin(theta) plt.plot(x,y) plt.title('random walk') plt.xlabel('x') plt.ylabel('y') このプログラムではグラフ表示のために matplotlib というライブラリを呼び出しています。plt.plot(x,y)により、リストx,y に記憶された点を線で結んで表示してくれます。

元のページ  ../index.html#23

このブックを見る