En análisis numérico , el método Dormand-Prince ( RKDP ) o método DOPRI , es un método integrado para resolver ecuaciones diferenciales ordinarias ( Dormand y Prince 1980 ). El método es un miembro de la familia Runge-Kutta de solucionadores de ODE. Más específicamente, utiliza seis evaluaciones de funciones para calcular soluciones precisas de cuarto y quinto orden. La diferencia entre estas soluciones se considera entonces como el error de la solución (de cuarto orden). Esta estimación de error es muy conveniente para los algoritmos de integración de tamaños de pasos adaptativos. Otros métodos de integración similares son Fehlberg (RKF) y Cash – Karp (RKCK).
El método Dormand-Prince tiene siete etapas, pero usa solo seis evaluaciones de función por paso porque tiene la propiedad FSAL (First Same As Last): la última etapa se evalúa en el mismo punto que la primera etapa del siguiente paso. Dormand y Prince eligieron los coeficientes de su método para minimizar el error de la solución de quinto orden. Ésta es la principal diferencia con el método de Fehlberg, que se construyó para que la solución de cuarto orden tenga un pequeño error. Por esta razón, el método Dormand-Prince es más adecuado cuando se usa la solución de orden superior para continuar la integración, una práctica conocida como extrapolación local ( Shampine 1986 ; Hairer, Nørsett & Wanner 2008 , pp. 178-179).
Dormand – Prince es actualmente el método predeterminado en el ode45
solucionador para MATLAB y GNU Octave y es la opción predeterminada para el solucionador del explorador de modelos de Simulink . Es una opción en la biblioteca de integración ODE de SciPy . [1] TensorFlow , [2] Fortran , [3] Java , [4] C ++ , [5] y Jax , [6] también están disponibles implementaciones.
El cuadro de Butcher es:
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 | ||
35/384 | 0 | 500/1113 | 125/192 | −2187/6784 | 11/84 | 0 | ||
5179/57600 | 0 | 7571/16695 | 393/640 | −92097/339200 | 187/2100 | 1/40 |
La primera fila de coeficientes b da la solución precisa de quinto orden, y la segunda fila da una solución alternativa que, cuando se resta de la primera solución, produce la estimación del error.
Notas
- ^ https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.ode.html
- ^ https://www.tensorflow.org/probability/api_docs/python/tfp/math/ode
- ^ http://www.unige.ch/~hairer/prog/nonstiff/dopri5.f
- ^ https://commons.apache.org/proper/commons-math/javadocs/api-3.0/org/apache/commons/math3/ode/nonstiff/DormandPrince853Integrator.html
- ^ https://www.boost.org/doc/libs/1_53_0/libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_dopri5.html
- ^ https://github.com/google/jax/blob/master/jax/experimental/ode.py#L145-L258
Referencias
- Implementación de software en MATLAB : https://www.mathworks.com/help/matlab/ref/ode45.html
- Implementación en GNU Octave : https://octave.org/doc/interpreter/Matlab_002dcompatible-solvers.html#Matlab_002dcompatible-solvers
- Implementación en Python (lenguaje de programación) : https://web.archive.org/web/20150907215914/http://adorio-research.org/wordpress/?p=6565
- Dormand, JR; Prince, PJ (1980), "Una familia de fórmulas integradas de Runge-Kutta", Journal of Computational and Applied Mathematics , 6 (1): 19-26, doi : 10.1016 / 0771-050X (80) 90013-3.
- Dormand, John R. (1996), Métodos numéricos para ecuaciones diferenciales: un enfoque computacional , Boca Raton: CRC Press , págs. 82–84, ISBN 0-8493-9433-3.
- Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard (2008), Resolución de ecuaciones diferenciales ordinarias I: Problemas no rígidos , Berlín, Nueva York: Springer-Verlag , ISBN 978-3-540-56670-0.
- Shampine, Lawrence F. (1986), "Algunas fórmulas prácticas de Runge-Kutta", Matemáticas de la computación , American Mathematical Society, 46 (173): 135-150, doi : 10.2307 / 2008219 , JSTOR 2008219.
Otras lecturas
- Engstler, C. y Lubich, C. (1997). MUR8: una extensión de múltiples velocidades del método Dormand-Prince de octavo orden. Matemáticas numéricas aplicadas, 25 (2-3), 185-192.
- Calvo, M., Montijano, JI y Randez, L. (1990). Interpolante de quinto orden para el método Dormand y Prince Runge-Kutta. Revista de matemáticas computacionales y aplicadas , 29 (1), 91-100.
- Aristoff, JM, Horwood, JT y Poore, AB (2014). Propagación de la órbita y la incertidumbre: una comparación de los enfoques basados en Gauss-Legendre-, Dormand-Prince- y Chebyshev-Picard. Mecánica celeste y astronomía dinámica, 118 (1), 13-28.
- Visto, WM, Gobithaasan, RU y Miura, KT (julio de 2014). Aceleración GPU de Runge Kutta-Fehlberg y su comparación con el método Dormand-Prince. En AIP Conference Proceedings (Vol. 1605, No. 1, págs. 16-21). AIP.