Skip to main content

differential equations - What method does NDSolve use for solving PDEs?


What is NDSolve's mode of operation? I use it to solve partial differential equations and never gave it too much thought. Recently, I came across this question. Accordingly, I used Trace[...] and realized that my 4th order, non linear partial differential equation was solved using an LSODA method.


Further digging revealed that LSODA is a method for ORDINARY DIFF EQS which chooses between Adams and BDF methods to solve the problem.


So... how in the first place did NDSolve convert my PDE to an ODE?



Any references would be useful.



Answer



Update: The answer below is for Mathematica 9 or earlier. Since version 10, Finite Element Methods are included:





The methods NDSolve uses are documented in detail here:



This section says that PDEs are solved using the "method of lines", and explains which kinds of problems this method can deal with. There's also a detailed example of how the method works.



The numerical method of lines is a technique for solving partial differential equations by discretizing in all but one dimension, and then integrating the semi-discrete problem as a system of ODEs or DAEs.



...


It is necessary that the PDE problem be well posed as an initial value (Cauchy) problem in at least one dimension, since the ODE and DAE integrators used are initial value problem solvers. This rules out purely elliptic equations such as Laplace's equation, but leaves a large class of evolution equations that can be solved quite efficiently.



Comments