问题描述
因此,我试图创建一个模拟布朗运动的程序。 目前,它不起作用,我不知道为什么。
我想要一个动态输出,其中每个点都从(0,0)开始,然后为每个点分配一个随机坐标,以便每个点在坐标系中随机“移动”。 现在,当我启动程序时,输出仅为1个静态图像,其中点位于随机位置。
码:
import matplotlib.pyplot as plt
import numpy as np
import random
val = input("Number of particles")
inp = int(val)
x = [0]*inp
y = [0]*inp
for i in range(0,inp):
x[i] = x[i] + random.randint(0,9)
y[i] = y[i] + random.randint(0,9)
for k in range(0,inp):
N=9
plt.scatter(x[k],y[k])
plt.hold(True)
1楼
您需要将更新阶段( for i in range(0, inp)
)放置在循环内。
现在,您只绘制一次每个粒子。 如果您只运行一个更新,则最多只能获得一张图像。
另外,您可能希望对粒子使用浮点位置,并使用具有固定模数(具有明显较小的模数)的随机定向向量来更新它们,否则将无法欣赏运动。
也许您可以用不同的颜色渲染它们的位置以区分轨迹?