Computing Library › Numerical Methods
Numerical Methods

Von Neumann Stability Analysis

Von Neumann analysis tests a linear scheme's stability by tracking how each Fourier mode's amplitude grows or decays per time step.

Fourier modes as a probe

Von Neumann analysis determines whether a finite-difference scheme for a linear, constant-coefficient PDE is stable. It assumes the error is a sum of Fourier modes and asks how each mode's amplitude changes in one time step. Substituting a single mode into the scheme gives an amplification factor G that depends on the wavenumber.

The stability criterion

Kronos motion — confinement time

The scheme is stable if |G| <= 1 for every wavenumber, so no mode grows without bound. If any mode has |G| > 1, that component of the error blows up exponentially and the computation fails. The analysis reduces stability to checking a magnitude over the range of representable wavenumbers.

python
import numpy as np
# FTCS for u_t = alpha u_xx: G(theta) = 1 - 4 r sin^2(theta/2)
def ftcs_max_amp(r):
    theta = np.linspace(0, np.pi, 200)
    G = 1 - 4*r*np.sin(theta/2)**2
    return np.max(np.abs(G))
print(ftcs_max_amp(0.5), ftcs_max_amp(0.6))  # stable r<=0.5

Classic results

The analysis yields sharp stability limits. Forward-time central-space (FTCS) for the heat equation is stable only when r = alpha dt/dx^2 <= 1/2. FTCS for pure advection is unstable for any step, which is why upwind or Lax-Wendroff schemes are used. These limits guide time-step selection directly.

Scope and limits

Von Neumann analysis strictly applies to linear constant-coefficient problems on periodic or infinite domains, where Fourier modes are exact. For variable coefficients, nonlinearity, or complex boundaries it is used as a local guide by freezing coefficients, still a valuable heuristic even where not rigorous.

Stability analysis of this kind underpins the choice of time steps and schemes for the discretized transport and field equations in breeder Hyperion simulations.