问题是要针对N的不同值,通过对M个随机游走的xN和yN进行集合平均来计算平均位移矢量。将图绘制为N的函数,然后通过对R_N ^ 2进行集合平均来计算平均平方位移M-1000步行者原本以二维为起点。
这是我的编码器,用于放置独立于服务的随机游动图:
import numpy as np
import pylab
import random
# defining the number of steps
M = 1000
#creating two array for containing x and y coordinate
#of size equals to the number of size and filled up with 0's
x = np.zeros(M)
y = np.zeros(M)
# filling the coordinates with random variables
for i in range(1, M):
value = random.randint(1, 4)
if value == 1:
x[i] = x[i - 1] + 1
y[i] = y[i - 1]
elif value == 2:
x[i] = x[i - 1] - 1
y[i] = y[i - 1]
elif value == 3:
x[i] = x[i - 1]
y[i] = y[i - 1] + 1
else:
x[i] = x[i - 1]
y[i] = y[i - 1] - 1
def compute_SquareMean(value):
totalsize=len(value)
msd=[]
for i in range(totalsize-1):
j=i+1
msd.append(np.sum((value[0:-j]
value [j ::])** 2)/ float(totalsize-j)) msd = np.array(msd) 返回msd
print(compute_SquareMean)
pylab.title("Random Walk ($n = " + str(M) + "$ steps)")
pylab.plot(x,y)
pylab.show()
有人可以向我展示代码,以通过对M个不同的步长进行集合平均xN和yN来计算平均位移矢量,其中N的值不同,并且通过集合平均R_N ^ 2对平均平方位移进行计算。我怀疑我的compute_SquareMean函数不能正常工作,因为它给出了一个位置作为输出。应该注意的是,随机沃克路径的for循环运行良好。谢谢