07. Métodos de Runge-Kutta implícitos

Anuncio
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
Descargar