El miembro más conocido de la familia Runge-Kutta se conoce generalmente como "RK4", el "método Runge-Kutta clásico" o simplemente como "el método Runge-Kutta".
Aquí tenemos una función desconocida (escalar o vectorial) del tiempo , que nos gustaría aproximar; se nos dice que , la tasa a la que cambia, es una función de y de sí misma. En el tiempo 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, ..., utilizando [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 la función f en el lado derecho de la ecuación diferencial.
es la pendiente al inicio del intervalo, utilizando ( el método de Euler );
es la pendiente en el punto medio del intervalo, utilizando y ;
es nuevamente la pendiente en el punto medio, pero ahora usando y ;
es la pendiente al final del intervalo, utilizando 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. Está dada por
donde [6]
( Nota: las ecuaciones anteriores pueden tener definiciones diferentes pero equivalentes en algunos textos. [4] )
Para especificar un método en particular, es necesario proporcionar el 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 c i (para i = 2, 3, ..., s ). La matriz [ a ij ] se denomina matriz de Runge-Kutta , mientras que b i y c i se conocen como los pesos y los nodos . [7] Estos datos suelen organizarse en un dispositivo mnemotécnico, conocido como tabla 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 solo si
También existen requisitos complementarios 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 error de truncamiento en sí. 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] Nótese que una condición popular para determinar coeficientes es [8]
Sin embargo, esta condición por sí sola no es suficiente ni necesaria para la coherencia. [9]
En general, si un método Runge–Kutta explícito de 2 etapas tiene orden , entonces se puede demostrar que el número de etapas debe satisfacer , y si , entonces . [10]
Sin embargo, no se sabe si estos límites son precisos en todos los casos. En algunos casos, se demuestra que el límite no se puede lograr. Por ejemplo, Butcher demostró que para , no hay ningún método explícito con etapas. [11] Butcher también demostró que para , no hay ningún método Runge-Kutta explícito con etapas. [12] 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 Runge–Kutta explícito tenga orden . Algunos valores que se conocen son: [13]
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 estos ó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. [11] [12] Un ejemplo de un método explícito de orden 6 con 7 etapas se puede encontrar en la referencia [14] . También se conocen métodos explícitos de orden 7 con 9 etapas [11] y métodos explícitos de orden 8 con 11 etapas [15] . Véanse las referencias [16] [17] para un resumen.
Ejemplos
El método RK4 se enmarca en este marco. Su tabla es [18]
Una ligera variación del método "de Runge-Kutta" también se debe a Kutta en 1901 y se llama regla de 3/8. [19] La principal ventaja que tiene este método es que casi todos los coeficientes de error son menores que en el método popular, pero requiere un poco más de FLOP (operaciones de punto flotante) por paso de tiempo. Su tabla de Butcher es
Un ejemplo de un método de segundo orden con dos etapas lo proporciona el método de punto medio explícito :
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, parametrizados por α y dados por la fórmula [20]
Como ejemplo, considere el método de Runge-Kutta de segundo orden de dos etapas con α = 2/3, también conocido como método de Ralston . Está dado por la tabla
con las ecuaciones correspondientes
Este método se utiliza para resolver el problema del valor inicial.
con tamaño de paso h = 0,025, por lo que el método necesita realizar cuatro pasos.
El método se desarrolla 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, la estimación del error tiene poco o ningún costo computacional 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 forma 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 menor; si el error es mucho menor, se aumenta el tamaño del paso 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 dedicar tiempo a encontrar un tamaño de paso adecuado.
El paso de orden inferior viene dado por
donde son iguales que para el método de orden superior. Entonces el error es
que es . La tabla de Butcher para este tipo de método se extiende para dar los valores de :
Sin embargo, el método de Runge-Kutta adaptativo 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 tabla de Butcher extendida es:
Se dice que un método de Runge-Kutta no es confluente [21] si todos son distintos.
Métodos de Runge-Kutta-Nyström
Los métodos de Runge-Kutta-Nyström son métodos de Runge-Kutta especializados que están optimizados para ecuaciones diferenciales de segundo orden. [22] [23] Un método de Runge-Kutta-Nyström general para un sistema de EDO de segundo orden
con orden es con la forma
que forma una mesa de carnicero con la forma
.
Las siguientes tablas de Butcher proporcionan dos métodos RKN explícitos de cuarto orden:
Estos dos esquemas también tienen propiedades de preservación simpléctica cuando la ecuación original se deriva de un sistema mecánico clásico conservativo, es decir, cuando
para alguna función escalar . [24]
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 de Runge-Kutta explícitos 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á acotada. [25]
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
[26]
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 la tabla de Butcher: la matriz de coeficientes de un método explícito es triangular inferior. En un método implícito, la suma sobre j llega hasta s y la matriz de coeficientes no es triangular, lo que produce una tabla de Butcher de la forma [18]
Consulte los métodos de Runge-Kutta adaptativos 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, lo que 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 multipaso implícitos (la otra gran familia de métodos para EDO): un método lineal multipaso 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. [27]
Este cuadro del Carnicero corresponde a las fórmulas
que se puede reorganizar para obtener la fórmula del método de Euler inverso mencionado anteriormente.
Otro ejemplo de un método de Runge-Kutta implícito es la regla trapezoidal . Su tabla de Butcher 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 Runge-Kutta implícitos, pero no todos los métodos Runge-Kutta implícitos son métodos de colocación. [28]
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). [29] El método con dos etapas (y por lo tanto de orden cuatro) tiene la tabla de Butcher:
[27]
Estabilidad
La ventaja de los métodos Runge-Kutta implícitos 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 Runge-Kutta aplicado a esta ecuación se reduce a la iteración , con r dado por
[30]
donde e representa el vector de unos. La función r se denomina función de estabilidad . [31] 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. [32]
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 denomina 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 Runge-Kutta explícito es un polinomio, por lo que los métodos Runge-Kutta explícitos nunca pueden ser A-estables. [32]
Si el método tiene orden p , entonces la función de estabilidad satisface como . Por lo tanto, es de interés estudiar cocientes de polinomios de grados dados que se aproximan mejor a la función exponencial. Estos se conocen como aproximantes de Padé . Un aproximante de Padé con numerador de grado m y denominador de grado n es A-estable si y solo si m ≤ n ≤ m + 2. [33]
El método de Gauss-Legendre con s etapas tiene orden 2 s , por lo que su función de estabilidad es la aproximación de Padé con m = n = s . De ello se deduce que el método es A-estable. [34] Esto demuestra que el método de 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 ser superior a dos. [35]
B-estabilidad
El concepto de A-estabilidad 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 los esquemas numéricos cuando se aplican a sistemas no lineales que satisfacen una condición de monotonía. Los conceptos correspondientes se definieron como G-estabilidad para métodos de múltiples pasos (y los métodos de una pierna relacionados) y B-estabilidad (Butcher, 1975) para 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 para dos soluciones numéricas.
Sean , y tres matrices definidas por Se dice que un método de Runge-Kutta es algebraicamente estable [36] si las matrices y son ambas definidas no negativas. Una condición suficiente para la B-estabilidad [37] es: y son definidas no negativas.
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 -ésimo orden.
Desarrollamos la derivación [38] 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 en caso contrario. Empezaremos definiendo las siguientes magnitudes:
donde y . Si definimos:
y para las relaciones anteriores podemos demostrar que las siguientes igualdades se cumplen hasta :
donde:
es la derivada total de con respecto al tiempo.
Si ahora expresamos la fórmula general usando lo que acabamos de derivar obtenemos:
^ "Método Runge-Kutta". Dictionary.com . Consultado el 4 de abril de 2021 .
^ DEVRIES, Paul L.; HASBUN, Javier E. Un primer curso de física computacional. Segunda edición. Jones and Bartlett Publishers: 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 y Wanner (1993, p. 134), Kaw y Kalu (2008, §8.4) y Stoer y 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 y como etapas.
^ ab Süli y Mayers 2003, pág. 328
^ Press y otros, 2007, pág. 907
^ Iserles 1996, pág. 38
^ por Iserles 1996, pág. 39
^
Como contraejemplo, considere cualquier esquema Runge-Kutta explícito de 2 etapas con y y elegidos aleatoriamente. Este método es consistente y (en general) convergente de primer orden. Por otro lado, el método de 1 etapa con es inconsistente y no converge, aunque trivialmente sostiene que .
^ Carnicero 2008, pág. 187
^ abc Butcher 1965, pág. 408
^ de Carnicero 1985
^ Carnicero 2008, págs. 187-196
^ Carnicero 1964
^ Curtis 1970, pág. 268
^ Hairer, Nørsett y Wanner 1993, pág. 179
^ Carnicero 1996, pág. 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, pág. 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 Bibliográfico :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 del tamaño de los pasos 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.
^ Qin, Meng-Zhao; Zhu, Wen-Jie (1 de enero de 1991). "Métodos canónicos de Runge-Kutta-Nyström (RKN) para ecuaciones diferenciales ordinarias de segundo orden". Computers & Mathematics with Applications . 22 (9): 85–95. doi :10.1016/0898-1221(91)90209-M. ISSN 0898-1221.
^ 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) Notas de clase . 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 , 46 (2), Springer : 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", Journal of the Australian Mathematical Society , 3 (2): 185–201, doi : 10.1017/S1446788700027932.
Butcher, John C. (mayo de 1964), "Sobre los procesos de Runge-Kutta de orden superior", Journal of the Australian Mathematical Society , 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. Appl. Math. , 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 múltiples 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), Solución de ecuaciones diferenciales ordinarias II: Problemas rígidos y diferenciales-algebraicos (2.ª ed.), Berlín, Nueva York: Springer-Verlag , ISBN 978-3-540-60452-5.
Tan, Delin; Chen, Zheng (2012), "Sobre una fórmula general del método Runge-Kutta de cuarto orden" (PDF) , Journal of Mathematical Science & Mathematics Education , 7 (2): 1–10.
Libro de referencia de matemáticas discretas avanzadas de ignou (código: mcs033)
John C. Butcher: "Serie B: Análisis algebraico de métodos numéricos", Springer (SSCM, volumen 55), ISBN 978-3030709556 (abril de 2021).
Butcher, JC (1985), "La inexistencia de métodos Runge-Kutta explícitos de octavo orden de diez etapas", BIT Numerical Mathematics , 25 (3): 521–540, doi :10.1007/BF01935372.
Butcher, JC (1965), "Sobre el orden alcanzable de los métodos de Runge-Kutta", Mathematics of Computation , 19 (91): 408–417, doi :10.1090/S0025-5718-1965-0179943-X.
Curtis, AR (1970), "Un proceso Runge-Kutta de octavo orden con once evaluaciones de funciones por paso", Numerische Mathematik , 16 (3): 268–277, doi :10.1007/BF02219778.
Cooper, GJ; Verner, JH (1972), "Algunos métodos Runge-Kutta explícitos de orden superior", SIAM Journal on Numerical Analysis , 9 (3): 389–405, doi :10.1137/0709037.
Butcher, JC (1996), "Una historia de los métodos de Runge-Kutta", Matemáticas numéricas aplicadas , 20 (3): 247–260, doi :10.1016/0168-9274(95)00108-5.
Implementación de la biblioteca de componentes Tracker en Matlab: implementa 32 algoritmos Runge Kutta integrados en RungeKStep, 24 algoritmos Runge-Kutta Nyström integrados en RungeKNystroemSStepy 4 algoritmos Runge-Kutta Nyström generales en RungeKNystroemGStep.