mappy_ds.ContinuousMode#
- class mappy_ds.ContinuousMode(name, fun, borders=(), max_interval=20.0, in_trajectory=True, trajectory_dt=0.01, *, method='RK45', rtol=1e-06, atol=1e-09, **solver_options)#
A mode whose evolution follows an autonomous ODE until a border is hit.
- Parameters:
- namestr
Unique name of the mode.
- funSystemFunction
Right-hand side of the ODE, declared with
mappy_ds.vector_field().- borderssequence of SystemFunction, optional
Border functions declared with
mappy_ds.border(). Integration stops at the first zero crossing of any border (in the direction the border declares). With no borders the mode is the time-max_intervalflow map.- max_intervalfloat, optional
Upper bound of the integration time, by default
20.0.- in_trajectorybool, optional
Whether the mode contributes a trajectory segment, by default
True.- trajectory_dtfloat, optional
Sampling interval of recorded trajectories, by default
0.01.- method, rtol, atol, **solver_options
Forwarded to
scipy.integrate.solve_ivp().
Notes
When the Jacobian or Hessian is requested the variational equations
\[\dot J = D f(\varphi)\, J, \qquad \dot H_{ijk} = \sum_{l,m} (D^2 f)_{ilm} J_{lj} J_{mk} + \sum_l (Df)_{il} H_{ljk}, \qquad \dot P = D f(\varphi)\, P + \partial_p f(\varphi), \qquad \dot M_{ijm} = \sum_{l,r} (D^2 f)_{ilr} J_{lj} P_{rm} + \sum_l (\partial_p Df)_{ilm} J_{lj} + \sum_l (Df)_{il} M_{ljm}\]are integrated along with the state (\(P = \partial\varphi/\partial p\) when
param_keysis given, \(M = \partial^2\varphi/\partial y_0 \partial p\) whenmixed_hessianis also set), and the result is corrected for the dependence of the hitting time on the initial state and on the parameters (see the references).References
Y. Miino, “Mode concept to construct diffeomorphisms representing smooth/non-smooth dynamical systems”, NOLTA, IEICE 15(2), 284–298, 2024.
Properties
Names of the borders, in the order of
borders.Dimension of the state space the mode ends in.
Dimension of the state space the mode starts in.
Methods
step(y0[, params, jacobian, hessian, ...])Evolve
y0through the mode; seeMode.step().