2.3 Métodos Runge

Anuncio
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!).
Descargar