ソルバーを呼び出すときに、ソルバー自体が実行するさまざまな統合ステップを保存したかったのです。
solver1.integrate(t_end)
そのため、while ループを実行し、値を に設定する step オプションを有効にしましたTrue
。
while solver1.successful() and solver1.t < t0+dt:
solver1.integrate(t_end,step=True)
time.append(solver1.t)
y
次に、積分の結果であるをプロットすると、ここに問題が発生します。特定の領域に不安定性が表示されます :
ループなどのせいだと思ったので、結果を確認して次を削除しましたstep
:
while solver1.successful() and solver1.t < t0+dt:
solver1.integrate(t_end)
そして驚き...私は正しい結果を持っています:
これは非常に奇妙な状況です...誰かがこの問題で私を助けてくれればありがたいです.
編集 :
私が行うソルバーを設定するには:
solver1 = ode(y_dot,jac).set_integrator('vode',with_jacobian=True)
solver1.set_initial_value(x0,t0)
そして、私は結果を保存します.append()