Numerical Solution of the Advection Partial Differential Equation: Finite Differences, Fixed Step Methods
![]() It is hard to find reliable numerical methods for the solution of partial differential equations (PDEs). Often they turn out to be either unstable or strongly diffusive, giving inaccurate solutions even to simple equations. that describes the propagation of an unchanging shape at constant speed . Trivially, this equation is solved by any function .To solve it numerically we approximate to a discrete solution defined in a rectangular grid, . For the spatial derivative we use a first-order, centered approximation We can think now of many discrete approximations for the time derivative. The simplest one is the explicit Euler discretization: Then we arrive at the method usually abbreviated FTCS (forward in time, centered in space). Unfortunately, this discretization turns out to be numerically unstable for any value of and .A first improvement to the FTCS scheme would be to replace the term in the time discretization by an average . This approach, often called the Lax method, is equivalent to adding an artificial diffusion term to the advection equation. The resulting scheme is now stable if it satisfies the Courant–Friedrichs–Lewy condition:where is called the Courant number. However, since we are adding an artificial diffusive term, the scheme becomes too diffusive and therefore inaccurate when . The Lax method gives optimal results for .Fortunately, the differential equation solver of Mathematica, NDSolve, comes with many numerical schemes that avoid the shortcomings of the FTCS and Lax methods. In this Demonstration you can choose some of these methods with a fixed-step time discretization. ![]() "Numerical Solution of the Advection Partial Differential Equation: Finite Differences, Fixed Step Methods" from The Wolfram Demonstrations Project http://demonstrations.wolfram.com/NumericalSolutionOfTheAdvectionPartialDifferentialEquationFi/ Contributed by: Alejandro Luque Estepa | ||||||||||||||
![]() | ||
|
|
||































Browse all topics















