ブラウン運動(Brownian motion)
ブラウン運動とは?
ブラウン運動(Brownian motion)は、液体や気体中で微小な粒子が見せるランダムな動きのことを指します。機械学習の文脈では主に確率過程やランダムウォークのアナロジーとして使用されることが多いです。
2次元のブラウン運動をシミュレート
このシミュレーションでは、正規分布に基づいたランダムな変化をX方向とY方向の両方に適用し、それを累積してブラウン運動の軌跡を作成します。
import numpy as np
n_steps = 1000
x_steps = np.random.normal(loc=0, scale=1, size=n_steps)
y_steps = np.random.normal(loc=0, scale=1, size=n_steps)
np.random.normal(loc=0, scale=1, size=n_steps) は、NumPyライブラリを使用して、平均(loc)が0、標準偏差(scale)が1の正規分布からランダムな値を生成し、それを n_steps の数だけ生成します。
ここではX方向とY方向に1000個分のランダムな値を生成しています。
x_position = [0]
y_position = [0]
for i in range(1, n_steps):
x_position.append(x_position[-1] + x_steps[i])
y_position.append(y_position[-1] + y_steps[i])
ブラウン運動の軌跡を作成します。
ブラウン運動の軌跡を可視化
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 8))
plt.plot(x_position, y_position, label='Brownian Motion')
plt.scatter(x_position[0], y_position[0], color='red', label='Start')
plt.scatter(x_position[-1], y_position[-1], color='green', label='End')
plt.title('2D Brownian Motion Simulation')
plt.xlabel('X Position')
plt.ylabel('Y Position')
plt.legend()
plt.axis('equal')
plt.grid(True)
plt.show()
ブラウン運動の軌跡を可視化してみます。