Dormand–Prince method
From Wikipedia, the free encyclopedia
In numerical analysis, Dormand–Prince is a method for solving ordinary differential equations (ODEs). The method is a member of the Runge–Kutta family of ODE solvers. More specifically, it uses six function evaluations to calculate fourth- and fifth-order accurate solutions. The difference between these solutions is then taken to be the error of the (fourth-order) solution. This error estimate is very convenient for adaptive stepsize integration algorithms. Other similar integration methods are Fehlberg (RKF) and Cash–Karp (RKCK).
The Dormand–Prince method has seven stages, but it uses only six function evaluations per step because it has the FSAL (First Same As Last) property: the last stage is evaluated at the same point as the first stage of the next step. Dormand and Prince choose the coefficients of their method to minimize the error of the fifth-order solution. This is the main difference with the Fehlberg method, which was constructed so that the fourth-order solution has a small error. For this reason, the Dormand–Prince method is more suitable when the higher-order solution is used to continue the integration, a practice known as local interpolation (Hairer, Nørsett & Wanner 1993).
Dormand–Prince is currently the default method in MATLAB and GNU Octave's ode45 solver and is the default choice for the Simulink's model explorer solver. An Fortran free software implementation of the algorithm called DOPRI5 is also available.[1]
The Butcher tableau is:
0 | ||||||||
1/5 | 1/5 | |||||||
3/10 | 3/40 | 9/40 | ||||||
4/5 | 44/45 | −56/15 | 32/9 | |||||
8/9 | 19372/6561 | −25360/2187 | 64448/6561 | −212/729 | ||||
1 | 9017/3168 | −355/33 | 46732/5247 | 49/176 | −5103/18656 | |||
1 | 35/384 | 0 | 500/1113 | 125/192 | −2187/6784 | 11/84 | ||
5179/57600 | 0 | 7571/16695 | 393/640 | −92097/339200 | 187/2100 | 1/40 | ||
35/384 | 0 | 500/1113 | 125/192 | −2187/6784 | 11/84 | 0 |
The first row of b coefficients gives the fifth-order accurate solution, and the second row has order four.
[edit] Notes
[edit] References
- Free software implementation in GNU Octave : http://octave.sourceforge.net/doc/f/ode45.html
- Dormand J, Prince P. A family of embedded Runge–Kutta formulae. Journal of Computational and Applied Mathematics, Volume 6, pages 19–26 (1980)
- Hairer, Ernst; Nørsett, Syvert Paul & Wanner, Gerhard (1993), Solving ordinary differential equations I: Nonstiff problems, Berlin, New York: Springer-Verlag, ISBN 978-3-540-56670-0