Measuring the gap between the Melnikov threshold and the period-doubling cascade in the damped driven pendulum

Elliot Jung
2026-07-10 · Pendulum Lab numerical laboratory (TypeScript engine, externally cross-validated)

Abstract. The damped driven pendulum θ̈ = −sin θ − γθ̇ + A cos(ωt) (ω = 0.6667) carries two distinct, frequently conflated notions of a “chaos threshold”: the analytic Melnikov amplitude Ac(γ), above which first-order perturbation theory predicts a transverse homoclinic tangle, and the period-doubling onset APD(γ), where the primary period-1 attractor begins the Feigenbaum cascade that produces the sustained chaotic attractor. We measure APD over γ ∈ [0.1, 0.8] with an attractor-strobed bisection refined by the Floquet multiplier of the Newton periodic orbit (onset interpolated at ρ = −1), and compare it with the closed-form Ac. The ratio APD/Ac falls monotonically from 2.38 at γ = 0.1 to 0.987 at γ = 0.8, and the widely quoted ordering Ac < APD reverses near γ ≈ 0.69: at low damping the tangle precedes the cascade by a wide and rapidly growing margin, while at strong damping the cascade begins below the first-order Melnikov prediction. At the literature point γ = 0.5 our measurement APD = 1.0664 agrees with the published 1.0663 (Baker & Gollub) to four digits. A reduced-grid frequency scan (ω = 0.5, 0.85) and a Duffing double-well companion map show the same monotone gap closure — with the crossing damping itself moving with drive frequency — so the reversal is a robust property of the first-order threshold, not an artifact of the classic parameter point.

1. Introduction

The sinusoidally driven, damped pendulum is the canonical low-dimensional route to chaos, and it supports two different analytic/numerical landmarks as the drive amplitude A grows. The Melnikov method gives a closed-form first-order threshold Ac = (4γω₀/π)·cosh(πω/2ω₀) above which the stable and unstable manifolds of the hilltop saddle intersect transversally, creating a Smale-horseshoe tangle. The tangle guarantees transient chaos and fractal basin boundaries — not a chaotic attractor. The sustained chaotic attractor instead appears at the end of a period-doubling cascade of the primary period-1 response, whose onset APD is a property of a specific attractor branch and has no closed form. Textbooks typically note Ac < APD at the classic parameter point γ = 0.5, ω = 2/3. This paper asks the quantitative question: how does the gap between the two thresholds behave as damping is varied?

2. Methods

All computations use the open Pendulum Lab engine, whose equations of motion are validated component-wise against an independent SymPy symbolic derivation (max relative deviation ≈ 10−14) and whose trajectories are cross-validated against SciPy DOP853 at rtol = 10−13; the engine also reproduces published anchors (elliptic pendulum period, double-pendulum normal modes, and the γ = 0.5 period-doubling onset). The drive is made autonomous by carrying the phase as a third coordinate; integration is RK4 with dt = 0.005 snapped so an integer number of steps spans one drive period exactly.

APD measurement. For each γ, the drive amplitude is marched upward from 0.9·Ac with the strobed state warm-started at every step, so the measurement follows the physically realised attractor branch (this matters: the symmetric period-1 orbit pitchforks before the cascade, and a Newton continuation of the symmetric orbit would miss the doubling of the symmetry-broken branch the attractor actually follows). The loss of period-1 stability is bisected on the strobe map (transients of 300–600 drive periods; period detected in the (sin θ, cos θ, ω) embedding, immune to 2π winding). The bracket is then refined by Newton periodic orbits seeded from the attractor: the most negative real Floquet multiplier ρ(A) of the orbit is interpolated through ρ = −1. A measurement is accepted as a period doubling only when this crossing is verified; otherwise the loss is reported as non-PD. Halving dt changes the γ = 0.5 onset by |Δ| ≈ 7.1e-13, so discretisation error is negligible at the quoted precision.

Corroboration. At 0.97·APD and 1.08·APD the Gottwald–Melbourne 0–1 test is applied to the cos θ strobe series (700 samples): K ≈ 0 confirms regular motion below onset; the value above onset depends on whether 1.08·APD lands beyond the cascade accumulation point or inside a periodic window, and is reported without prejudice.

