Capítulo 5 Resolución numérica de problemas de valores iniciales 5.1 Introducción En muy pocos casos se puede encontrar la solución exacta de un problema de valores iniciales (p.v.i.) y, por tanto, es imprescindible establecer métodos aproximados de cálculo, entre los que se encuentran los basados en desarrollos en serie de potencias, en serie de Frobenius, etc, además de una categoría diferente formada por métodos numéricos. Consideremos el problema de valores iniciales (p.v.i.) x0 = f (t; x) ; x (a) = ; T (5.1) T donde x = (x1 ; x2 ; : : : ; xm ) , = ( 1 ; 2 ; : : : ; m ) y f : D R Rm ! Rm es continua en el dominio D, además de satisfacer una condición de Lipschitz respecto de x con constante L, y (a; ) 2 D. Sea x : I ! R la única solución de (5.1) y sea b 2 R tal que [a; b] I. Los métodos numéricos se basan en la idea de discretización, es decir, en determinar valores aproximados de x en el conjunto de nodos ftn g0 n N de…nidos por tn = a + nh; n = 0; 1; : : : ; N; con h= b a ; N siendo N 1 dado. La longitud de paso h determina la partición de [a; b]. Si x0 , x1 , : : :, xN son aproximaciones de x (t0 ), x (t1 ), : : :, x (tN ), respectivamente, fxn g0 n N es una solución numérica del p.v.i. (5.1). 2 Capítulo 5. Resolución numérica de problemas de valores iniciales Las hipótesis sobre f se mantendrán mientras no se especi…que otra cosa y no se hará en lo sucesivo referencia explícita a las mismas. 5.2 Algunos métodos Los resultados establecidos sobre derivación e integración numéricas hacen posible construir diferentes métodos de generación de soluciones numéricas. Desarrollaremos algunos ejemplos, para lo que supondremos que m = 1. Via desarrollo de Taylor Si la solución x fuese de clase dos, entonces, por la fórmula de Taylor con resto de Lagrange, se puede escribir 1 x (tn+1 ) = x (tn + h) = x (tn ) + hx0 (tn ) + h2 x00 ( n ) ; 2 (5.2) donde n 2 (tn ; tn+1 ). Como x es solución de la ecuación diferencial, la igualdad (5.2) se transforma en 1 x (tn+1 ) = x (tn ) + hf (tn ; x (tn )) + h2 x00 ( n ) ; 2 igualdad cierta para n = 0; 1; : : : ; N 1. El método de Euler, o de EulerCauchy, consiste en aproximar los valores x (tn ) mediante los xn generados por el siguiente procedimiento: xn+1 = xn + hf (tn ; xn ) ; n = 0; 1; : : : ; N x0 = 1 (5.3) Su relación con el método de las poligonales de Euler es evidente. Podemos también generar una solución numérica de (5.1) por medio del siguiente esquema: xn+1 = xn + hf tn + h h ; xn + f (tn ; xn ) ; n = 0; 1; : : : ; N 2 2 1 (5.4) x0 = Es el método de Euler corregido. Para calcular xn+1 a partir de xn hay que evaluar dos veces la función f . §5.2 Algunos métodos 3 Via integración numérica Hemos visto cómo la técnica empleada para establecer el método de Euler puede seguirse para encontrar los métodos de Taylor y cómo es posible, al menos en el caso que hemos desarrollado, producir un método con un error similar pero para el que no hay que calcular derivadas. Vamos a proceder de un modo totalmente diferente para establecer otro método para generar una solución numérica. De nuevo, sea x la única solución del p.v.i (5.1). Consideremos un subintervalo cualquiera [tn ; tn+2 ]. Como x0 (t) = f (t; x (t)) para t 2 [a; b], se cumple que Z Z tn+2 x0 (t) dt = tn+2 f (t; x (t)) dt; tn tn es decir, x (tn+2 ) x (tn ) = Z tn+2 f (t; x (t)) dt: tn Consideremos ahora la función g (t) = f (t; x (t)), que no es conocida al no disponer de x. La fórmula de Simpson permite escribir Z tn+2 h h5 (v) g (t) dt = (g (tn ) + 4g (tn+1 ) + g (tn+2 )) g ( ); 3 90 tn por lo que h (f (tn ; x (tn )) + 4f (tn+1 ; x (tn+1 )) + 3 h5 f (tn+2 ; x (tn+2 ))) + g (v) ( ) : 90 x (tn+2 ) = x (tn ) + Es razonable generar una solución numérica del p.v.i. (5.1) mediante el siguiente procedimiento, en que se usa la notación fn = f (tn ; xn ): xn+2 = xn + x0 = h (fn + 4fn+1 + fn+2 ) ; 0 3 n N 2 (5.5) Es el denominado método de Simpson. Claramente, en los métodos de Euler y Euler corregido que hemos desarrollado el cálculo del término xn+1 de la solución numérica se basa en el conocimiento del xn ; la sucesión fxn g0 n N se calcula secuencialmente a partir x0 = , haciendo n = 0; 1; : : : ; N 1 en las ecuaciones en diferencias de 4 Capítulo 5. Resolución numérica de problemas de valores iniciales (5.3), (??) y (5.4), respectivamente. En el método de Simpson (5.5) el término xn+2 de la solución numérica se calcula a partir de los dos precedentes, por lo que será necesario proporcionar un valor inicial adicional, x1 , antes de que la sucesión fxn g0 n N pueda ser calculada. Si el método es tal que, dados xn+j , j = 0; 1; : : : ; k 1, se determina xn+k explícitamente, el método se dice explícito; éste es el caso de los métodos de Euler y Euler corregido que hemos considerado. Si, por el contrario, el valor xn+k no puede ser calculado sin resolver un sistema de ecuaciones entonces el método se dice implícito. Como la función f es, en general, no lineal en x, en los métodos implícitos hay que considerar la resolución de un sistema no lineal de ecuaciones en cada paso de los cálculos, y son, por tanto, computacionalmente más costosos que los métodos explícitos. Observemos, por último, que en la ecuación en diferencias para el método de Simpson intervienen sólo combinaciones lineales de xn+j , f (tn+j ; xn+j ), j = 0; 1; : : : ; k. Los métodos desarrollados son aplicables para resolver p.v.i. correspondientes a sistemas diferenciales, es decir, en el caso m > 1. 5.3 Métodos de Runge-Kutta El intento de evitar el uso de derivadas sucesivas conduce a los métodos de Runge-Kutta, que responden a la formulación general (para sistemas diferenciales) s X xn+1 = xn + h bi K i ; (5.6) i=1 donde 0 Ki = f @tn + ci h; xn + h s X j=1 1 aij Kj A ; i = 1; 2; : : : ; s: (5.7) El valor s indica el número de evaluaciones de f que hay que efectuar. La idea subyacente consiste básicamente en considerar s números ordenados del 0 al 1 de la forma 0 = c1 c2 cs 1, y en emplear la subdivisión tn tn + c1 h tn + c2 h tn + cs h tn+1 §5.3 Métodos de Runge-Kutta 5 del subintervalo [tn ; tn+1 ]. Supondremos que se veri…ca la condición ci = s X aij ; i = 1; 2; : : : ; s: (5.8) j=1 El método de Runge-Kutta (5.6)-(5.8) se representa por medio de la tabla c1 c2 .. . a11 a21 .. . a12 a22 .. . cs as1 b1 as2 b2 .. . a1s a2s .. . ass bs Será un método explícito si aij = 0 para j i, i = 1; 2; : : : ; s. Su convergencia dependerá de su consistencia. Proposición.- El método (5.6)-(5.8) es consistente si y sólo si Ps i=1 bi = 1. Si el método es consistente, entonces el error de truncatura local es O h2 . Valores moderados de s conducen a algunos métodos explícitos particulares. 1. s = 2 (a) Método de Euler modi…cado 0 1 2 1 2 0 1 (b) Método de Euler mejorado 0 1 1 1 2 2. s = 3 1 2 6 Capítulo 5. Resolución numérica de problemas de valores iniciales (a) Método de Heun 0 1 3 2 3 1 3 0 2 3 1 4 0 3 4 (b) Método de Kutta 0 1 2 1 2 1 1 2 1 6 2 3 1 6 3. s = 4 Método clásico de Runge-Kutta 0 1 2 1 2 1 2 0 1 2 1 0 0 1 1 6 1 3 1 3 1 6