Lorenz

experimental.network_dynamics.dynamics.Lorenz(**kwargs)

Lorenz chaotic dynamical system with multi-coupling support.

The classic three-dimensional chaotic system with support for structural coupling.

Notes

State equations:

\[ \begin{aligned} \frac{dx}{dt} &= \sigma(y - x) + c_{\text{structural}} \\ \frac{dy}{dt} &= x(\rho - z) - y \\ \frac{dz}{dt} &= xy - \beta z \end{aligned} \]

where \(c_{\text{structural}}\) is the structural coupling input.

Attributes

Name Type Description
STATE_NAMES tuple of str State variable names: ("x", "y", "z")
INITIAL_STATE tuple of float Default initial conditions: (1.0, 1.0, 1.0)
COUPLING_INPUTS dict Coupling specification: {'structural': 1} (single structural coupling to x)
DEFAULT_PARAMS Bunch Model parameters: sigma=10.0 (Prandtl number), rho=28.0 (Rayleigh number), beta=8/3 (geometric parameter)

Examples

>>> dynamics = Lorenz()
>>> dynamics = Lorenz(sigma=15.0, rho=30.0)

Methods

Name Description
dynamics Compute Lorenz system derivatives with coupling.

dynamics

experimental.network_dynamics.dynamics.Lorenz.dynamics(
    t,
    state,
    params,
    coupling,
    external,
)

Compute Lorenz system derivatives with coupling.

Parameters

Name Type Description Default
t float Current time (unused for autonomous system) required
state jnp.ndarray Current state with shape [3, n_nodes] containing (x, y, z) required
params Bunch Model parameters: sigma, rho, beta required
coupling Bunch Coupling inputs with attribute .structural[1, n_nodes] required
external Bunch External inputs (currently unused) required

Returns

Name Type Description
derivatives jnp.ndarray State derivatives with shape [3, n_nodes] containing (dx/dt, dy/dt, dz/dt)