ブラウン運動(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()

ブラウン運動の軌跡を可視化してみます。