Numerical Methods for PDEs

von Neumann stability analysis

/ fon NOY-mahn /

Lax tells you that for a linear scheme, convergence boils down to stability — but how do you actually check stability? Von Neumann analysis is the practical answer, and it is delightfully concrete. The idea: feed a single Fourier wave into the scheme and ask whether the scheme makes it grow or shrink from one time step to the next. If every possible wave stays bounded, the scheme is stable; if any wave grows, it will eventually dominate and blow the solution up.

Mechanically: assume an error of the form u(x, t) = G^n e^(i theta j), a wave of spatial frequency theta sitting at grid point j and time level n, where G is an unknown 'amplification factor'. Substitute this into the difference scheme; the spatial shifts turn into factors like e^(i theta) and e^(-i theta), which combine into cosines, and the whole thing collapses to a single equation for G as a function of theta. The stability requirement is simply |G(theta)| <= 1 for every frequency theta in [0, pi] (allowing |G| <= 1 + C dt if growth is genuinely expected). If |G| exceeds 1 for even one theta, that mode is amplified each step and the scheme is unstable.

Worked out for FTCS on the heat equation, you find G = 1 - 4r sin^2(theta/2). The worst case is theta = pi, giving G = 1 - 4r, and demanding |G| <= 1 forces r <= 1/2 — which is exactly the FTCS stability limit, now derived rather than guessed. The method is fast, requires no software, and explains WHY a limit takes the form it does. Its honest limitation: in its basic form it assumes constant coefficients and periodic (or infinite) boundaries — it ignores boundary effects and variable coefficients, so it is a necessary local condition, and real boundaries can sometimes spoil stability that the analysis predicts.

For the upwind scheme on u_t + a u_x = 0 (a > 0), one finds |G|^2 = 1 - 2 c(1-c)(1 - cos theta), where c = a dt/h is the Courant number. This is at most 1 precisely when 0 <= c <= 1 — recovering the CFL condition directly from the amplification factor.

The amplification factor turns a stability question into simple algebra.

Von Neumann analysis is strictly a LINEAR, constant-coefficient, no-boundary tool. Passing it is necessary but, for problems with real boundaries or variable coefficients, not always sufficient — boundary instabilities can sneak past it.

Also called
Fourier stability analysisamplification-factor analysis傅立葉穩定性分析放大因子分析