Pendientes utilizadas por el método clásico de Runge-Kutta
El miembro más conocido de la familia Runge-Kutta generalmente se conoce como "RK4", el "método clásico de Runge-Kutta" o simplemente como "el método de Runge-Kutta".
Aquí hay una función desconocida (escalar o vectorial) del tiempo , que nos gustaría aproximar; se nos dice que la velocidad a la que cambia es función de sí misma. En el momento inicial el valor correspondiente es . Se dan la función y las condiciones iniciales .
Ahora elegimos un tamaño de paso h > 0 y definimos:
para n = 0, 1, 2, 3, ..., usando [3]
( Nota: las ecuaciones anteriores tienen definiciones diferentes pero equivalentes en diferentes textos. [4] )
Aquí está la aproximación RK4 de , y el siguiente valor ( ) está determinado por el valor actual ( ) más el promedio ponderado de cuatro incrementos, donde cada incremento es el producto del tamaño del intervalo, h , y una pendiente estimada especificada por función f en el lado derecho de la ecuación diferencial.
es la pendiente al inicio del intervalo, utilizando ( método de Euler );
es la pendiente en el punto medio del intervalo, usando y ;
es nuevamente la pendiente en el punto medio, pero ahora usando y ;
es la pendiente al final del intervalo, usando y .
Al promediar las cuatro pendientes, se da mayor peso a las pendientes en el punto medio. Si es independiente de , de modo que la ecuación diferencial es equivalente a una integral simple, entonces RK4 es la regla de Simpson . [5]
En muchas aplicaciones prácticas, la función es independiente de (el llamado sistema autónomo o sistema invariante en el tiempo, especialmente en física), y sus incrementos no se calculan en absoluto y no se pasan a la función , y solo se utiliza la fórmula final.
Métodos explícitos de Runge-Kutta
La familia de métodos explícitos de Runge-Kutta es una generalización del método RK4 mencionado anteriormente. esta dado por
donde [6]
( Nota: las ecuaciones anteriores pueden tener definiciones diferentes pero equivalentes en algunos textos. [4] )
Para especificar un método particular, es necesario proporcionar el número entero s (el número de etapas) y los coeficientes a ij (para 1 ≤ j < i ≤ s ), b i (para i = 1, 2, ..., s ) y ci ( para i = 2, 3, ..., s ). La matriz [ a ij ] se llama matriz de Runge-Kutta , mientras que b i y c i se conocen como pesos y nodos . [7] Estos datos generalmente se organizan en un dispositivo mnemotécnico, conocido como cuadro de Butcher (en honor a John C. Butcher ):
Una expansión en serie de Taylor muestra que el método de Runge-Kutta es consistente si y sólo si
También existen requisitos que lo acompañan si se requiere que el método tenga un cierto orden p , lo que significa que el error de truncamiento local es O ( h p +1 ). Estos pueden derivarse de la definición del propio error de truncamiento. Por ejemplo, un método de dos etapas tiene orden 2 si b 1 + b 2 = 1, b 2 c 2 = 1/2 y b 2 a 21 = 1/2. [8] Tenga en cuenta que una condición popular para determinar coeficientes es [9]
Sin embargo, esta condición por sí sola no es suficiente ni necesaria para la coherencia.[10]
En general, si un método de Runge-Kutta de etapas explícitas tiene orden , entonces se puede demostrar que el número de etapas debe satisfacer , y si , entonces . [11]
Sin embargo, no se sabe si estos límites son nítidos en todos los casos. En algunos casos, está demostrado que no se puede alcanzar el límite. Por ejemplo, Butcher demostró que para , no existe un método explícito con etapas. [12] Butcher también demostró que para , no existe un método explícito de Runge-Kutta con etapas. [13] En general, sin embargo, sigue siendo un problema abierto cuál es el número mínimo preciso de etapas para que un método explícito de Runge-Kutta tenga orden . Algunos valores que se conocen son: [14]
El límite demostrable anterior implica entonces que no podemos encontrar métodos de órdenes que requieran menos etapas que los métodos que ya conocemos para estas órdenes. El trabajo de Butcher también demuestra que los métodos de séptimo y octavo orden tienen un mínimo de 9 y 11 etapas, respectivamente. [15] [16] Un ejemplo de un método explícito de orden 6 con 7 etapas se puede encontrar en. [17] Los métodos explícitos de orden 7 con 9 etapas [18] y los métodos explícitos de orden 8 con 11 etapas [19] son también conocido. Ver referencias. [20] [21] para un resumen.
Ejemplos
El método RK4 entra en este marco. Su cuadro es [22]
Una ligera variación del método Runge-Kutta también se debe a Kutta en 1901 y se llama regla de los 3/8. [23] La principal ventaja que tiene este método es que casi todos los coeficientes de error son más pequeños que en el método popular, pero requiere un poco más de FLOP (operaciones de punto flotante) por paso de tiempo. Su cuadro del Carnicero es
Sin embargo, el método de Runge-Kutta más simple es el método de Euler (directo) , dado por la fórmula . Este es el único método explícito de Runge-Kutta consistente con una etapa. El cuadro correspondiente es
Métodos de segundo orden con dos etapas.
El método explícito del punto medio proporciona un ejemplo de un método de segundo orden con dos etapas :
El cuadro correspondiente es
El método del punto medio no es el único método de Runge-Kutta de segundo orden con dos etapas; existe una familia de tales métodos, parametrizada por α y dada por la fórmula [24]
Su cuadro del Carnicero es
En esta familia, se da el método del punto medio, es el método de Heun , [5] y es el método de Ralston.
Usar
Como ejemplo, considere el método de Runge-Kutta de segundo orden en dos etapas con α = 2/3, también conocido como método de Ralston . Está dado por el cuadro.
con las ecuaciones correspondientes
Este método se utiliza para resolver el problema de valor inicial.
con un tamaño de paso h = 0,025, por lo que el método debe seguir cuatro pasos.
El método procede de la siguiente manera:
Las soluciones numéricas corresponden a los valores subrayados.
Métodos adaptativos de Runge-Kutta
Los métodos adaptativos están diseñados para producir una estimación del error de truncamiento local de un único paso de Runge-Kutta. Esto se hace teniendo dos métodos, uno con orden y otro con orden . Estos métodos están entrelazados, es decir, tienen pasos intermedios comunes. Gracias a esto, estimar el error tiene un costo computacional pequeño o insignificante en comparación con un paso con el método de orden superior.
Durante la integración, el tamaño del paso se adapta de manera que el error estimado se mantenga por debajo de un umbral definido por el usuario: si el error es demasiado alto, se repite un paso con un tamaño de paso más bajo; si el error es mucho menor, el tamaño del paso aumenta para ahorrar tiempo. Esto da como resultado un tamaño de paso (casi) óptimo, lo que ahorra tiempo de cálculo. Además, el usuario no tiene que perder tiempo buscando el tamaño de paso adecuado.
El paso de orden inferior está dado por
donde son los mismos que para el método de orden superior. Entonces el error es
cual es . El cuadro de Butcher para este tipo de método se amplía para dar los valores de :
Sin embargo, el método adaptativo de Runge-Kutta más simple implica combinar el método de Heun , que es de orden 2, con el método de Euler , que es de orden 1. Su cuadro extendido de Butcher es:
Se dice que un método de Runge-Kutta no es confluente [25] si todos son distintos.
Métodos de Runge-Kutta-Nyström
Los métodos de Runge-Kutta-Nyström son métodos especializados de Runge-Kutta que están optimizados para ecuaciones diferenciales de segundo orden. [26] [27]
Métodos implícitos de Runge-Kutta
Todos los métodos de Runge-Kutta mencionados hasta ahora son métodos explícitos . Los métodos explícitos de Runge-Kutta generalmente no son adecuados para la solución de ecuaciones rígidas porque su región de estabilidad absoluta es pequeña; en particular, está limitado. [28]
Esta cuestión es especialmente importante en la solución de ecuaciones diferenciales parciales .
La inestabilidad de los métodos explícitos de Runge-Kutta motiva el desarrollo de métodos implícitos. Un método implícito de Runge-Kutta tiene la forma
dónde
[29]
La diferencia con un método explícito es que en un método explícito, la suma sobre j solo llega hasta i − 1. Esto también se muestra en el cuadro de Butcher: la matriz de coeficientes de un método explícito es triangular inferior. En un método implícito, la suma de j llega a s y la matriz de coeficientes no es triangular, lo que produce un cuadro de Butcher de la forma [22]
Consulte los métodos adaptativos de Runge-Kutta más arriba para obtener la explicación de la fila.
La consecuencia de esta diferencia es que en cada paso se debe resolver un sistema de ecuaciones algebraicas. Esto aumenta considerablemente el coste computacional. Si se utiliza un método con s etapas para resolver una ecuación diferencial con m componentes, entonces el sistema de ecuaciones algebraicas tiene ms componentes. Esto se puede contrastar con los métodos lineales implícitos de varios pasos (la otra gran familia de métodos para EDO): un método lineal implícito de s pasos necesita resolver un sistema de ecuaciones algebraicas con solo m componentes, por lo que el tamaño del sistema no aumenta. a medida que aumenta el número de pasos. [30]
que se puede reorganizar para obtener la fórmula del método de Euler inverso mencionado anteriormente.
Otro ejemplo de método implícito de Runge-Kutta es la regla trapezoidal . Su cuadro de Carnicero es:
La regla trapezoidal es un método de colocación (como se analiza en ese artículo). Todos los métodos de colocación son métodos implícitos de Runge-Kutta, pero no todos los métodos implícitos de Runge-Kutta son métodos de colocación. [31]
Los métodos de Gauss-Legendre forman una familia de métodos de colocación basados en la cuadratura de Gauss . Un método de Gauss-Legendre con s etapas tiene orden 2 s (por lo tanto, se pueden construir métodos con un orden arbitrariamente alto). [32] El método con dos etapas (y por lo tanto orden cuatro) tiene un cuadro de Butcher:
[30]
Estabilidad
La ventaja de los métodos implícitos de Runge-Kutta sobre los explícitos es su mayor estabilidad, especialmente cuando se aplican a ecuaciones rígidas . Considere la ecuación de prueba lineal . Un método de Runge-Kutta aplicado a esta ecuación se reduce a la iteración , con r dada por
[33]
donde e representa el vector de unos. La función r se llama función de estabilidad . [34] De la fórmula se deduce que r es el cociente de dos polinomios de grado s si el método tiene s etapas. Los métodos explícitos tienen una matriz triangular estrictamente inferior A , lo que implica que det( I − zA ) = 1 y que la función de estabilidad es un polinomio. [35]
La solución numérica de la ecuación de prueba lineal decae a cero si | r ( z ) | < 1 con z = h λ. El conjunto de tales z se llama dominio de estabilidad absoluta . En particular, se dice que el método es absolutamente estable si todos los z con Re( z ) < 0 están en el dominio de estabilidad absoluta. La función de estabilidad de un método explícito de Runge-Kutta es un polinomio, por lo que los métodos explícitos de Runge-Kutta nunca pueden ser A-estables. [35]
Si el método tiene orden p , entonces la función de estabilidad satisface como . Por tanto, es interesante estudiar cocientes de polinomios de grados dados que se aproximan mejor a la función exponencial. Éstas se conocen como aproximantes de Padé . Una aproximante de Padé con numerador de grado m y denominador de grado n es A-estable si y sólo si m ≤ n ≤ m + 2. [36]
El método Gauss-Legendre con s etapas tiene orden 2 s , por lo que su función de estabilidad es la aproximante de Padé con m = n = s . De ello se deduce que el método es A-estable. [37] Esto muestra que Runge-Kutta A-estable puede tener un orden arbitrariamente alto. Por el contrario, el orden de los métodos lineales multipaso A-estables no puede exceder de dos. [38]
B-estabilidad
El concepto de estabilidad A para la solución de ecuaciones diferenciales está relacionado con la ecuación autónoma lineal . Dahlquist propuso la investigación de la estabilidad de esquemas numéricos cuando se aplican a sistemas no lineales que satisfacen una condición de monotonicidad. Los conceptos correspondientes se definieron como estabilidad G para métodos de varios pasos (y los métodos relacionados de una sola pierna) y estabilidad B (Butcher, 1975) para los métodos de Runge-Kutta. Un método de Runge-Kutta aplicado al sistema no lineal , que verifica , se llama B-estable , si esta condición implica dos soluciones numéricas.
Sean , y tres matrices definidas por
algebraicamente estable [39]la estabilidad B [40]
Derivación del método de cuarto orden de Runge-Kutta
En general, un método de orden de Runge-Kutta se puede escribir como:
dónde:
son incrementos obtenidos evaluando las derivadas de en el orden -ésimo.
Desarrollamos la derivación [41] para el método de cuarto orden de Runge-Kutta utilizando la fórmula general con evaluado, como se explicó anteriormente, en el punto inicial, el punto medio y el punto final de cualquier intervalo ; así elegimos:
y de otra manera. Comenzamos definiendo las siguientes cantidades:
dónde y . Si definimos:
y para las relaciones anteriores podemos demostrar que las siguientes igualdades se cumplen hasta :
Si ahora expresamos la fórmula general usando lo que acabamos de derivar obtenemos:
^ "Método Runge-Kutta". Diccionario.com . Consultado el 4 de abril de 2021 .
^ DEVRIES, Paul L.; HASBUN, Javier E. Un primer curso de física computacional. Segunda edicion. Editores Jones y Bartlett: 2011. p. 215.
^ Prensa y col. 2007, pág. 908; Süli y Mayers 2003, pág. 328
^ ab Atkinson (1989, p. 423), Hairer, Nørsett & Wanner (1993, p. 134), Kaw & Kalu (2008, §8.4) y Stoer & Bulirsch (2002, p. 476) omiten el factor h en la definición de las etapas. Ascher y Petzold (1998, p. 81), Butcher (2008, p. 93) e Iserles (1996, p. 38) utilizan los valores de y como etapas.
^ ab Süli y Mayers 2003, pág. 328
^ Prensa y col. 2007, pág. 907
^ Iserles 1996, pág. 38
^ Iserles 1996, pág. 39
^ Iserles 1996, pág. 39
^
Como contraejemplo, considere cualquier esquema Runge-Kutta explícito de dos etapas con y elegido al azar. Este método es consistente y (en general) convergente de primer orden. Por otro lado, el método de una etapa con es inconsistente y no logra converger, aunque trivialmente sostiene que .
^ Carnicero 2008, pag. 187
^ Carnicero 1965, pag. 408
^ Carnicero 1985
^ Carnicero 2008, págs. 187-196
^ Carnicero 1965, pag. 408
^ Carnicero 1985
^ Carnicero 1964
^ Carnicero 1965, pag. 408
^ Curtis 1970, pag. 268
^ Hairer, Nørsett y Wanner 1993, pág. 179
^ Carnicero 1996, pag. 247
^ ab Süli y Mayers 2003, pág. 352
^ Hairer, Nørsett y Wanner (1993, p. 138) se refieren a Kutta (1901).
^ Süli y Mayers 2003, pág. 327
^ Lambert 1991, pag. 278
^ Dormand, JR; Prince, PJ (octubre de 1978). "Nuevos algoritmos de Runge-Kutta para simulación numérica en astronomía dinámica". Mecánica celeste . 18 (3): 223–232. Código Bib : 1978CeMec..18..223D. doi :10.1007/BF01230162. S2CID 120974351.
^ Fehlberg, E. (octubre de 1974). Fórmulas clásicas de Runge-Kutta-Nyström de séptimo, sexto y quinto orden con control de tamaño de paso para ecuaciones diferenciales generales de segundo orden (Informe) (NASA TR R-432 ed.). Centro Marshall de vuelos espaciales, AL: Administración Nacional de Aeronáutica y del Espacio.
^ Lyu, Ling-Hsiao (agosto de 2016). "Apéndice C. Derivación de las fórmulas de integración numérica" (PDF) . Simulación numérica de plasmas espaciales (I) Apuntes de conferencias . Instituto de Ciencias Espaciales, Universidad Nacional Central . Consultado el 17 de abril de 2022 .
Referencias
Runge, Carl David Tolmé (1895), "Über die numerische Auflösung von Differentialgleichungen", Mathematische Annalen , Springer , 46 (2): 167–178, doi :10.1007/BF01446807, S2CID 119924854.
Kutta, Wilhelm (1901), "Beitrag zur näherungsweisen Integration totaler Differentialgleichungen", Zeitschrift für Mathematik und Physik , 46 : 435–453.
Butcher, John C. (mayo de 1963), "Coeficientes para el estudio de los procesos de integración de Runge-Kutta", Revista de la Sociedad Matemática Australiana , 3 (2): 185–201, doi : 10.1017/S1446788700027932.
Butcher, John C. (mayo de 1964), "Sobre los procesos de alto orden de Runge-Kutta", Revista de la Sociedad Matemática Australiana , 4 (2): 179–194, doi : 10.1017/S1446788700023387
Butcher, John C. (1975), "Una propiedad de estabilidad de los métodos implícitos de Runge-Kutta", BIT , 15 (4): 358–361, doi :10.1007/bf01931672, S2CID 120854166.
Butcher, John C. (2000), "Métodos numéricos para ecuaciones diferenciales ordinarias en el siglo XX", J. Comput. Aplica. Matemáticas. , 125 (1–2): 1–29, Bibcode :2000JCoAM.125....1B, doi : 10.1016/S0377-0427(00)00455-6.
Dahlquist, Germund (1963), "Un problema de estabilidad especial para métodos lineales de varios pasos", BIT , 3 : 27–43, doi : 10.1007/BF01963532, hdl : 10338.dmlcz/103497 , ISSN 0006-3835, S2CID 120241743.
Forsythe, George E.; Malcolm, Michael A.; Moler, Cleve B. (1977), Métodos informáticos para cálculos matemáticos , Prentice-Hall(ver Capítulo 6).
Hairer, Ernst; Norsett, Syvert Paul; Wanner, Gerhard (1993), Resolución de ecuaciones diferenciales ordinarias I: problemas no rígidos , Berlín, Nueva York: Springer-Verlag , ISBN 978-3-540-56670-0.
Hairer, Ernst; Wanner, Gerhard (1996), Resolución de ecuaciones diferenciales ordinarias II: problemas rígidos y algebraicos diferenciales (2ª ed.), Berlín, Nueva York: Springer-Verlag , ISBN 978-3-540-60452-5.
Implementación de la biblioteca de componentes Tracker en Matlab: implementa 32 algoritmos integrados de Runge Kutta en RungeKStep, 24 algoritmos integrados de Runge-Kutta Nyström RungeKNystroemSStepy 4 algoritmos generales de Runge-Kutta Nyström en RungeKNystroemGStep.