stringtranslate.com

Método de Dormand-Prince

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 (EDO). [1] El método es miembro de la familia Runge–Kutta de solucionadores de EDO. Más específicamente, utiliza seis evaluaciones de funciones para calcular soluciones precisas de cuarto y quinto orden. La diferencia entre estas soluciones se toma entonces como el error de la solución (de cuarto orden). Esta estimación de error es muy conveniente para algoritmos de integración de tamaño de paso adaptativo. Otros métodos de integración similares son Fehlberg (RKF) y Cash–Karp (RKCK).

El método de Dormand-Prince tiene siete etapas, pero utiliza solo seis evaluaciones de funciones por paso porque tiene la propiedad "First Same As Last" (FSAL): 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. Esta es la principal diferencia con el método de Fehlberg, que fue construido de manera que la solución de cuarto orden tenga un pequeño error. Por esta razón, el método de Dormand-Prince es más adecuado cuando se utiliza la solución de orden superior para continuar la integración, una práctica conocida como extrapolación local . [2] [3]

Cuadro de carnicero

El cuadro del Carnicero es:

La primera fila de coeficientes b da la solución precisa de quinto orden, y la segunda fila da la solución precisa de cuarto orden.

Aplicaciones

Dormand–Prince es el método predeterminado en el ode45solucionador de MATLAB [4] y GNU Octave [5] 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 de ODE SciPy de Python [6] y en la biblioteca de solucionadores de ODE de Julia (lenguaje de programación) . [7] También están disponibles implementaciones para los lenguajes Fortran , [8] Java , [9] y C++ [10] .

Notas

  1. ^ Dormand, JR; Prince, PJ (1980). "Una familia de fórmulas Runge-Kutta integradas". Revista de Matemática Computacional y Aplicada . 6 (1): 19–26. doi :10.1016/0771-050X(80)90013-3.
  2. ^ Shampine, Lawrence F. (1986). "Algunas fórmulas prácticas de Runge-Kutta". Matemáticas de la computación . 46 (173): 135–150. doi : 10.2307/2008219 . JSTOR  2008219.
  3. ^ Hairer, Ernst; Wanner, Gerhard; Nørsett, Syvert P. (1993). Resolución de ecuaciones diferenciales ordinarias I. Springer Series in Computational Mathematics. Vol. 8. Berlín, Heidelberg: Springer Berlin Heidelberg. doi :10.1007/978-3-540-78862-1. ISBN 978-3-540-56670-0.
  4. ^ "Resolver ecuaciones diferenciales no rígidas: método de orden medio - MATLAB ode45". www.mathworks.com . Consultado el 24 de agosto de 2023 .
  5. ^ "Solucionadores compatibles con Matlab (GNU Octave (versión 8.3.0))". octave.org . Consultado el 24 de agosto de 2023 .
  6. ^ "scipy.integrate.RK45 — Manual de SciPy v1.11.2". docs.scipy.org . Consultado el 24 de agosto de 2023 .
  7. ^ "Solucionadores de ecuaciones diferenciales ordinarias · DifferentialEquations.jl". docs.sciml.ai . Consultado el 24 de agosto de 2023 .
  8. ^ Hairer, Ernst. "Fortran Codes". www.unige.ch . Consultado el 24 de agosto de 2023 .
  9. ^ "DormandPrince54Integrator (Apache Commons Math 4.0-beta1)". commons.apache.org . Consultado el 24 de agosto de 2023 .
  10. ^ "Plantilla de clase runge_kutta_dopri5 - 1.53.0". www.boost.org . Consultado el 24 de agosto de 2023 .

Referencias

Libros

Lectura adicional

Artículos