/ proof-of-concept / chaos-toy-examples
Sign in
proof-of-concept / chaos-toy-examples
chaos-toy-examples / two-oscillators / README.md
4.0 KBPreviewCodeBlameHistoryRaw

Two oscillators with a quartic coupling#

H=12(px2+py2)+12(ω12x2+ω22y2)+βx2y2,ω1=1, β=1,H = \tfrac12 (p_x^2 + p_y^2) + \tfrac12 (\omega_1^2 x^2 + \omega_2^2 y^2) + \beta x^2 y^2, \qquad \omega_1 = 1, \ \beta = 1,

with ω2=1\omega_2 = 1 (equal frequencies, the system of Pullen and Edmonds 1981) or ω2=1.618\omega_2 = 1.618 (an inharmonic pair, closer to the plate). Since rescaling the variables by E\sqrt{E} leaves only βE\beta E, the energy EE is the single parameter, the analogue of the plate's strike strength.

model.py integrates many orbits at once with a fourth-order symplectic scheme (Yoshida's composition of leapfrog steps; energy conserved to 1e-6 or better over 1000 time units), optionally with damping p→p e−γΔtp \to p\, e^{-\gamma \Delta t}, and integrates the tangent dynamics for the largest Lyapunov exponent (Benettin's renormalization). An orbit counts as chaotic when its finite-time exponent over 2000 to 3000 time units exceeds 0.02; regular orbits give values near log⁡(t)/t≈0.005\log(t)/t \approx 0.005.

Results (2026-10-05)#

Poincare sections (results/sections.png; crossings of y=0y = 0 with py>0p_y > 0, in the (x,px)(x, p_x) plane). At low energy every orbit lies on a closed curve (a torus): the motion is quasi-periodic. As the energy grows, chaotic layers appear around the separatrices between families of tori, widen, and merge, until only small islands of regular motion remain.

Onset of chaos (results/lyapunov.png; 200 orbits per energy, 25 energies). Fraction of orbits that are chaotic:

E 0.42 0.56 0.75 1.0 1.3 1.8 2.4 3.2 5.6 10
ω2=1\omega_2 = 1 0 0.03 0.14 0.48 0.69 0.87 0.91 0.94 1.00 1.00
ω2=1.618\omega_2 = 1.618 0 0 0 0 0 0.17 0.60 0.81 0.96 0.98

The transition is gradual, not a sharp threshold, and the inharmonic pair needs about twice the energy before it starts: with equal frequencies the 1:1 resonance couples the two oscillators strongly from the start, while detuned oscillators exchange energy only through higher-order resonances. In the chaotic regime the Lyapunov exponent keeps growing with energy (median about 0.3 at E = 5 to 1.4 at E = 100 for ω2=1.618\omega_2 = 1.618): stronger excitation, faster separation, as in the plate.

A damped strike and its frozen outcome (results/damped.png; ω2=1.618\omega_2 = 1.618, γ=0.005\gamma = 0.005; damping the momenta by e−γΔte^{-\gamma \Delta t} makes the energy decay as e−γte^{-\gamma t}). Both oscillators start at rest with momentum 2E0\sqrt{2 E_0} in a fixed direction; an ensemble of 16 strikes differs in that direction by 10−1010^{-10} times the member index. At E0=0.5E_0 = 0.5 and E0=3E_0 = 3 the strike lands on a regular orbit: the local Lyapunov exponent decays to zero, and all 16 strikes end with the same split of the energy between the two oscillators (0.557 and 0.398 in the x oscillator). At E0=20E_0 = 20 the motion is chaotic for the first 300 to 600 time units (local exponent 0.4 to 0.8), the 16 strikes separate completely, and as the energy falls below about 1 each is captured by a regular orbit and keeps the split it happened to have. At the end the share of energy in the x oscillator ranges from 0.05 to 0.95 across strikes that differed by 10−1010^{-10} (standard deviation 0.31).

This is the plate's frozen fingerprint in its simplest form: a transient chaotic phase while the energy is high, capture onto a torus once damping has taken the energy below the onset of chaos, and a final state that is a random sample from a distribution, set by perturbations far below anything measurable. Note that E0=3E_0 = 3 lies where 81% of section orbits are chaotic, yet this particular strike is regular: whether a strike is chaotic depends on where in phase space it starts, not only on its energy.

Possible next steps#

↑↓ move↵openescclose