2017-11-13 9 views
0

私は下のコードを添付しました。これは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 
+0

通常、エラーを取得する場所(行)を指定すると便利です。 –

+0

プログラムコールodeint –

答えて

0

初期条件はx0です。強制2Dから実際にはx0 = np.empty((6,1))から完全に1d x0 = np.empty(6)に変更するだけです。

+0

Worked、Perfect!のエラーが表示されます。すぐにお返事ありがとうございます! –

+0

問題はありません!これが解決されたという回答を受け入れてください:) – Perfi

関連する問題