ABM Solver
Adams-Bashforth-Moulton predictor-corrector for fractional systems.
The Adams-Bashforth-Moulton (ABM) method is a standard, highly accurate predictor-corrector numerical scheme for solving fractional differential equations.
When to use ABM
While EFORK is fast and excellent for large sweeps, the ABM method provides superior accuracy over extremely long integration times. If you have located a hidden candidate with EFORK and want to verify its structure rigorously, or if you need to compute precise Lyapunov exponents, you should use the ABMSolver.
Because it evaluates the RHS function twice per step (once for the prediction, once for the correction), it is inherently slower than the explicit EFORK method.
Usage
The interface is identical to EFORKSolver:
from hidden_attractors.solvers import ABMSolver
from hidden_attractors.models import rhs_nonsmooth, chua_nonsmooth_parameters
params = chua_nonsmooth_parameters()
solver = ABMSolver(
rhs=lambda x, t: rhs_nonsmooth(x, params),
q=0.98, # Fractional order
dt=0.01, # Integration time step
memory=500 # Memory window
)
x0 = [0.1, 0.0, 0.0]
t_span = (0.0, 100.0)
t, x = solver.integrate(x0, t_span)
Supported Features
Like EFORK, the ABM solver supports:
- Batch Processing: Pass a 2D array of initial conditions to integrate multiple trajectories simultaneously.
- C Backend Acceleration: Automatically compiles a C/OpenMP backend for massive speedups.
- Sliding Memory: Uses a truncated history window to prevent memory overflows during long simulations.