python模拟布朗运动动画
时间: 2023-09-02 13:14:09 浏览: 135
布朗运动是一种无规则运动,可以用随机漫步来模拟。下面是一个使用Python和Matplotlib库来模拟布朗运动的动画:
```python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 设置随机数生成器的种子,保证每次运行结果一致
np.random.seed(1)
# 定义随机漫步函数
def random_walk(N):
# N: 随机漫步的步数
position = np.zeros((N+1, 2)) # 初始化位置数组
for i in range(1, N+1):
step = np.random.choice(['up', 'down', 'left', 'right']) # 随机选择一个方向
if step == 'up':
position[i] = position[i-1] + [0, 1]
elif step == 'down':
position[i] = position[i-1] + [0, -1]
elif step == 'left':
position[i] = position[i-1] + [-1, 0]
else:
position[i] = position[i-1] + [1, 0]
return position
# 创建动画
fig, ax = plt.subplots()
ax.set_xlim(-50, 50)
ax.set_ylim(-50, 50)
line, = ax.plot([], [], lw=2)
def init():
line.set_data([], [])
return line,
def update(frame):
x, y = frame[:, 0], frame[:, 1]
line.set_data(x, y)
return line,
N = 1000 # 随机漫步的步数
position = random_walk(N)
ani = animation.FuncAnimation(fig, update, frames=position,
init_func=init, blit=True)
plt.show()
```
运行后会弹出一个窗口,显示模拟出来的布朗运动动画。每次运行结果都不一样,因为随机漫步是无规则的。
阅读全文