我希望在调用求解器时,能够存储其自身所采取的不同集成步骤:
solver1.integrate(t_end)
因此,我使用while循环,并启用了步骤选项设置,将其值设置为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()
存储结果。