Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos E. de Ingenierías Industriales 2012-13 Métodos Matemáticos I Jesús Rojo 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos 07. Métodos de Runge-Kutta implícitos 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos 1 Los métodos implícitos 2 Métodos implícitos y métodos de Gauss 3 Ejemplos 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Los métodos implícitos En lugar del método de Runge-Kutta explícito de 3 etapas k1 = f (xn , yn ) k2 = f (xn + c2 h, yn + a2,1 h k1 ) k3 = f (xn + c3 h, yn + a3,1 h k1 + a3,2 h k2 ) yn+1 = yn + h (b1 k1 + b2 k2 + b3 k3 ) , cuyo tablero de Butcher era 0 c2 a21 c3 a31 a32 b1 b2 b3 vamos a considerar ahora uno de igual número de etapas pero de la forma 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos k1 = f (xn + c1 h, yn + a1,1 h k1 + a1,2 h k2 + a1,3 h k3 ) k2 = f (xn + c2 h, yn + a2,1 h k1 + a2,2 h k2 + a2,3 h k3 ) k3 = f (xn + c3 h, yn + a3,1 h k1 + a3,2 h k2 + a3,3 h k3 ) yn+1 = yn + h (b1 k1 + b2 k2 + b3 k3 ) , cuyo tablero de Butcher es ahora c1 a11 a12 a13 c2 a21 a22 a23 c3 a31 a32 a33 b1 b2 b3 Es obvio que la programación de tal método no se puede hace mediante asignaciones directas, como en los métodos explícitos, sino resolviendo ’de alguna manera’ las ecuaciones de k1 , k2 y k3 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos en las que las etapas ki aparecen no sólo a la izquierda del signo =, sino también a su derecha e incluidos en las variables de una función f que en nuestro estudio no es ni fácil ni complicada sino sólo una ’simple letra’. En otras palabras; los valores de las etapas k1 , k2 ... que antes se obtenían de forma (matemáticamente) exacta mediante asignaciones, ahora sólo se pueden obtener en principio de manera aproximada y eso a base de muchas evaluaciones de f . Lo más usual es proceder con la llamada ’iteración de punto fijo’ para el cálculo de aproximaciones de las etapas k1 , k2 ... Consiste en darse valores ’arbitrarios’ de k1 , k2 y k3 (en el caso de tres etapas), valores que llamaremos k1,0 , k2,0 y k3,0 , y proceder a refinar sucesivamente estos valores mediante la repetida iteración de k1,i+1 = f (xn + c1 h, yn + a1,1 h k1,i + a1,2 h k2,i + a1,3 h k3,i ) k2,i+1 = f (xn + c2 h, yn + a2,1 h k1,i + a2,2 h k2,i + a2,3 h k3,i ) k3,i+1 = f (xn + c3 h, yn + a3,1 h k1,i + a3,2 h k2,i + a3,3 h k3,i ) 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Naturalmente, elegir estos valores ’arbitrarios’ cercanos a los verdaderos, aunque desconocidos, k1 , k2 y k3 , hace que obtengamos buenas aproximaciones con muy pocas iteraciones. Se procura generalmente que la cercanía valores iniciales - valores verdaderos sea grande para que una sola iteración sea suficiente (otra cosa aumentaría de manera desproporcionada el número de evaluaciones de f ). Cada uno de los métodos que veremos posee una o varias formas de encontrar valores iniciales convenientes de las etapas, lo que permite entonces que se conviertan en métodos realmente utilizables. Algunos ejemplos nos llevaran enseguida a tener práctica en esta organización. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Pero, ¿por qué acudir a estos métodos de puesta en práctica tan compleja cuando disponemos de métodos sencillos de implementar (explícitos) de orden tan alto como queramos? Algo más adelante veremos que hay un cierto tipo de ecuaciones, que designaremos con el calificativo de ’stiff’ o de rígidas, que son bastante usuales y que se integran muy mal con cualquier método explícito de Runge-Kutta. Lo que no ocurre con los métodos implícitos que, pese a su mayor inconveniente de programación, tienen un comportamiento idóneo con este tipo de ecuaciones. El tema de la ’estabilidad lineal’ nos aclarará este comportamiento, justificando la molestia que ahora nos tomamos. Comenzamos por definir de forma más general estos métodos implícitos, que hasta ahora hemos expuesto sólo para 3 etapas. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Pero de manera más general, un Un método de Runge-Kutta implícito o no necesariamente explícito de q etapas tiene etapas dadas por k1 k2 k3 .. . = f (xn + c1 h, yn + a1,1 h k1 + a1,2 h k2 + · · · + a1,q−1 h kq−1 + a1,q h kq ) = f (xn + c2 h, yn + a2,1 h k1 + a2,2 h k2 + · · · + a2,q−1 h kq−1 + a2,q h kq ) = f (xn + c3 h, yn + a3,1 h k1 + a3,2 h k2 + · · · + a3,q−1 h kq−1 + a3,q h kq ) .. .. . . kq = f (xn + cq h, yn + aq,1 h k1 + aq,2 h k2 + · · · + aq,q−1 h kq−1 + aq,q h kq ) con los k1 , k2 ... dados por ecuaciones implícitas, y luego obtiene el valor de yn+1 como yn+1 = yn + h (b1 k1 + b2 k2 + · · · + bq kq ) . Por lo tanto se resume mediante el Tablero de Butcher 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos c1 a11 a12 a13 ··· a1 q−1 a1 q c2 a21 a22 a23 ··· a2 q−1 a2 q c3 a31 a32 a33 ··· a3 q−1 a3 q .. . .. . .. . .. . .. .. . .. . cq−1 cq . aq−1 1 aq−1 2 aq−1 3 · · · aq−1 q−1 aq−1 q aq 1 aq 2 aq 3 ··· aq q−1 aq q b1 b2 b3 ··· bq−1 bq 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos La regularidad de la organización de estos métodos hace que sea mucho más sencilla la caracterización del orden que se puede alcanzar con un número dado de etapas.Así el resultado que tenemos es ahora: Los métodos de Runge-Kutta implícitos de q etapas alcanzan, de una sola manera, el orden máximo 2 q. El único método de q etapas que alcanza este orden de 2 q recibe el nombre de método de Gauss de q etapas. El nombre se debe a que las abscisas c1 , c2 , . . . que emplean estos métodos son las mismas que se usan en la integración (óptima para el orden de exactitud) de Gauss. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos En la búsqueda del orden de los métodos implícitos que, de momento, estudiamos en el caso escalar, sirven las técnicas que ya hemos usado con los explícitos. Ahora sigue siendo igualmente válido poner uno de estos métodos como yn+1 = yn + h Φ(xn , yn , h) , y describir Φ(h) como Φ(h) = b1 k1 (h) + b2 k2 (h) + · · · + bq kq (h) , haciendo notar que ahora k1 (h) depende efectivamente de h. Las condiciones de orden se obtienen también sencillamente de las igualdades 1 Φp−1) (0) = f (p−1) p p) donde Φp) (0) se prepara mediante el cálculo de los valores k1 (0) , p) k2 (0) ... 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos p) Es fácil observar que, en el cálculo de ki (h) se encuentra el propio p) p) valor de ki (h) en alguna parte a la derecha de ki (h) =. No obstante, se encuentra multiplicado siempre por h, por lo que al p) calcular ki (0), que el lo que finalmente interesa, dicho término p) desaparece y el valor de ki (0) se asigna directamente sin resolver ninguna ecuación. Otra advertencia especial es que ahora no es ninguno de los puntos (1) (xn + c1 h, yn + a1,1 h k1 + a1,2 h k2 + · · · + a1,q h kq ) , (2) (xn + c2 h, yn + a2,1 h k1 + a2,2 h k2 + · · · + a2,q h kq ) , (3) · · · · · · el más repetido. Ahora lo es el punto (xn , yn ), que denotaremos por (0) (xn , yn ) y que omitiremos en general en las expresiones para mayor brevedad. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Métodos implícitos de 1 etapa Ahora los métodos (implícitos) de una etapa tienen tablero c1 a11 b1 y tres parámetros a determinar. Se escriben k1 = f (xn + c1 h, yn + a1,1 h k1 ) yn+1 = yn + h b1 k1 , y se tiene Φ(h) = b1 k1 (h) . Usaremos las formas de acortar para los puntos (0) (1) para para (xn yn ) , y (xn + c1 h, yn + a1,1 h k1 ) . 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos k1 (h) = f (1) , y (1) se transforma en (0), que no escribimos, cuando h = 0, luego k1 (0) = f y Φ(0) = b1 f . Como f (0) = f , la única posibilidad (para f genérica) de que Φ(0) = f (0) es que b1 = 1 aunque ahora esto deja dos parámetros libres c1 y a1,1 , lo que permite ir a buscar mayor orden. k10 (h) = c1 fx (1) + fy (1)[ a1,1 k1 + a1,1 h k10 ] ; denotaremos por [ ] la cantidad [ ] = [ a1,1 k1 + a1,1 h k10 ] para futuras operaciones. Teniendo en cuenta que [ ]h=0 = a1,1 f , resultan k10 (0) = c1 fx + a1,1 f fy y Φ0 (0) = b1 c1 fx + b1 a1,1 f fy . 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Recordando que 1 1 (1) 1 f = fx + f fy , 2 2 2 el orden 2 necesita la ecuación ya establecida y, además, b1 c1 = 1/2 b1 a1,1 = 1/2 . Esto deja 1 2 1 2 1 como único método de 1 etapa y orden 2: el método de Gauss de 1 etapa. Recordando la afirmación que hicimos sobre el orden alcanzable, no es necesario buscar orden más alto para este método. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos La puesta en práctica de este método k1 = f (xn + 12 h, yn + 12 h k1 ) yn+1 = yn + h k1 , se apoya en las etapas explícitas del ’método del punto medio’ k̂1 = f (xn , yn ) , k̂2 = f (xn + 12 h, yn + 12 h k̂1 ) , método de orden 2, porque es natural tomar k̂2 como buena aproximación k1,0 de k1 (evaluación de f para la misma primera variable y una segunda de estructura análoga). Cuando así se hace, se efectúa una sola iteración de punto fijo para mejorar k1,0 . O sea, la secuencia de operaciones queda como 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos k̂1 = f (xn , yn ) , k1,0 = f (xn + 12 h, yn + 12 h k̂1 ) , k1 = f (xn + 12 h, yn + 12 h k1,0 ) , yn+1 = yn + h k1 , realizando un conjunto de 3 evaluaciones de f por paso para el cálculo efectivo (y sólo aproximado) de la única etapa del método. Que la solución de este método (y de hecho de todos los implícitos) sea sólo aproximada puede tener consecuencias sobre sobre el orden alcanzado y sobre el comportamiento cara a las ecuaciones ’stiff’ de las que hablaremos más adelante. Si por el momento nos referimos al orden, y teniendo en cuenta que el procedimiento de arranque (aproximación de alguna de las ki ) se hace con un método explícito, es importante que el orden del método empleado no sea inferior al del método implícito. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos No obstante, no es el orden la única cualidad que buscamos, ya que nos interesamos también por el comportamiento de cara a las ecuaciones rígidas. Se emplea mucho para 1 sola etapa el llamado ’método de Euler implícito’, con tablero 1 1 1 y que sólo posee orden 1. Como es k1 = f (xn + h, yn + h k1 ) yn+1 = yn + h k1 , a veces se le escribe en la forma más simple y equivalente yn+1 = yn + h f (xn+1 , yn+1 ) , donde ahora el carácter implícito se traslada al cálculo de yn+1 . 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos De manera análoga a lo hecho antes, la puesta en práctica de este método se apoya en las etapas explícitas del ’método modificado de Euler’ k̂1 = f (xn , yn ) , k̂2 = f (xn + h, yn + h k̂1 ) , tomando k̂2 como buena aproximación k1,0 de k1 , y dejando el método en forma práctica como k̂1 = f (xn , yn ) , k1,0 = f (xn + h, yn + h k̂1 ) , k1 = f (xn + h, yn + h k1,0 ) , yn+1 = yn + h k1 , con 3 evaluaciones de f por paso para el cálculo efectivo de la única etapa del método implícito de Euler. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Métodos implícitos de 2 etapas En primer lugar presentamos el método de Gauss de 2 etapas, con orden 4, dejando su deducción (algo pesada) para algún ejercicio. Sus coeficientes son menos sencillos e irracionales. Tiene por tablero √ √ 1 3−2 3 3− 3 6√ 4√ 12 3+ 3 3+2 3 1 6 12 4 1 2 1 2 y es el único de 2 etapas con ese orden. c1 ∼ 0.21 y c2 ∼ 0.79 son las abscisas para la integración de Gauss en [0, 1] con 2 abscisas. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Pero, para 2 etapas, uno de los más usados es el llamado ’método trapezoidal’, que sólo alcanza orden 2. Se le denomina también ’Lobatto IIIa’, como miembro de una familia de métodos emparentados con los de integración numérica de Lobatto. Sólo es implícito en la segunda etapa k2 . Su tablero es 0 1 0 0 1/2 1/2 1/2 1/2 y se escribe k1 = f (xn yn ) k2 = f (xn + h, yn + 12 h k1 + 12 h k2 ) 1 1 yn+1 = yn + h ( k1 + k2 ) . 2 2 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos De nuevo el ’método modificado de Euler’ k̂1 = f (xn , yn ) , k̂2 = f (xn + h, yn + h k̂1 ) , ŷn+1 = yn + h ( 12 k̂1 + 21 k̂2 ) . tiene etapas que nos permiten lanzar el ’método trapezoidal’. Es posible tomar k2,0 = f (xn+1 , ŷn+1 ) como buena aproximación de k2 , realizando entonces una sola mejora de k2 y dejando el método en forma práctica como k1 = k̂1 = f (xn , yn ) , k̂2 = f (xn + h, yn + h k̂1 ) , ŷn+1 = yn + h ( 21 k̂1 + 12 k̂2 ) , k2,0 = f (xn+1 , ŷn+1 ) , k2 = f (xn + h, yn + 12 h k1 + 21 h k2,0 ) , yn+1 = yn + h ( 12 k1 + 12 k2 ) . con 4 evaluaciones de f por paso para el cálculo efectivo de las dos etapas implícitas. 07. Métodos de Runge-Kutta implícitos Los métodos implícitos Métodos implícitos y métodos de Gauss Ejemplos Estos procedimientos de arranque para los métodos implícitos empleando métodos explícitos marchan bien cuando se integra un problema ’normal’ (no especialmente rígido). Sin embargo, su uso con problemas cuyo carácter ’stiff’ sea muy fuerte lleva a comportamientos similares a los de los métodos explícitos, que es justamente lo que se pretendía evitar con los implícitos. En estos casos, la única solución consiste en iterar realmente (y no una sola vez) con algún método de convergencia rápida, ya que el número de evaluaciones es una dificultad importante. Así se usa, por ejemplo el ’método de Newton’ o el ’método modificado de Newton’ y, en ocasiones, aún estos métodos tardan en llegar a una convergencia adecuada. Y es que, finalmente, los problemas de integración difícil no admiten recetas generales y requieren correcciones heurísticas hasta dar con un tratamiento y un método adecuados. El capítulo siguiente comienza a ocuparse de estos problemas cuyo tratamiento es más difícil. 07. Métodos de Runge-Kutta implícitos