Lax–Wendroff method
The Lax–Wendroff method is a second‑order, explicit finite‑difference scheme for hyperbolic partial differential equations. It solves equations of the form u_t + f(u)_x = 0, with x and t as independent variables and an initial state u(x,0) given.
Linear case
If f(u) = A u with constant A, the update is:
u_i^{n+1} = u_i^n − (Δt/(2Δx)) A [u_{i+1}^n − u_{i−1}^n] + (Δt^2/(2Δx^2)) A^2 [u_{i+1}^n − 2u_i^n + u_{i−1}^n].
Here i indexes space and n indexes time.
Nonlinear case
For a nonlinear flux, in conservative form the method becomes:
u_i^{n+1} = u_i^n − (Δt/(2Δx)) [ f(u_{i+1}^n) − f(u_{i−1}^n) ]
+ (Δt^2/(2Δx^2)) [ A_{i+1/2} (f(u_{i+1}^n) − f(u_i^n))
− A_{i−1/2} (f(u_i^n) − f(u_{i−1}^n)) ],
where A_{i±1/2} is the Jacobian f′(u) evaluated at the average state (u_i^n + u_{i±1}^n)/2. To avoid computing the Jacobian, one can use a two‑step approach due to Richtmyer:
Richtmyer two‑step Lax–Wendroff
First step (compute fluxes at half time and half grid points):
u_{i+1/2}^{n+1/2} = ½(u_{i+1}^n + u_i^n) − (Δt/(2Δx)) [ f(u_{i+1}^n) − f(u_i^n) ],
u_{i−1/2}^{n+1/2} = ½(u_i^n + u_{i−1}^n) − (Δt/(2Δx)) [ f(u_i^n) − f(u_{i−1}^n) ].
Second step (update using the half‑step values):
u_i^{n+1} = u_i^n − (Δt/Δx) [ f(u_{i+1/2}^{n+1/2}) − f(u_{i−1/2}^{n+1/2}) ].
MacCormack method (predictor–corrector)
One common variant:
- Predictor (forward differencing):
u_i^* = u_i^n − (Δt/Δx) [ f(u_{i+1}^n) − f(u_i^n) ].
- Corrector (centered averaging):
u_i^{n+1} = ½(u_i^n + u_i^*) − (Δt/(2Δx)) [ f(u_i^*) − f(u_{i−1}^*) ].
A second, equivalent form uses a left‑biased predictor:
- Predictor: u_i^* = u_i^n − (Δt/Δx) [ f(u_i^n) − f(u_{i−1}^n) ].
- Corrector: u_i^{n+1} = ½(u_i^n + u_i^*) − (Δt/(2Δx)) [ f(u_i^*) − f(u_{i−1}^*) ].
These variants are all explicit, second‑order accurate in space and time, and are widely used for solving hyperbolic problems.
This page was last edited on 3 February 2026, at 12:00 (CET).