3. Results

0.20.40.60.800.511.5A_c(γ) Melnikov (analytic)A_PD(γ) measured (Floquet ρ = −1)Baker & Gollub (γ = 0.5): 1.0663damping γdrive amplitude A
Figure 1. The analytic Melnikov threshold Ac(γ) (red line) and the measured period-doubling onset APD(γ) (green circles, Floquet-refined). The star is the published γ = 0.5 value 1.0663 (Baker & Gollub); our measurement at that point is 1.06637. Ac is exactly linear in γ; the measured cascade onset is not. Certification artifact: reports/flagship-figure1.svg, SHA-256 prefix 07f877d6fdb816; numerical rows and uncertainty brackets are cross-referenced in Appendix A.
0.20.40.60.811.251.51.7522.25A_PD / A_c (measured / analytic)damping γA_PD / A_c
Figure 2. The ratio APD/Ac versus damping. The gap closes monotonically with increasing γ and crosses 1 near γ ≈ 0.69: beyond this damping the period-doubling cascade of the primary attractor begins below the Melnikov tangle threshold. At γ = 0.1 the cascade requires 138% more drive than the tangle.
11.11.21.31.41.5-3-2-10123A_cA_PDdrive amplitude Astrobe θ (rad)
Figure 3. Strobe bifurcation diagram at γ = 0.5 (θ sampled once per drive period after a 250-period transient, warm-started in A). The dashed lines mark Ac (red) and the measured APD (green). Between them the motion is periodic but the phase space already contains the homoclinic tangle: transient chaos and fractal basin boundaries without a strange attractor. The cascade, chaotic band, and the large periodic (rotating) window are visible beyond APD.
γA_c (Melnikov)A_PD (measured)A_PD/A_closs of period-1K at 0.97·AK at 1.08·A
0.100.203750.483982.3753PD (ρ → −1)0.021.00
0.150.305630.530801.7367PD (ρ → −1)0.021.00
0.200.407510.590041.4479PD (ρ → −1)0.02-0.01
0.250.509390.658291.2923PD (ρ → −1)-0.021.00
0.300.611260.732941.1991PD (ρ → −1)0.020.06
0.350.713140.812171.1389PD (ρ → −1)-0.021.00
0.400.815020.894701.0978PD (ρ → −1)0.02-0.01
0.450.916900.979641.0684PD (ρ → −1)-0.02-0.01
0.501.018771.066371.0467PD (ρ → −1)-0.021.00
0.551.120651.154481.0302PD (ρ → −1)-0.021.00
0.601.222531.243681.0173PD (ρ → −1)-0.011.00
0.651.324411.333771.0071PD (ρ → −1)0.02-0.01
0.701.426281.424630.9988PD (ρ → −1)0.02-0.57
0.751.528161.516220.9922PD (ρ → −1)0.020.13
0.801.630041.608530.9868PD (ρ → −1)0.021.00

4. Discussion

Three regimes emerge. (i) Low damping (γ ≲ 0.2): Ac → 0 linearly while the cascade onset of the primary resonance remains an order-one amplitude, so the ratio diverges (2.38 already at γ = 0.1). The window of “tangle but no strange attractor” — long chaotic transients and fractal basin boundaries below a still-periodic attractor — is widest here, and the phase space is visibly multistable (see §5). (ii) Moderate damping: the textbook ordering Ac < APD holds, but the margin shrinks steadily (to 5% at γ = 0.5). (iii) Strong damping (γ ≳ 0.69): the measured cascade begins below the first-order Melnikov prediction. This is not a contradiction — the Melnikov threshold is asymptotically exact only as γ, A → 0, and by γ ≈ 0.7 the perturbation parameter is O(1) — but it sharpens the usual caveat into a measured boundary: the first-order formula stops being even an ordering bound near γ ≈ 0.69.

The 0–1 test values corroborate the structural picture: K ≈ 0 on the period-1 side everywhere, while above onset K depends on where 1.08·APD falls relative to the cascade accumulation point and the periodic windows visible in Figure 3 — both outcomes occur in the table, as expected for a Feigenbaum scenario with embedded windows.

