What happens to an arbitrary pulse under the KdV equation — does it just disperse into noise, or does its eventual fate already encode a specific set of solitons at t=0?
▶ Launch the interactive simulationIntegrate the KdV equation u_t + 6u·u_x + u_xxx = 0 (the same Zabusky–Kruskal leapfrog as the soliton world) starting from a reflectionless pulse u(x,0)=N(N+1)λ²·sech²(λx) — here N=3, λ=0.4. Let it evolve until the humps separate, then measure each emergent soliton's height and spatial order, comparing to the inverse-scattering prediction a_n=2(nλ)².
inverse scattering (Gardner–Greene–Kruskal–Miura, 1967): the pulse sorts itself into EXACTLY N solitons — no leftover dispersive ripple for the reflectionless pulse — with quantized heights a_n = 2(nλ)², the bound-state spectrum of the Schrödinger operator whose potential is the initial pulse. The N=3 bump (height 1.92) splits into three solitons of heights 2.88 / 1.28 / 0.32 — a clean 9 : 4 : 1 (the squares 3² : 2² : 1²) — rank-ordered with the tallest in front (taller = faster, c = 2a). The soliton content is fixed at t=0; evolution merely unpacks it.