我已经尝试过调整欧拉方法代码,并且正在使用欧拉来计算第一个值,所以我在 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 绘制图表。