5. Beyond one frequency and one system

Two extensions probe whether the closing gap is an artifact of the classic parameter point. First, a reduced-grid frequency scan repeats the full Floquet-refined measurement at ω = 0.5 and ω = 0.85. The shape survives: the ratio falls monotonically with damping at every frequency, and the crossing damping γ* moves with ω — at ω = 0.85 the gap is still open at γ = 0.8 (ratio 1.096), while at ω = 0.5 the measured points at γ = 0.65 and 0.8 already sit below 1 (0.941, 0.927). At ω = 0.5, γ = 0.2; ω = 0.5, γ = 0.35; ω = 0.5, γ = 0.5 the primary branch loses period-1 stability without a verified ρ = −1 crossing, and those points are reported as unclassified rather than forced into the map.

0.20.40.60.811.251.51.7522.25ω = 0.50ω = 0.6667ω = 0.85damping γA_PD / A_c
Figure 4. APD/Ac versus damping at three drive frequencies (Floquet-refined points only). The monotone closure persists at every ω, and the ratio-1 crossing shifts with frequency — the reversal is a property of the first-order threshold itself, not of ω = 2/3.

Second, the same question is posed to a different system: the symmetric Duffing double well ẍ = −δẋ + x − x³ + Γcos(t). The closed-form Melnikov threshold Γ_c(δ) (derived and quadrature-verified in the engine, reducing to the Guckenheimer–Holmes expression at α = −1, β = 1) is compared with the marched/bisected loss of period-1 stability of the confined single-well attractor. There is no Newton–Floquet refinement for the Duffing flow yet, so Γ_PD is quoted as a bisection bracket midpoint — honestly wider than the pendulum's interpolated onsets, though the brackets themselves are ~10⁻⁸ wide.

0.150.20.250.30.3500.10.20.30.4Γ_c(δ) Melnikov (analytic)Γ_PD(δ) measured (bisection bracket)damping δdrive amplitude Γ
Figure 5. The Duffing double-well gap map: analytic Γc(δ) (red) versus the measured period-doubling onset ΓPD(δ) (green). The ratio falls from 2.24 at δ = 0.15 to 1.071 at δ = 0.35 — the same monotone closure as the pendulum, in a system with a polynomial (non-pendulum) nonlinearity.
δΓ_c (Melnikov)Γ_PD (measured)δΓ_PDΓ_PD/Γ_cK at 0.97·ΓK at 1.08·Γ
0.150.112950.253011.7e-82.2400-0.011.00
0.200.150600.258612.3e-81.71720.031.00
0.250.188250.264982.9e-81.40760.021.00
0.300.225910.273073.4e-81.2088-0.021.00
0.350.263560.282324.0e-81.0712-0.021.00

The 0–1 test corroborates every Duffing onset (K ≈ 0 below, K ≈ 1 above — the cascade accumulates quickly in the double well at these parameters). Together the two extensions upgrade the paper's claim from "the thresholds cross at one classic parameter point" to "first-order Melnikov ordering degrades with damping across drive frequencies and across systems".

6. Limitations and reproducibility

The main grid fixes ω = 2/3 (the frequency scan of §5 samples ω = 0.5 and 0.85 on a reduced γ grid) and follows a single attractor branch per γ (warm-started in A); coexisting attractors reached from other initial conditions may double elsewhere. At the lowest dampings the phase space is multistable enough that a finer warm-started march can hop basins before the doubling — at γ = 0.15 a basin-capture transition of the followed state was observed near A ≈ 0.49 (the orbit itself remains strongly stable there, ρ ≈ +0.29), below the verified doubling at 0.531. The quoted APD values are therefore specifically the ρ = −1 doublings of the primary oscillating branch, not necessarily the first event of any kind along a slow amplitude sweep. The Melnikov comparison concerns the first-order formula specifically — higher-order or numerical manifold computations would move Ac. The full study regenerates with npm run paper:study (~8 min) followed by npm run flagship:certify, npm run flagship:external, and npm run paper:build; the engine tests and independent symbolic/trajectory validations are in the same repository.

Appendix A. Certified onset localization

