Skip to content

Duffing

Systems / ODEs / Chaotic attractors

A driven double-well oscillator — the textbook forced-chaos system with a fractal basin boundary.

continuous · ODE3 dimensionsforcedchaotic

Interactive: drag to rotate

Definition

\[ \begin{aligned} \dot{x} &= y \\ \dot{y} &= - \alpha x^{3} - \beta x - \delta y + \gamma \cos{\left(z \right)} \\ \dot{z} &= \omega \end{aligned} \]

Parameters

Symbol Default Role
alpha 1 linear stiffness coefficient
beta -1 cubic stiffness coefficient (negative = double well)
delta 0.1 linear damping coefficient
gamma 0.35 amplitude of the periodic forcing
omega 1.4 angular frequency of the periodic forcing

State variables: x, y, z

Properties

Lyapunov spectrum
≥ 1 positive exponent (literature — chaotic double-well regime (Ueda 1979); the exact value of the leading exponent and the analytic exponent sum -delta are pinned in tests/test_catalogue_literature.py)
Kaplan–Yorke dimension
TODO — requires a numeric Lyapunov spectrum
Divergence ∇·f
$\nabla\!\cdot f = - \delta$
constant
Equilibria
none found (no equilibria)

Use it in TSDynamics

import tsdynamics as ts

system = ts.systems.Duffing()
traj = system.run(final_time=100.0, dt=0.01)
ts.plot(traj)

spectrum = ts.analysis.lyapunov_spectrum(system)
ts.analysis.kaplan_yorke_dimension(spectrum)

Reference

Duffing (1918), Erzwungene Schwingungen bei veränderlicher Eigenfrequenz, Vieweg, Braunschweig

BibTeX
@misc{duffing,
  title = {Duffing system},
  note = {Duffing (1918), Erzwungene Schwingungen bei veränderlicher Eigenfrequenz, Vieweg, Braunschweig}
}