物理学の場の理論における N 体の問題から生じる ODE を解こうとしています。そのために、私は scipy.integrate.odeint 関数を使用することを考えました。次の場所にあるコードをいくつか書きました。
http://pastebin.com/yuBbEjwg (質問が最初に提起されてから更新)
ただし、実行しようとすると、次のエラーが発生します。
Traceback (most recent call last):
File "./main.py", line 87, in <module>
solution = odeint(ODE,XV0,t,args=(M,))
File "/usr/lib/python2.7/site-packages/scipy/integrate/odepack.py", line 143, in odeint
ixpr, mxstep, mxhnil, mxordn, mxords)
ValueError: object too deep for desired array
誰かが私が間違っていることを指摘できますか? そして、なぜ私のコードが機能しないのですか? また、私の場合、ode 関数と odeint 関数の使用に違いがあるかどうかを尋ねたかったのですか?
ありがとう。
EDIT : ばかげた間違い (shape() -> shape) を修正しました。それを指摘してくれた Talonmies に感謝します。上記のリンクは正しいスクリプトを指しているはずです。
EDIT 2 : odeint 関数が ODE 関数によって返されるタプルを好まないのではないかと疑っています。結合ベクトル ODE を解決する必要がある場合、タプルをフォーマットする方法について誰か助けてもらえますか? 私は、人々が結合 ODE またはベクトル ODE を解いているケースを見つけましたが、両方ではありません...
EDIT 3 : odeinit 関数に初期条件の行列を与え、ODE という名前の関数から返される行列が同じ次元の行列になるように例を作り直しました...ただし、同じエラーが発生します。