The Peaceman–Rachford ADI iteration attacks the 32×32 hot-rod/cold-rod Poisson problem (plate held at 0 on the boundary, +1 rod near the NW corner, −1 rod near the SE corner) by alternating two cheap exact solves: a rows pass that removes all row coupling (32 independent tridiagonal systems), then a columns pass that removes all column coupling. Drag the slider through 60 half-sweeps and watch each half-sweep wipe the error structure along its own direction — with the geometric-mean shift σ = √(λ1λn) the full double sweep contracts the error at asymptotic rate 0.826 (see report 13, §2.2).
Python reference: same Peaceman–Rachford recurrences from x₀ = 0
(scipy solveh_banded + sparse matvecs), rel l₂ error vs x* after
half-sweeps 1, 2, 10, 40; x* from plain CG at rel resid 10⁻¹³.
All numbers are computed in this page at load, in double
precision: b built on the 32×32 grid (h = 1/33, row-major), x* by plain CG with the 5-point
stencil matvec to rel resid 10⁻¹³, then 60 stored ADI half-sweeps from x₀ = 0 —
the same recurrences as python/experiments/make_report13_anims.py.
Back to report 13: preconditioning as decoupling.