lyapunov_spectrum
experimental.network_dynamics.analysis.lyapunov_spectrum(
network,
solver=None,
t=1000.0,
n=10,
k=None,
dt=0.1,
t0=0.0,
mode='jvp',
d0=1e-09,
)Estimate the Lyapunov spectrum of a network.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| network | Network | required | |
| solver | solver instance, optional (default: Heun()) | None |
|
| t | float — segment duration in ms | 1000.0 |
|
| n | int — number of rescaling steps | 10 |
|
| k | int — number of exponents to compute (default: all D) | None |
|
| dt | float — integration timestep in ms | 0.1 |
|
| t0 | float — simulation start time | 0.0 |
|
| mode | str — "jvp" (default) uses tangent-space propagation via | jax.linearize; exact and efficient for differentiable systems. “sim” uses finite-difference with d0-scaled perturbations; works for non-differentiable systems. | 'jvp' |
| d0 | float — perturbation magnitude (only used when mode="sim") | 1e-09 |
Returns
| Name | Type | Description |
|---|---|---|
| jnp.ndarray — top k Lyapunov exponents sorted descending (1/ms) |
Notes
Exact for instantaneous (non-delayed) coupling only. Both modes propagate a point state (perturb/linearize only initial_state.dynamics) and reset the delay history buffer each rescaling step, so for delayed coupling the history is held fixed across segments: a good approximation only when t >> max_delay, not the true DDE spectrum (which would need tangents spanning the augmented history-buffer state).