The flagship claim is not that Melnikov theory predicts the attractor cascade. It is a measured separation map: A_c is analytic first-order geometry, A_PD is a Floquet-refined attractor-branch instability, and the reported reversal is bounded by the exported caveat map and the independent Python A_PD probes. The ratio crossing is localized to γ ∈ [0.69296963, 0.69297705], with point estimate 0.69297334. The Figure 1 hash is 07f877d6fdb816.

γA_cA_PDδA_PDA_PD/A_cρ belowρ abovecaveat
0.100.2037550.4839841.24e-72.375324-0.94620-1.05181none
0.150.3056320.5308021.87e-71.736736-0.94374-1.05618none
0.200.4075100.5900452.49e-71.447928-0.94028-1.06052post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD
0.250.5093870.6582883.11e-71.292314-0.93675-1.06459none
0.300.6112650.7329443.73e-71.199062-0.93298-1.06741post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD
0.350.7131420.8121744.35e-71.138868-0.93122-1.07077none
0.400.8150190.8947004.97e-71.097765-0.92990-1.07295post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD
0.450.9168970.9796365.60e-71.068426-0.92844-1.07334post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD
0.501.0187741.0663736.22e-71.046721-0.92894-1.07417none
0.551.1206521.1544856.84e-71.030191-0.92980-1.07403none
0.601.2225291.2436827.46e-71.017303-0.93128-1.07337none
0.651.3244071.3337718.08e-71.007071-0.93336-1.07236post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD
0.701.4262841.4246358.71e-70.998844-0.93602-1.07112post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD
0.751.5281611.5162209.33e-70.992186-0.94002-1.07052post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD
0.801.6300391.6085339.95e-70.986807-0.93970-1.06492none

Appendix B. Independent Python APD reproduction

Python stdlib recomputation of A_c, crossing arithmetic, and selected A_PD values via RK4 strobe-map Newton/Floquet search. The analytic threshold agrees with maximum absolute error 0.00e+0. All selected period-doubling checks passed: yes.

γreported A_PDPython A_PD|Δ|ρ lowρ highstatus
0.501.066372861.066372925.92e-8-0.9999996-1.0000004pass
0.651.333771041.333771094.89e-8-0.9999995-1.0000003pass
0.701.424634961.424635014.84e-8-0.9999996-1.0000004pass

Independent-check caveat. A_PD checks use finite-difference monodromy and a coarser dt than the TypeScript flagship run, so they certify independent reproducibility at reviewer-kit tolerance, not bitwise equality.

Appendix C. Artifact integrity and caveat ledger

ArtifactReproduceCross-reference
reports/paper-study.jsonnpm run paper:studyFigures 1-3, main table
reports/flagship-certification.jsonnpm run flagship:certifyFigure 1 hash 07f877d6fdb816; Appendix A
reports/flagship-external-check.jsonnpm run flagship:externalAppendix B
paper/paper.pdfnpm run paper:buildThis manuscript

Caveat map. gamma=0.20: post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD gamma=0.30: post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD gamma=0.40: post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD gamma=0.45: post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD gamma=0.65: post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD gamma=0.70: post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD gamma=0.75: post-onset 0-1 sample is not cleanly chaotic at 1.08*A_PD Error bars combine attractor-bracket width with the available dt-sensitivity probe; they are a localization contract, not a full Bayesian posterior. Basin caveats are inferred from the exported 0-1 strobe probes; they flag multistability/transient-chaos risk but do not replace a full basin scan.

References

G. L. Baker and J. P. Gollub, Chaotic Dynamics: An Introduction, 2nd ed., Cambridge University Press (1996).

J. Guckenheimer and P. Holmes, Nonlinear Oscillations, Dynamical Systems, and Bifurcations of Vector Fields, Springer, §4.5 (1983).

V. K. Melnikov, “On the stability of the center for time-periodic perturbations,” Trans. Moscow Math. Soc. 12, 1–57 (1963).

G. A. Gottwald and I. Melbourne, “On the implementation of the 0–1 test for chaos,” SIAM J. Appl. Dyn. Syst. 8, 129–145 (2009).

M. J. Feigenbaum, “Quantitative universality for a class of nonlinear transformations,” J. Stat. Phys. 19, 25–52 (1978).