Аргумент t_eval
позволяет получить решение для разных временных точек.
Пример из документов:
from scipy.integrate import solve_ivp
def exponential_decay(t, y): return -0.5 * y
sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8])
sol.t
>>> array([ 0. , 0.11487653, 1.26364188, 3.06061781, 4.81611105,
6.57445806, 8.33328988, 10. ])
По умолчанию решатель возвращает произвольные моменты времени. Таким образом, добавив аргумент t_eval
, чтобы получить решения в определенные пользователем моменты времени:
t = np.linspace(0, 10, 50)
sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8], t_eval=t)
sol.t == t
>>> True
И решения в моменты времени sol.t
доступны sol.y
, как и раньше.