Lax–Friedrichs method
The Lax–Friedrichs method, named after Peter Lax and Kurt O. Friedrichs, is a numerical method for the solution of hyperbolic partial differential equations based on finite differences. The method can be described as the FTCS (forward in time, centered in space) scheme with an artificial viscosity term of 1/2. One can view the Lax–Friedrichs method as an alternative to Godunov's scheme, where one avoids solving a Riemann problem at each cell interface, at the expense of adding artificial viscosity.
Contents
Illustration for a Linear Problem
Consider a one-dimensional, linear hyperbolic partial differential equation for of the form:
on the domain
with initial condition
and the boundary conditions
If one discretizes the domain to a grid with equally spaced points with a spacing of
in the
-direction and
in the
-direction, we define
where
are integers representing the number of grid intervals. Then the Lax–Friedrichs method for solving the above partial differential equation is given by:
Or, rewriting this to solve for the unknown
Where the initial values and boundary nodes are taken from
Extensions to Nonlinear Problems
A nonlinear hyperbolic conservation law is defined through a flux function :
In the case of , we end up with a scalar linear problem. Note that in general,
is a vector with
equations in it. The generalization of the Lax-Friedrichs method to nonlinear systems takes the form[1]
This method is conservative and first order accurate, hence quite dissipative. It can, however be used as a building block for building high-order numerical schemes for solving hyperbolic partial differential equations, much like Euler time steps can be used as a building block for creating high-order numerical integrators for ordinary differential equations.
We note that this method can be written in conservation form:
where
Without the extra terms and
in the discrete flux,
, one ends up with the FTCS scheme, which is well known to be unconditionally unstable for hyperbolic problems.
Stability and accuracy
This method is explicit and first order accurate in time and second order accurate in space provided are sufficiently-smooth functions. Under these conditions, the method is stable if and only if the following condition is satisfied:
(A von Neumann stability analysis can show the necessity of this stability condition.) The Lax–Friedrichs method is classified as having second-order dissipation and third order dispersion (Chu 1978, pg. 304). For functions that have discontinuities, the scheme displays strong dissipation and dispersion (Thomas 1995, §7.8); see figures at right.
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found.
- ↑ LeVeque, Randy J. Numerical Methods for Conservation Laws", Birkhauser Verlag, 1992, p. 125.