均方位移 python
Mean square displacement python
我有一个模拟 20,000 帧的轨迹文件,每帧之间有 5 ps 时间,我想做的是计算二维(x 和 y 轴)的扩散。但是要计算二维扩散,首先我必须计算所研究分子的均方位移。 MSD 计算分子在随机游走中探索系统所花费的平均时间。
我是 python 编程的新手,我真的需要一些帮助来开始这个问题并解决这个问题。希望得到积极的回应。
嗯,MSD 就像它听起来的那样,它是均方位移,所以您需要做的是找到每个位置的位置差异 (r(t + dt) -r(t)),然后平方,最后取平均值。首先,您必须从 x 和 y 中找到 r,这很容易。我将假设您从现在开始使用 numpy。
import numpy as np
r = np.sqrt(xdata**2 + ydata**2)
diff = np.diff(r) #this calculates r(t + dt) - r(t)
diff_sq = diff**2
MSD = np.mean(diff_sq)
现在这是计算 MSD 的一般方法,然后您可以与布朗运动之类的东西进行比较,其中 MSD = 4Dt 大约在二维中。
我有一个模拟 20,000 帧的轨迹文件,每帧之间有 5 ps 时间,我想做的是计算二维(x 和 y 轴)的扩散。但是要计算二维扩散,首先我必须计算所研究分子的均方位移。 MSD 计算分子在随机游走中探索系统所花费的平均时间。
我是 python 编程的新手,我真的需要一些帮助来开始这个问题并解决这个问题。希望得到积极的回应。
嗯,MSD 就像它听起来的那样,它是均方位移,所以您需要做的是找到每个位置的位置差异 (r(t + dt) -r(t)),然后平方,最后取平均值。首先,您必须从 x 和 y 中找到 r,这很容易。我将假设您从现在开始使用 numpy。
import numpy as np
r = np.sqrt(xdata**2 + ydata**2)
diff = np.diff(r) #this calculates r(t + dt) - r(t)
diff_sq = diff**2
MSD = np.mean(diff_sq)
现在这是计算 MSD 的一般方法,然后您可以与布朗运动之类的东西进行比较,其中 MSD = 4Dt 大约在二维中。