Dormand–Prince method

In numerical analysis, the Dormand–Prince (RKDP) method or DOPRI method, is an explicit method for solving ordinary differential equations (Dormand & Prince 1980). 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 chose 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 extrapolation (Shampine 1986; Hairer, Nørsett & Wanner 2008, pp. 178–179).

Dormand–Prince is currently the default method in the ode45 solver for MATLAB and GNU Octave and is the default choice for the Simulink's model explorer solver. It is an option in Scipy's ODE integration library.[1] Fortran,[2] Java, [3] and C++[4] implementations are also available.

The Butcher tableau is:

0
1/51/5
3/103/409/40
4/544/45−56/1532/9
8/919372/6561−25360/218764448/6561−212/729
19017/3168−355/3346732/524749/176−5103/18656
135/3840500/1113125/192−2187/678411/84
35/3840500/1113125/192−2187/678411/840
5179/5760007571/16695393/640−92097/339200187/21001/40

The first row of b coefficients gives the fifth-order accurate solution, and the second row gives an alternative solution which, when subtracted from the first solution, yields the error estimate.

Notes

gollark: ⁡
gollark: Did you know? 2 (2! (two (²))) is one of the integers ever.
gollark: Actually, they don't require predation, as apiodemonstrated by that.
gollark: Actually, ? is the unary select operator.
gollark: βee, as they say.

References

  • Software implementation in MATLAB: https://www.mathworks.com/help/matlab/ref/ode45.html
  • Implementation in GNU Octave: https://octave.org/doc/interpreter/Matlab_002dcompatible-solvers.html#Matlab_002dcompatible-solvers
  • Implementation in Python (programming language) : https://web.archive.org/web/20150907215914/http://adorio-research.org/wordpress/?p=6565
  • Dormand, J. R.; Prince, P. J. (1980), "A family of embedded Runge-Kutta formulae", Journal of Computational and Applied Mathematics, 6 (1): 19–26, doi:10.1016/0771-050X(80)90013-3.
  • Dormand, John R. (1996), Numerical Methods for Differential Equations: A Computational Approach, Boca Raton: CRC Press, pp. 82–84, ISBN 0-8493-9433-3.
  • Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard (2008), Solving ordinary differential equations I: Nonstiff problems, Berlin, New York: Springer-Verlag, ISBN 978-3-540-56670-0.
  • Shampine, Lawrence F. (1986), "Some Practical Runge-Kutta Formulas", Mathematics of Computation, American Mathematical Society, 46 (173): 135–150, doi:10.2307/2008219, JSTOR 2008219.

Further reading

  • Engstler, C., & Lubich, C. (1997). MUR8: a multirate extension of the eighth-order Dormand-Prince method. Applied numerical mathematics, 25(2-3), 185-192.
  • Calvo, M., Montijano, J. I., & Randez, L. (1990). A fifth-order interpolant for the Dormand and Prince Runge-Kutta method. Journal of Computational and Applied Mathematics, 29(1), 91-100.
  • Aristoff, J. M., Horwood, J. T., & Poore, A. B. (2014). Orbit and uncertainty propagation: a comparison of Gauss–Legendre-, Dormand–Prince-, and Chebyshev–Picard-based approaches. Celestial Mechanics and Dynamical Astronomy, 118(1), 13-28.
  • Seen, W. M., Gobithaasan, R. U., & Miura, K. T. (2014, July). GPU acceleration of Runge Kutta-Fehlberg and its comparison with Dormand-Prince method. In AIP Conference Proceedings (Vol. 1605, No. 1, pp. 16-21). AIP.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.