2015-10-17 113 views
-1

所以即时尝试创建一个模拟布朗运动的程序。目前它没有工作,我不知道为什么。布朗运动程序

我想要动态输出,其中每一个点开始在(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) 
+3

会说布朗运动可以通过从(0,0)开始,选择一个随机向量方向,然后在该方向上单步确定结束位置来更好地建模。忘记像素;这些只是渲染。使算法工作,然后担心你将如何渲染它。坐标的文本输出是开始的方式。 – duffymo

+0

我是新来的蟒蛇,我试图弄清楚向量如何在python中工作,但我找不到任何帮助。我如何使用矢量? –

+0

矢量是数学的想法,独立于Python或任何其他计算机语言。找不到任何帮助?谷歌带来了比我能读的更多的点击。你的机器上没有安装Google吗? – duffymo

回答

0

您需要将更新阶段(for i in range(0, inp))在循环中。

现在,你只绘制每个粒子一次;如果只运行一个更新,则无法获取多个图像。另外,您可能想要为粒子使用浮点位置,并使用固定模数的随机方向矢量(具有显着较小的模数)更新它们,否则您将无法欣赏运动。

也许你可以用不同的颜色渲染自己的位置来区分轨迹吗?