尝试进行verlet集成

问题描述 投票:0回答:1

我尝试过调整欧拉方法代码,并使用欧拉来计算第一个值,因此我可以在 verlet 中使用两个值,但是当我绘制图形时,我只得到两条垂直的直线。

这是代码:

for t in t_array:

    if t == 0:
        x0 = x
        x1 = x0
        a = -k * x1 / m
        x2 = x1 + dt * v
        v = v + dt * a
        x_list.append(x2)
        v_list.append(v)
    else:
        x2 = x1
        x1 = x0
        x2 = 2*x1 - x0 + dt**2*a
        v = (1/dt)*(x2 - x1)
        x_list.append(x2)
        v_list.append(v)

然后我使用 matplotlib 绘制图表。

python numerical-methods verlet-integration
1个回答
-1
投票

您可以在这里看到简单的 Verlet 算法实现:https://github.com/Smoren/article-modeling-ipynb

© www.soinside.com 2019 - 2024. All rights reserved.