mercurial.simulation.integrator module

Numerical integration with fixed time steps and overflow protection.

class mercurial.simulation.integrator.IntegrationConfig(method: str = 'RK45', rtol: float = 1e-06, atol: float = 1e-09, max_step: float = 0.1, noise_amplitude: float = 0.01)[source]

Bases: object

atol: float = 1e-09
max_step: float = 0.1
method: str = 'RK45'
noise_amplitude: float = 0.01
rtol: float = 1e-06
class mercurial.simulation.integrator.StochasticIntegrator(config: IntegrationConfig)[source]

Bases: object

Methods

integrate_fixed_step(dynamics, ...)

Fixed-step Euler–Maruyama with overflow protection.

integrate

integrate(dynamics: Callable[[float, ndarray], ndarray], initial_state: ndarray, t_span: Tuple[float, float], noise_strength: ndarray) Dict[str, ndarray][source]
integrate_fixed_step(dynamics: Callable[[float, ndarray], ndarray], initial_state: ndarray, t_span: Tuple[float, float], dt: float, noise_strength: ndarray) Dict[str, ndarray][source]

Fixed-step Euler–Maruyama with overflow protection.