我得到了两个二阶 ODE,我被要求用 python 中的 odeint 解决它们。
这些是等式:
d^x(t)/dt^2 = 10dy(t)/dt + x(t) - (k + 1)(x(t))/z^3
d^2y(t)/dt^2 = - 10dy(t)/dt + y(t) - ((k+1)(y(t) + k))/z^3
在哪里 z = np.sqrt((y+k)^2+x^2))
我已经获得了初始变量 (x, y, dxdt, dydt) 我知道它们的值,但我不会坚持输入它们,所以我不会把它们放在这里。
def function(init, time, k):
xt = init[0]
yt = init[1]
z = np.sqrt((init[1]+k)^2+init[0]^2))
dxdt = init[2]
dydt = init[3]
ddxddt = 10*dydt + xt - ((k+1)(xt))/z^3
ddyddt = -10*dxdt + xt - ((k+1)(yt + k))/z^3
return(dxdt, ddxddt, dydt, ddyddt)
init = [0.921, 0, 0, 3.0]
values = odeint(function, initial, time, args(k,))
在此之后,我定义了初始值,并定义了时间 k,并将它们放入 odeint。
但是我可以看到我的实际设置功能确实有问题。我不明白如何拆分二阶颂歌。
胡说叔叔
相关分类