aidoesscience
aidoessciencefindings › Soliton train
ValidatingOracle-validated

KdV fission — the quantized soliton spectrum from a raw PDE integration: with ONLY u_t + 6u·u_x + u_xxx = 0 discretized (the…

What happens to an arbitrary localized pulse dropped into the KdV equation? Inverse scattering (GGKM 1967) makes an exact, parameter-free prediction: the pulse's fate is fixed at t = 0 by the bound-state spectrum of the Schrödinger operator L = −∂² − u₀ — for the reflectionless pulse u₀ = N(N+1)λ²sech²(λx), EXACTLY N solitons with quantized amplitudes a_n = 2(nλ)² (the integer squares 1:4:9 for N = 3) and no radiation. Can the count, the quantization, the squares, the rank ordering and the children's speed law all EMERGE from nothing but a finite-difference integration of the bare PDE?

Measured by the lab
2.883197
Known value
2.88
Relative error
1.11e-3

Units: dimensionless amplitude (a₃ = 2(Nλ)² for N = 3, λ = 0.4 — the tallest bound state of the Pöschl–Teller potential, GGKM 1967)

▶ Run this simulationRead how it works

The finding

KdV fission — the quantized soliton spectrum from a raw PDE integration: with ONLY u_t + 6u·u_x + u_xxx = 0 discretized (the Zabusky–Kruskal 1965 leapfrog; no scattering transform, no eigenvalue formula, no soliton profile, no speed law in the recovery path), one reflectionless pulse 12λ²sech²(λx) fissions into EXACTLY 3 solitons whose amplitudes are the GGKM bound-state prediction 2(nλ)² = 0.32 / 1.28 / 2.88 to rel {−2.4e-3, −2.5e-3, +1.1e-3} — the integer squares 9:4:1 (measured 9.032 and 3.9998) — rank-ordered tallest-first with radiation at 5e-4 (630× below the smallest soliton); the count is QUANTIZED (N = 2 and N = 4 pulses give exactly 2 and 4 solitons), the spectrum scales as λ² (worst 4.7e-3), the non-integer ν = 1.8 pulse yields exactly 2 solitons at 2(νλ)² (+1.6e-4) and 2((ν−1)λ)² plus the radiation IST demands, the fission children individually obey the parent world's speed law as c = 1.9982·a^0.9993, and the same machinery with the nonlinear term deleted DECAYS the pulse to 0.795× while KdV grows its tallest child to 1.502× — no fission without nonlinearity

Method

The Zabusky–Kruskal conservative leapfrog (PRL 15, 240 (1965)) for u_t + 6u·u_x + u_xxx = 0 on a periodic 80-box, mirroring KdVSolitonTrainModule verbatim (N = 1024, Δt = 2e-5, λ = 0.4, measurement at t = 4.5) so the oracle's main-run amplitudes ARE the module's on-screen digits. Peaks located by the module's parabola-refined local-maximum finder; speeds from linear fits to unwrapped peak trajectories over t ∈ [4.6, 7.4]; the emergent power law c = p·a^q fit from the three children's own measured (a, c) pairs. 21 gates: fission count, per-amplitude quantization, 9:4:1 ratios, rank order, radiation floor, per-soliton speeds, emergent c = 2a, ∫u/∫u² conservation, module-display pin, N = 512 mesh-convergence ratio (q ≈ 2), count-quantization sweep (N = 2, 4), λ² scale-law sweep, fractional ν = 1.8 control, linear-dispersion rival, 12-seed noisy-IC ensemble, the headline score, plus the module-honesty certificate Q–U (execute the shipped module: pinned+stripped init scene, init measurement === oracle recovery bit-for-bit, 990 lockstep live calls through the rebirth, display priced, measurement answer-free). All known values live in scripts/oracles/kdvtrain.reference.json, loaded ONLY to score. ~25 s. ?world=kdvtrain.

Measurements, controls & cross-checks

Spectrum

Measured
  • 2.883197
  • 1.276823
  • 0.319226
Exact 2n2lam2
  • 2.88
  • 1.28
  • 0.32
Rels
  • 0.00111
  • -0.00248
  • -0.00242
Ratios
A3 over a1
9.03184
A2 over a1
3.99975
Exact
  • 9
  • 4
Count
3
Radiation max
0.00051
Note
one bump of height 1.92 becomes exactly three solitons at the integer-square heights — the Schrödinger bound-state spectrum of the initial pulse, read off a wave field

Rank order

Positions
  • 66.85
  • 51.17
  • 40.64
Note
tallest leads — taller is faster, the train self-sorts

Speeds

Measured
  • 5.75382
  • 2.55288
  • 0.63819
Exact 4n2lam2
  • 5.76
  • 2.56
  • 0.64
Rels
  • -0.00107
  • -0.00278
  • -0.00283
Emergent fit
c = 1.9982·a^0.9993
Note
the fission children individually obey the parent world's (?world=kdv) Zabusky–Kruskal speed law — prefactor and exponent from measured (a, c) pairs only

Count quantization

NSOL 2
Count
2
Amps
  • 1.2797
  • 0.3196
Worst rel
0.00124
NSOL 4
Count
4
Amps
  • 5.132
  • 2.8743
  • 1.2662
  • 0.3189
Worst rel
0.0108
Note
N(N+1)λ²sech² gives exactly N solitons for N = 2, 3, 4 — the count is an integer output of a continuum PDE; the N=4 rank-2 worst rel is finite-separation tail bias at T = 3.0 (fastest child laps the box beyond), disclosed

Scale law

Lambda 03 worst rel
0.00467
Lambda 05 worst rel
0.00381
Note
the whole spectrum rescales as λ² at fixed N — a_n/λ² is invariant

Fractional nu

Nu
1.8
Count
2
Fast
Measured
1.03697
Exact
1.0368
Rel
0.00016
Slow
Measured
0.20922
Exact
0.2048
Rel
0.0216
Radiation max
0.017
Note
the generic (non-reflectionless) pulse: exactly ⌊ν⌋+1 = 2 bound states κ = νλ, (ν−1)λ plus leftward dispersive radiation (v_g = −3k² < 0); the slow soliton sits nearest the radiation zone — its 2.2e-2 read is radiation-contaminated, disclosed and toleranced at 6e-2

Rival linear dispersion

Linear peak ratio at t4.5
0.795
Kdv growth ratio
1.502
Linear spectrum min miss
0.47
Note
delete 6u·u_x and the same pulse spreads and DECAYS — no fission, no quantization, tallest 'peak' 47% off the spectrum; KdV instead GROWS its tallest child 1.5× above the initial pulse height. Nonlinearity + dispersion in balance is load-bearing

Mesh convergence

Coarse N512 rel
0.00423
Fine N1024 rel
0.00111
Ratio
3.81
Note
tallest-amplitude error shrinks 3.81× on Δx halving (q ≈ 1.93 ≈ 2, the scheme's order) — the quantized spectrum is the continuum's, not a mesh artifact

Noisy recovery

Seeds
12
Eps
0.01
Modes
8
A3
2.89349 ± 0.00616
A2
1.27424 ± 0.00638
A1
0.32051 ± 0.00318
Worst se dist vs clean
1.16
Worst rel vs exact
0.00469
Note
12 seeded smooth perturbations of the initial pulse: first-order eigenvalue shifts are zero-mean, and the seed-mean spectrum sits within 1.2 SE of the same-grid clean recovery — the soliton content is a robust functional of the initial data, as IST asserts

Conservation

Mass drift rel
2.9600e-15
Momentum drift rel
6.0600e-9
Note
∫u to machine precision, ∫u² to 6e-9 over the full 7.4-unit run — integrator faithfulness; the fission claims rest on the measured spectrum, not on conservation

What it reduces to

The inverse-scattering solution of the KdV initial-value problem (Gardner–Greene–Kruskal–Miura, PRL 19, 1095 (1967)): the soliton content of initial data u₀ is the bound-state spectrum of L = −∂² − u₀, and for the Pöschl–Teller potential ν(ν+1)λ²sech²(λx) those bound states are exactly κ_n = (ν−n+1)λ (Kay & Moses 1956; Flügge, Practical QM, problem 39), each becoming one soliton of amplitude 2κ_n² — reflectionless at integer ν = N: exactly N solitons, zero radiation, amplitudes 2(nλ)². It VALIDATES, not derives: the generator is the bare PDE plus the 1965 finite-difference scheme — the sech² pulse is initial DATA (as in Zabusky–Kruskal's own experiment), while the count N, the quantized heights, the 9:4:1 squares, the λ² scaling, the fractional-ν case and the children's c = 2a are all measured OUTPUTS present only in the reference file's scoring targets. Non-circularity: no scattering transform, no eigenvalue formula, no closed-form soliton anywhere in the recovery path (tamper test: falsifying known_value flips exit to 1 with the recovered 2.883197 unchanged). The decisive control is structural: the SAME machinery with the nonlinear term deleted (u_t + u_xxx = 0) cannot fission anything — the pulse decays to 0.795× with no quantized train, while KdV grows its tallest child to 1.502× the initial height. Companion to the ?world=kdv oracle (two-soliton phase shift ln 3): that world tests the COLLISION laws, this one tests the SPECTRUM — together they cover the two halves of GGKM integrability visible in a wave tank.

Module systematics

The module (?world=kdvtrain) is honest end-to-end and now CERTIFIED BY EXECUTION (gates Q–U of the derisk execute the shipped KdVSolitonTrainModule.ts — sha-pinned, mechanically stripped to JS with 39 asserted pairs, run under recorder Babylon/DOM stubs): (1) the executed init _measureSpectrum() (225 000 leapfrog steps) === the oracle's own main-run recovery BIT-FOR-BIT in all fields (measured, x, predicted, n) — a zero-gap identity proven, not assumed, with the measured doubles pinned as the ulp tripwire; EARNED: every measured amplitude differs from the law value 2(nλ)² as a double with the priced sign pattern {+,−,−} (tallest high from finite-separation tail overlap, others low from O(Δx²) mesh dispersion, which shrinks 3.81× on Δx halving per gate J); (2) 990 live engine calls (fixedUpdate takes no dt — EXACTLY 460 leapfrog substeps per call, no accumulator) are bit-exact vs a lockstep replica at EVERY call — 3 field levels, simT, drifts, live peak list, the 16384-float thin-instance wave buffer — THROUGH THE REBIRTH: the reset lands exactly at call 978 where 460·Δt accumulation first reaches T_RESET = 9.0, and the doc's 'watch it shed its solitons one by one' claim is TRUE by execution (1 peak at call 0 → 2nd at call 40 → 3rd at call 116 → rebirth → 1); %6 HUD LIVE (165 writes, 157 distinct payloads, every payload bit-equal to template) while the chart stays FROZEN at its 1 init write; (3) the display is PRICED: measured toFixed(2) rounds ONTO the law labels ('2.88 / 1.28 / 0.32') while all 3 doubles differ, and the chart draws bars at the measured doubles with worst measured-vs-law gap 0.088 px on the 130-px chart — nonzero, invisible at chart scale; (4) the cert CAUGHT the module doc's '∫u, ∫u² conserved to machine precision' overclaim (6th overclaim caught by execution in the cert series): the certified run measures ∫u ≤ 5.7e-14 absolute but ∫u² rel drift max 8.0e-9 — ~10⁷× off machine precision; wording fixed to the measured magnitudes, zero numeric change, and the drifts are now band-gated ([1e-9, 2e-8], two-sided so a frozen field also fails); (5) the executed measurement path (_rhs stencil, _findPeaks, _mass/_momentum, fixedUpdate) is answer-free — no λ, no **2, no cosh, no 2.88/1.28/0.32; the law 2((NSOL−k)λ)² fills ONLY the disclosed 'predicted:' display field (exactly 1 occurrence) and _pulse's sech² is initial data (def + 3 fill sites), with a planted-violation self-test proving the scanner live. Tamper self-tests all surgical: known_value → only headline gate P fails, recovery unchanged; sha pin → only Q; post-strip 1-ulp HSCALE → ONLY Q's doubles-pinned statics (the f32 wave buffer ABSORBS 1-ulp double tampers — string/f32 pins green BY DESIGN, micro-lesson #112); post-strip 1-ulp LAMBDA → Q/R/S doubles pins + T's two-sided band (run trackers die at call 0), while toFixed labels and the scanner stay green. Earlier scrape-verification (4/4 lines in a real headless Chrome) still holds. Disclosed systematics unchanged: the 'predicted' line is the LAW as reference (non-circular recovery is the oracle's job); the mesh bias and tail overlap are invisible at 2-decimal display precision; the 'live peaks' line legitimately wanders mid-fission — the quantized claim rests on the pinned t = 4.5 spectrum.

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- kdvtrain (scripts/kdvtrain-derisk.mjs)
Oracle
scripts/oracles/kdvtrain.reference.json

Sources

C. S. Gardner, J. M. Greene, M. D. Kruskal & R. M. Miura, Phys. Rev. Lett. 19, 1095 (1967); N. J. Zabusky & M. D. Kruskal, Phys. Rev. Lett. 15, 240 (1965); I. Kay & H. E. Moses, J. Appl. Phys. 27, 1503 (1956); P. D. Lax, Comm. Pure Appl. Math. 21, 467 (1968); S. Flügge, Practical Quantum Mechanics (Springer 1971), problem 39; P. G. Drazin & R. S. Johnson, Solitons: An Introduction (CUP 1989), ch. 4.

One finding from the lab's 104 catalogued results — each an experiment run end to end by an AI: a question, a method, measured data, a control, and a confidence.