aidoesscience
aidoesscience › KdV solitons
Validating · validations

Solitons · Korteweg–de Vries

Can a wave keep its exact shape forever — and can two waves collide and pass through each other completely unchanged?

Solitons · Korteweg–de Vries simulation running in the browser

▶ Run the simulationSee the measured result

Measured by the lab
1.098552
Known value
1.0986123
Relative error
5.52e-5

Units: dimensionless (κ₁Δx₁ = ln((κ₁+κ₂)/(κ₁−κ₂)) = ln 3 for κ₁ = 1, κ₂ = 0.5 — Lax 1968)

How the lab tests it

Integrate the KdV equation u_t + 6u·u_x + u_xxx = 0 (Zabusky–Kruskal conservative leapfrog, periodic box). Launch single solitons u=(c/2)sech²[…] of several heights and track each peak to recover speed c vs amplitude a; then collide a tall soliton with a short one and watch what survives. Conserved ∫u and ∫u² confirm the integrator is faithful — the soliton itself is established by the speed law and the intact pass-through.

What it checks

YES to both — a soliton, where nonlinear steepening (6u·u_x) exactly balances dispersion (u_xxx). Its speed is PROPORTIONAL to its amplitude, c = 2a, so a taller hump runs faster (the lab recovers the line c=2a); and when the tall soliton catches the short one they merge into a single lump then re-emerge with their ORIGINAL shapes and speeds — only a small phase shift — because the interaction is integrable, not mere superposition. This shape-preserving, pass-through behaviour is exactly what Zabusky & Kruskal found in 1965 explaining the FPUT recurrence, coining the word 'soliton'. (∫u, ∫u² conserved to ~1e-8 — the integrator is faithful; the soliton claim rests on the measured speed law and pass-through, not conservation alone)

Soliton speed, width & phase-shift calculator (KdV)

A soliton has one parameter, not three. Fix its height and its speed and its width are already decided — c = 2a and a·w² = 2 — which is why a solitary wave behaves like a particle instead of a wave packet, and why two of them can collide and come out unchanged. Nothing this calculator is about is typed into it: the only thing declared here is the profile u = 2κ²sech²(κ(x−4κ²t)), and the speed law's factor of 2, the FWHM's arccosh(√2) and the phase shift's ln 3 are each assembled from it at runtime — the same refusal to inject the answer that makes the simulation above non-circular, since that integration discretizes u_t + 6u·u_x + u_xxx = 0 and nothing else, with no soliton formula, no speed law and no scattering theory anywhere in its recovery path. Three numbers here are this lab's own measurements rather than textbook values: the measured-speed box defaults to 1.9986874, which is what the shipped module actually reads for its a = 1.0 soliton, so it inverts to a = 0.999344 rather than to a tidy 1 — the −0.066% of O(Δx²) mesh dispersion the finding prices rather than hides; the collision direction at κ₁ = 1, κ₂ = 0.5 reports the raw integration's 1.098552 against the exact ln 3; and the linear-rival direction reports the 0.573 peak collapse the same integrator produces once the 6u·u_x term is deleted. Four things this lab does NOT measure, so the calculator does not pretend to: physical units — every number here lives in the scaled frame the equation is integrated in, and carrying a soliton into a real channel needs the shallow-water scaling (Russell's √(g(h+a)) and the depth ratio a/h) that no gate above tests; dissipation, since viscosity, bottom friction and surface tension are absent from the PDE and are exactly why Russell's wave of translation eventually died out on the Union Canal; everything beyond two solitons in one dimension, so the pairwise-additive N-soliton shifts and the transverse (KP) instability that breaks a 1-D soliton into segments in a real basin are out of scope; and the continuous spectrum — arbitrary initial data resolves into solitons PLUS a dispersive radiation tail, while every run above launches exact sech² data, which is the one shape that produces no tail at all.

a = 2κ², c = 4κ² = 2a, w = 1/κ, a·w² = 2 · Δx₁ = ln((κ₁+κ₂)/(κ₁−κ₂))/κ₁, Δx₂ = −Δx₁·κ₁/κ₂ · centre height 2(κ₁²−κ₂²) · linear rival: ω = −k³

—
This simulation has a catalogued, oracle-checked result: The KdV soliton phase shift.