我想在简单的线性粒子交互模型之上添加热波动.到目前为止(没有布朗运动)一切都是使用scipy.integrate.odeint完成并且工作得很好.因此,通过使用scipy.integrate metods之一找到一种包含随机运动的方法会很好.问题如下:使用Langevin热浴我必须更新粒子位置(x)和速度(v),如下所示:
x = x + v*dt
v = v +(interaction_force*dt + random_force*dt)/ mass
其中:random_force = sqrt(constant/dt)*random_number
我认为有两个问题:
步骤大小dt出现在random_force中.但我不知道在运行期间通过自适应步长控制改变的当前步长.
步长控制将遇到麻烦,因为只要使用两个不同的random_number来比较不同的步长,就会有相对大的差异.(我不确定是否使用了两个不同的random_numbers)
我唯一的想法是使用固定步长的方法.但我没有发现任何喷气式飞机.任何更好的想法如何解决这个问题?