私は下のコードを添付しました。これは2体の問題のモデルです。私は1Dベクトルをodeint関数の引数として使用しようとしましたが、まだエラーに直面しています。提案は非常に高く評価されています。'ValueError:初期条件y0は1次元でなければなりません。'このエラーを修正するにはどうすればよいですか?
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
通常、エラーを取得する場所(行)を指定すると便利です。 –
プログラムコールodeint –