我必须使用越级方法来解决简单的谐波振荡器,并且我在用代码编写它时遇到了麻烦。这是我们在课堂上得到的
这是我为代码编写的
import numpy as np
import matplotlib.pyplot as plt
m = 1
k = 1
N = 1000 # steps
x0 = 1 # initial position
w=1
t = np.linspace(0,100,N) #timestep
dt = t[1]-t[0]
v = 0 # initial velocity
x = x0 # initial position
# integration: calculate v, x for each step
x = np.zeros(N)
v = np.zeros(N)
for i in range(N-1):
v[i+1] = 0.5*v[i]*dt + (-w^2)
x[i+1] = v[i+1] * dt + x[i]
plt.figure()
plt.plot(t, x)
plt.xlabel('time')
plt.ylabel('displacement')
plt.show()
从上面的代码中,这是我得到的图表,它与简单的谐波运动完全不同。练习是使用越级法从顶部的图像中获得简谐振子的数值解。我是 python 新手,不知道我哪里出错了或者下一步要去哪里,所以任何帮助都将不胜感激
