Duffing¶
Systems / ODEs / Chaotic attractors
A driven double-well oscillator — the textbook forced-chaos system with a fractal basin boundary.
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
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