Source code for probnum.diffeq.stepsize._propose_firststep
"""Propose a first step used for the ODE solver."""
import numpy as np
[docs]def propose_firststep(ivp):
"""Propose a suitable first step-size that can be taken by an ODE solver.
This function implements a lazy version of the algorithm on p. 169
of Hairer, Wanner, Norsett.
"""
norm_y0 = np.linalg.norm(ivp.y0)
norm_dy0 = np.linalg.norm(ivp.f(ivp.t0, ivp.y0))
return 0.01 * norm_y0 / norm_dy0