'ValueError: Initial condition y0 must be one-dimensional.' How do I rectify this error?

'ValueError: Initial condition y0 must be one-dimensional.' How do I rectify this error?

我在下面附上了我的代码,它是两个物体的模型 problem.I 尝试使用一维向量作为 odeint 函数的参数,但我仍然遇到错误。非常感谢您的建议。

tspan = np.linspace(0,p,(p/60.0)+1.0)
x0 = np.empty((6,1))
x0[0]=r[0]
x0[1]=r[1]
x0[2]=r[2]
x0[3]=v[0]
x0[4]=v[1]
x0[5]=v[2]
tspan = np.linspace(0,p,(p/60.0)+1.0)
x = odeint(ot.odetwobody,x0,tspan)
def odetwobody(x,t):
    mu = 398600.0
    r = np.sqrt(x[1]**2+x[2]**2+x[3]**2)
    xddot = np.empty((6,1))
    xddot[0] = x[3]
    xddot[1]=x[4]
    xddot[2]=x[5]
    xddot[3]=(-mu*x[0])/r**3
    xddot[4]=(-mu*x[1])/r**3
    xddot[5]=(-mu*x[2])/r**3
    return xddot

你的初始条件是x0。您只需要将它从强制的 2D-but-not-really x0 = np.empty((6,1)) 更改为完全 1d x0 = np.empty(6).