Можно ли сделать один шаг с интегратором scipy ODE? Мне известен аргумент step
для scipy.integrate.ode.integrate
, но я не могу понять, как установить аргумент t
таким образом, чтобы он гарантированно выполнял ровно один полный шаг. Очевидный выбор — t=inf
, но это приводит к ошибке ODE::
from scipy.integrate import ode
obj = ode(lambda t, y: -y)
obj.set_initial_value(1)
y_new = obj.integrate(inf, step=True)
-
DVODE-- At T (=R1) and step size H (=R2), the
corrector convergence failed repeatedly
or with abs(H) = HMIN
In above, R1 = 0.0000000000000D+00 R2 = Infinity
C:\Anaconda3\lib\site-packages\scipy\integrate\_ode.py:869: UserWarning:
vode: Repeated convergence failures. (Perhaps bad Jacobian supplied or
wrong choice of MF or tolerances.)
'Unexpected istate=%s' % istate))
Если я использую t=0
, то ОДУ вообще не продвигается. Я могу выбрать конечное положительное число, но гарантируется ли это полным шагом и перешагиванием t
, если t
меньше полного шага? Я пишу общую библиотеку и не знаю, какой будет типичный размер шага.