Apuntes de J. Lorente 2.3 5 Métodos Runge-Kutta. En esta sección analizamos los métodos basados en evaluaciones de f (x, y) en puntos intermedios del intervalo [xn , xn+1 ] de modo que resulten métodos equivalentes a un método de Taylor de cierto orden. Ası́, de forma más precisa, un método tipo Runge-Kutta basado en m-evaluaciones se describe como sigue: Dada una partición del intervalo [a, b] donde existe solución del P.V.I. en N −subintervalos, se define la solución numérica, {yn }n=0,...,N siguiente: y0 = µ yn+1 = yn + h m P bj Kj n = 0, 1, . . . , N − 1 (2.12) j=1 donde Ki (x, y) = f x + ci h , y + h m X ! aij Kj (x, y) i = 1, . . . , m j=1 Observando la expresión de las K 0 s es evidente que se requiere de algunas aclaraciones: • El método descrito es, en general, IMPLÍCTO; • El método es EXPLÍCITO si aij = 0 para j ≥ i; • Para aij = 0 para j > i es método se dice DIAGONALMENTE IMPLÍCITO. • El método es CONSISTENTE si, y sólo si, m P bi = 1 i=1 • Un método (2.12) puede representarse mediante el llamado arreglo de Butcher siguiente: c1 .. . a11 .. . cm am1 b1 · · · a1m .. .. . . · · · amm · · · bm (2.13) Además, en orden a simplificar el análisis de estos métodos se suponen las igualdades siguientes: ci = m X aij i = 1, . . . , m (2.14) j=1 Nos centraremos en el análisis de los métodos Runge-Kutta EXPLÍCITOS, es decir, las ctes se describen por: K1 = f (x, y) ! i−1 P Ki = f x + ci h, y + h aij Kj i = 2, . . . , m j=1 6 Métodos de un paso. 2.3.1 Algunos métodos de Runge-Kutta clásicos. Métodos de dos evaluaciones explı́citos.Teniendo en cuenta las condiciones de consistencia y (2.14) para los métodos (2.12) podemos escribir el de dos evaluaciones en la forma: y0 = µ yn+1 = yn + h ((1 − α)K1 + αK2 ) n = 0, 1, . . . , N − 1 (2.15) K1 = f (xn , yn ) K2 = f (xn + βh, yn + hβK1 ) (2.16) donde Ası́, analizando el error de truncatura local, podemos deducir el orden máximo del método y sus distintas opciones. A tal fin aplicamos sendos desarrollos de Taylor para la solución del P.V.I. y para la función f (x, y) respecto de ambas variables. Más precisamente, Rn+1 (x) = y (x + h) − y (x) − h ((1 − α)K1 + αK2 ) donde K1 = f (x, y(x)) ; K2 = f (x + βh, y(x) + hβf (x, y(x))) que desarrollando en el punto (x, y(x)) tenemos (notamos y = y(x), f = f (x, y), ....): K2 = f (x + βh, y + hβf ) = T2 (f ; βh, βhf ) + O (h3 ) = (2.17) = f + βhF + β 2 h2 G 2 3 + O (h ) Por lo tanto, tendremos que: Rn+1 (x) = hy 0 + = h2 = h2 1 2 1 2 h 3 + h6 y 000 + O(h4 ) − h (1 − α)f + α f + βhF + 2 − αβ F + h3 61 y 000 − αβ2 G + O(h4 ) = 3 − αβ F + h6 [(1 − 3αβ 2 ) G + fy · F ] + O(h4 ) h2 00 y 2 β 2 h2 G 2 i + O(h3 ) = es decir, el método (2.15) es de orden 2 si el coeficiente en h2 es cero; a saber, αβ = 1 2 Esta igualdad conduce a una familia de métodos RK de orden 2. En particular, • para α = 1 ⇒ β = 21 , se obtiene el método (2.8) • para α = 1 2 ⇒ β = 1, se obtiene el método (2.9) Apuntes de J. Lorente • para α = 3 4 7 ⇒ β = 32 , el método resultante es: y0 = µ yn+1 = yn + h4 f (xn , yn ) + 3f xn + 23 h, yn + 23 hf (xn , yn ) n = 0, 1, . . . , N − 1 (2.18) Además, podemos decir que en cierto sentido esta elección de los parámetros α, β es óptima (¿por qué?). Método explı́cito de 4 evaluaciones (Runge-Kutta clásico).Este es un método de orden 4 que se describe como sigue: y0 = µ yn+1 = yn + h6 (K1 + 2K2 + 2K3 + K4 ) n = 0, 1, . . . , N − 1 (2.19) donde K1 K2 K3 K4 = = = = f (xn , yn ) f (xn + h/2, yn + h/2K1 ) f (xn + h/2, yn + h/2K2 ) f (xn + h, yn + hK3 ) (2.20) El orden del método se obtiene mediante desarrollos de Taylor adecuados1 en cada Ki como puede apreciarse en el siguiente proceso (simplificado): 2 3 K2 = T3 f ; h2 , h2 f + O (h4 ) = f + h2 F + h8 G + h48 H + O (h4 ) 3 2 2 3 f + h48 D(1,K f + O (h4 ) K3 = T3 f ; h2 , h2 K2 + O (h4 ) = f + h2 D(1,K2 ) f + h8 D(1,K 2) 2) 3 2 2 3 f + h6 D(1,K f + O (h4 ) K4 = T3 (f ; h, hK3 ) + O (h4 ) = f + hD(1,K3 ) f + h2 D(1,K 3) 3) podemos escribir: 2 D(1,K2 ) f = F + h2 fy F + h8 fy G + O (h3 ) 2 D(1,K f = G + hF (fxy + f · fyy ) + O (h2 ) 2) 3 D(1,K f = H + O (h) 2) ⇒ h h2 h3 ⇒ K3 = f + F + (G + 2fy F ) + [H + 3fy G + 6 (fxy + f · fyy ) F ] + O h4 2 8 48 de forma análoga: 2 D(1,K3 ) f = F + h2 fy F + h8 fy (G + 2F fy ) + O (h3 ) 2 2 D(1,K f = G + hF (f + f · f ) + O (h ) ⇒ xy yy 3) 3 D(1,K3 ) f = H + O (h) h2 h3 ⇒ K4 = f + hF + (G + fy F ) + [8H + 24 (fxy + f · fyy ) F + 6fy (G + 2fy F )] + O h4 2 48 1 sólo se explicitan los términos necesarios para conseguir probar que Rn+1 = O(h5 ) y se usan las notaciones de inicio del capı́tulo. 8 Métodos de un paso. por lo tanto K1 + 2K2 + 2K3 + K4 h h2 h3 = f + F + (G + fy F )+ H + fy G + F fy2 + 3fxy + 3f · fyy +O h4 6 2 6 24 De todo lo anterior se obtiene el error de truncatura local del método: h2 00 h3 000 h4 iv) K1 + 2K2 + 2K3 + K4 y + y + y + O(h5 ) − h = 2 6 24 6 h2 00 h3 000 = h (y 0 − f ) + (y − F ) + (y − (G + fy F )) + 2 6 h4 iv) y − H + fy G + F fy2 + 3fxy + 3f · fyy + O h5 + 24 Rn+1 (x) = hy 0 + Usando las relaciones (2.5) se comprueba que se anulan los términos en h, h2 , h3 y h4 por lo que el orden del método será al menos 4. Si se desea conocer el término principal de error; es decir, el sumando que corresponde a h5 se debe usar, en cada desarrollo anterior, un sumando más con lo que complica bastante los cálculos (no es complicado programarlo con Mathematica, ¡te atreves!).