Skip to content

MultiChua

Systems · Continuous · Chaotic attractors

Ring of n_circuits Chua circuits coupled through their x-variables.

Dimension: variable

Equations

@staticmethod
def _equations(Y, t, *, alpha, beta, m0, m1, kappa, n_circuits):
    """
    Right-hand side of the MultiChua model.

    X: State vector [x1, y1, z1, x2, y2, z2, ..., xn, yn, zn]
    """
    dim = 3 * n_circuits
    dXdt = [None] * dim

    for i in range(n_circuits):
        # Extract indices for the current circuit
        x_idx = 3 * i
        y_idx = x_idx + 1
        z_idx = x_idx + 2

        # State variables for this circuit
        x = Y(x_idx)
        y = Y(y_idx)
        z = Y(z_idx)

        # Coupled neighbor indices (periodic boundary conditions)
        x_prev = Y((x_idx - 3) % dim)  # Previous x (cyclic indexing)
        x_next = Y((x_idx + 3) % dim)  # Next x (cyclic indexing)

        # Nonlinear Chua diode function
        ramp_x = m1 * x + 0.5 * (m0 - m1) * (abs(x + 1) - abs(x - 1))

        # Chua equations with coupling
        xdot = alpha * (y - x - ramp_x) + kappa * (x_next - x_prev)
        ydot = x - y + z
        zdot = -beta * y

        # Assign derivatives
        dXdt[x_idx] = xdot
        dXdt[y_idx] = ydot
        dXdt[z_idx] = zdot

    return dXdt

Parameters

parameter default
alpha 15.6
beta 28.0
m0 -1.143
m1 -0.714
kappa 0.1
n_circuits 3

MultiChua attractor

Usage

import tsdynamics as ts

sys = ts.MultiChua()
traj = sys.integrate(final_time=100.0, dt=0.01)

Back to Chaotic attractors