Métodos numéricos para problemas de valor inicial

Anuncio
Cálculo IV
E.T.S.I. de Minas
Departamento de
Matemática Aplicada II
Curso 2010–2011
Métodos numéricos para problemas de valor inicial
1
Introducción
Consideramos el problema de valor inicial asociado a la ecuación diferencial ordinaria de primer
orden:
y (x) = f (x, y(x)), a ≤ x ≤ b,
P.V.I.
y(a) = y0 ,
Teorema 1 (de Picard).
Supongamos que f : D ⊂ R → R, verifica:
(H1) f es continua sobre D.
(H2) ∃ k > 0/ |f (x, y1 ) − f (x, y2 )| ≤ k |y1 − y2 |, ∀(x, y1 ), (x, y2 ) ∈ D
(Condición de Lipschitz)
Entonces, para (x0 , y0 ) ∈ D el P.V.I. admite una única solución.
Observación 1 Salvo en casos muy particulares, no se puede encontrar la solución del P.V.I.,
lo que hace conveniente disponer de métodos numéricos. En estos se sustituye el cálculo de una
función solución y(x) por la aproximación del valor de esa solución en un conjunto discreto de
puntos.
1. Se divide el intervalo (a, b) en n subintervalos. Dado el número natural n se define el paso
de discretización:
b−a
h=
n
y los puntos de discretización o nodos:
xi = a + ih,
i = 0, 1, . . . , n.
a = x0 < x1 < x2 < . . . < xn = b
•
•
x0
•
•
x1 x2
1
...
xn−1
•
xn
2. Se aproxima el valor de y en esos puntos.
• y(xi ): valor exacto de la solución en xi .
• yi : valor aproximado teórico de la solución en xi .
• ỹi : valor que se obtiene en la práctica en el ordenador.
De este modo se pueden analizar los siguientes errores:
|ei | = |y(xi ) − yi | = error de discretización.
|ri | = |yi − ỹi | = error de redondeo.
Luego, en la práctica, el error total es:
|y(xi ) − ỹi | = |ei | + |ri |
Definición 1 Un método numérico se dice de un paso si para calcular yi+1 se utiliza el valor
aproximado de yi :
yi+1 = yi + h φ(xi , xi+1 , yi , yi+1 , h).
Un método numérico se dice de k pasos (o multipaso) si para calcular yi+1 se utilizan los k
valores anteriores, es decir, yi , yi−1 , . . . , yi−k+1 :
yi+1 = yi + h φ(xi−k+1 , xi−k , . . . , xi , xi+1 , yi−k+1 , yi−k , . . . , yi , yi+1 , h).
Los métodos multipaso necesitan iniciarse con métodos de un menor número de pasos.
Definición 2 Un método numérico es explı́cito si calcula yi+1 a partir de los datos anteriores:
yi+1 = yi + h φ(x0 , . . . , xi+1 , y0 , . . . , yi , h)
Se dice que el método numérico es implı́cito en caso contrario. En general, los métodos implı́citos obligan a resolver una ecuación no lineal en cada iteración (bisección, regula-falsi, punto
fijo, Newton-Raphson).
2
Métodos de un paso
(1) Método de Euler explı́cito.
Corresponde al esquema
yi+1 = yi + h f (xi , yi ) ; y0 = y(x0 ).
Es un método explı́cito y de un paso.
(2) Método de Euler implı́cito.
Corresponde al esquema
yi+1 = yi + h f (xi+1 , yi+1 ) ; y0 = y(x0 ).
(3) Método del trapecio.
Se obtiene empleando la fórmula del trapecio para integración numérica:
yi+1 = yi +
h
[f (xi , yi ) + f (xi+1 , yi+1 )] ; y0 = y(x0 ).
2
2
Es un método implı́cito.
(4) Método de Euler corregido
yi+1 = yi + h f (xi+1 , yi + h f (xi , yi )) ; y0 = y(x0 ).
(5) Método de Euler mejorado o de Heun.
h
[f (xi , yi ) + f (xi+1 , yi + h f (xi , yi ))] ; y0 = y(x0 ).
2
(6) Métodos de Runge-Kutta
Sea y(x) solución de la ecuación diferencial ordinaria y (x) = f (x, y). Por integración sobre
[x, x + h] se tiene
x+h
y(x + h) = y(x) +
f (s, y(s)) ds
yi+1 = yi +
x
Por tanto, se utilizarán fórmulas de cuadratura numérica para aproximar dicha integral y aproximar la solución de la ecuación diferencial.
b
N
g(x) dx =
Ak g(xk )
NOTA: Fórmula de cuadratura numérica
a
k=0
donde xk son los nodos y Ak son los pesos.
Según la fórmula utilizada se obtienen los distintos métodos. Los siguientes métodos son explı́citos, de un paso y se puede alcanzar cualquier orden p deseado.
1. Runge-Kutta de orden 1 (Método de Euler).
yi+1 = yi + h K1 ,
i = 1, 2, . . . , n,
K1 = f (xi , yi ).
2. Runge-Kutta de orden 2 (Método de Heun).
h
yi+1 = yi + (K1 + K2 ), i = 1, 2, . . . , n,
2
K1 = f (xi , yi ),
K2 = f (xi + h, yi + h K1 ).
3. Runge-Kutta de orden 2 (Método de Euler modificado).
yi+1 = yi + h K2 ,
i = 1, 2, . . . , n,
K1 = f (xi , yi ),
K2 = f (xi + h2 , yi +
h
2
K1 ).
4. Método de Runge-Kutta de orden 3.
h
yi+1 = yi + (2K1 + 3K2 + 4K3 ), i = 1, 2, . . . , n,
9
K1 = f (xi , yi ),
K2 = f (xi + h2 , yi +
K3 = f (xi +
h
2
K1 ),
3h
3h
, yi +
K2 ).
4
4
3
5. Método de Runge-Kutta de orden 4.
h
yi+1 = yi + (K1 + 2K2 + 2K3 + K4 ), i = 1, 2, . . . , n,
6
K1 = f (xi , yi ),
K2 = f (xi + h2 , yi +
K3 = f (xi + h2 , yi +
h
2
h
2
K1 ),
K2 ),
K4 = f (xi + h, yi + h K3 ).
Es el método más utilizado, conocido como método clásico.
Observación 2 Como puede verse en los ejemplos anteriores, no existe un único método de
Runge-Kutta para cada orden p, sino que hay toda una familia de métodos para un orden dado.
También existen métodos implı́citos, pero no se usan tanto.
3
Métodos multipaso
(1) Métodos de Adams-Bashforth
Se conoce como fórmula de Adams-Bashforth de (k + 1) pasos a una fórmula del tipo:
yi+1 = yi + h
k
βj fi−j ,
j=0
donde:
fi = f (xi , yi )
y los coeficientes βj (pesos de la fórmula de cuadratura) se determinan de tal forma que la
fórmula de cuadratura sea exacta para polinomios de grado menor o igual que k.
Entonces, a partir de y0 , y1 , . . . , yk conocidos, se pueden calcular todos los restantes yi , i =
k + 1, . . . , n. Claramente son métodos explı́citos.
Fórmulas de Adams-Bashforth:
1. Caso k = 0 (1 paso, orden 1) (Es el método de Euler)
yi+1 = yi + h fi
2. Caso k = 1 (2 pasos, orden 2)
h
yi+1 = yi + (3fi − fi−1 )
2
3. Caso k = 2 (3 pasos, orden 3)
h
(23fi − 16fi−1 + 5fi−2 )
yi+1 = yi +
12
4. Caso k = 3 (4 pasos, orden 4)
h
(55fi − 59fi−1 + 37fi−2 − 9fi−3 )
yi+1 = yi +
24
4
(2) Métodos de Adams-Moulton
Se conoce como fórmula de Adams-Moulton de k pasos a una fórmula del tipo:
yi+1 = yi + h
k
βj fi+1−j ,
j=0
donde fi = f (xi , yi ) y los coeficientes βj se determinan de tal forma que la fórmula de cuadratura
sea exacta para polinomios.
Fórmulas de Adams-Moulton:
1. Caso k = 0 (orden 1) (Se conoce como método de Euler implı́cito)
yi+1 = yi + h fi+1
2. Caso k = 1 (orden 2)
h
yi+1 = yi + (fi+1 + fi )
2
3. Caso k = 2 (orden 3)
h
yi+1 = yi + (5fi+1 + 8fi − fi−1 )
12
4. Caso k = 3 (orden 4)
h
yi+1 = yi + (9fi+1 + 19fi − 5fi−1 + fi−2 )
24
Observación 3 Obsérvese que en todos los casos para el cálculo de yi+1 se utiliza el valor
fi+1 = f (xi+1 , yi+1 ) que es desconocido. Esto hace que los métodos de Adams-Moulton no sean
aplicables directamente para avanzar en la solución, ya que el valor yi+1 aparece en ambos lados
de la ecuación. En contrapartida, los métodos implı́citos tienen orden de convergencia mayor
que los explı́citos. Para calcular yi+1 se deberá recurrir a métodos iterativos de resolución de
ecuaciones algebraicas (por ejemplo, el método de Newton-Raphson).
4
Métodos predictor-corrector
Las fórmulas de Adams-Bashforth y de Adams-Moulton raramente se utilizan de manera independiente. Se suelen utilizar de manera conjunta para aumentar la precisión de la solución.
Unos algoritmos muy eficientes son los conocidos como métodos predictor-corrector que consisten en el conjunto formado por un método implı́cito y otro explı́cito usados simultáneamente.
Veamos cómo es el procedimiento:
En primer lugar se utiliza un método explı́cito
∗
= yi + h φp (xi−k , . . . , xi , yi−k , . . . , yi , h)
yi+1
∗ .
para “predecir” un valor aproximado de yi+1 , que denotaremos por yi+1
5
A continuación, se usa un método implı́cito
∗
, h)
yi+1 = yi + h φc (xi−k , . . . , xi , xi+1 , yi−k , . . . , yi , yi+1
∗ , esto es:
para “corregir” el valor de yi+1 , utilizando para el cálculo de fi+1 el valor predicho yi+1
∗
fi+1 = f (xi+1 , yi+1
).
(Esta “corrección” puede realizarse tantas veces como se quiera).
5
Métodos basados en la derivación numérica
Sea y(x) solución del PVI
y (x) = f (x, y(x)),
y(a) = y0 ,
a ≤ x ≤ b,
Los métodos basados en la derivación numérica proponer resolver numéricamente este problema
mediante esquemas de la forma
s
1 αj yi+1+j = f (xi+1 , yi+1 )
h
j=−k
donde el primer término representa una aproximación de y (xi ).
Definición 3 Se denomina esquema BDF (Backward Differentiation Formulas) para la resolución del PVI a un método que se escribe de la forma
0
1 αj yi+1+j = f (xi+1 , yi+1 )
h
j=−k
Ejemplo 1
1. Empleando la fórmula de derivación numérica
y(x + h) − y(x)
= y (x + h) + O(h)
h
se obtiene un esquema con k = 1 (1 paso)
yi+1 − yi = h f (xi+1 , yi+1 )
que coincide con el método de Euler implı́cito.
2. Empleando la fórmula de derivación numérica
3
2 y(x
+ h) − 2y(x) + 12 y(x − h)
= y (x + h) + O(h2 )
h
se obtiene un esquema con k = 2 (2 pasos)
1
3
yi+1 − 2yi + yi−1 = h f (xi+1 , yi+1 )
2
2
6
Observación 4 En realidad se denominan esquemas BDF a la familia de esquemas que emplea,
para cada valor de k (número de pasos), una fórmula de derivación numérica de orden k.
Tabla de esquemas BDF
0
1 αj yn+1+j = f (xn+1 , yn+1 )
h
j=−k
k
α0
α−1
α−2
α−3
α−4
α−5
1
1
-1
2
3/2
-2
1/2
3
11/6
-3
3/2
-1/3
4
25/12
-4
3
-4/3
1/4
5
137/60
-5
5
-10/3
5/4
-1/5
6
147/60
-6
15/2
-20/3
15/4
-6/5
α−6
1/6
Observación 5 No se emplean esquemas BDF con k ≥ 7 puesto que no satisfacen la condición
denominada cero-estabilidad (al resolver un problema con f = 0, las soluciones numéricas deben
ser acotadas).
6
Sistemas de ecuaciones diferenciales ordinarias
Se quiere resolver el sistema de ecuaciones diferenciales ordinarias
⎧ y1 (x) = f1 (x, y1 (x), . . . , ym (x)), y1 (x0 )
⎪
⎪
⎪
⎪
y
⎪
⎨ 2 (x) = f2 (x, y1 (x), . . . , ym (x)), y2 (x0 )
..
.
⎪
⎪
⎪
y (x) = fm−1 (x, y1 (x), . . . , ym (x)), ym−1 (x0 )
⎪
⎪
⎩ m−1
(x) = f (x, y (x), . . . , y (x)), y (x )
ym
m
1
m
m 0
Considerando las incógnitas como componentes de una función vectorial de una variable
Y (x) = (y1 (x), . . . , ym (x))
y las ecuaciones como componentes de una función vectorial de varias variables
F (x, Y (x)) = (f1 (x, Y (x)), . . . , fm (x, Y (x)))
dicho sistema se puede escribir como una ecuación vectorial
Y (x) = F (x, Y (x))
De manera que los esquemas de ecuaciones se adaptan de modo natural. Por ejemplo, el método
de Euler explı́cito se escribe:
Yi+1 = Yi + h F (xi , Yi ) ; Y0 = (y1 (x0 ), . . . , ym (x0 ))
7
lo cual representa
yi+1,1 = yi,1 + h f1 (xi , yi,1 , . . . , yi,m ),
yi+1,2 = yi,2 + h f2 (xi , yi,1 , . . . , yi,m ),
..
.
yi+1,m = yi,m + h fm (xi , yi,1 , . . . , yi,m )
7
Ecuaciones diferenciales ordinarias de orden superior
La resolución numérica de una ecuación diferencial ordinaria de orden superior
m
y (x) = f (x, y(x), y (x), . . . , y m−1 (x))
y(x0 ) = y0 , y (x0 ) = y0 , . . . , y m−1 (x0 ) = y0m−1
se realizará transformándola en un sistema equivalente. Si se consideran las nuevas variables
z1 = y, z2 = y , . . . , zm = y m−1 , la ecuación diferencial de orden m se puede escribir de forma
equivalente como el sistema de m ecuaciones de primer orden
⎧ z1 = z2 = f1 (x, z1 , z2 , . . . , zm )
⎪
⎪
⎪
⎪
z
⎪
⎨ 2 = z3 = f2 (x, z1 , z2 , . . . , zm )
..
.
⎪
⎪
⎪
= zm = fm−1 (x, z1 , z2 , . . . , zm )
z
⎪
⎪
⎩ m−1
= f (x, z , z , . . . , z ) = f (x, z , z , . . . , z )
zm
m
1 2
m
1 2
m
A continuación se denota
Z(x) = (z1 (x), . . . , zm (x)),
F (x, Z(x)) = (f1 (x, Z(x)), . . . , fm (x, Z(x)))
8
Conceptos ligados a los métodos numéricos
Dado un PVI se considera su resolución numérica mediante el siguiente método numérico explı́cito de un paso:
⎧
⎨ yi+1 = yi + h φ(xi , yi , h), i ≥ 0
(ME)
⎩ xi = x0 + i h, h = b − a
n
Definición 4 Un método numérico se dice de orden p si p es el mayor entero que verifica:
y(x + h) − y(x) − h φ(x, y(x), h) = O(hp+1 )
siendo y(x) la solución exacta de y (x) = f (x, y(x)).
O bien
y(x + h) − y(x)
− φ(x, y(x), h) = O(hp )
h
El método numérico aproxima la ecuación diferencial con un orden p (error de orden p en h).
8
Observación 6 Se dice que F (h) = O(hk ) si
∃M > 0/ |F (h)| ≤ M |hk |, 0 < h < δ.
Si consideramos x = xi , se tiene
y(xi + h) − y(xi ) − h φ(xi , y(xi ), h) = y(xi+1 ) − yi+1
= error local de discretización = O(hp+1 ).
Por ejemplo, el método de Euler explı́cito es de orden 1.
Definición 5 Se dice que el método (ME) es consistente con la ecuación diferencial ordinaria
y (x) = f (x, y(x)) si se verifica
lim φ(x, y, h) = f (x, y)
h→0
Observación 7 Puesto que
yi+1 − yi
− φ(xi , yi , h)
h
esta condición asegura que se aproxima a la ecuación diferencial ordinaria.
El método de Euler explı́cito es claramente consistente.
Definición 6 Se denomina error de truncamiento local del método numérico (ME) en el
paso i-ésimo a
y(xi+1 ) − y(xi )
− φ(xi , y(xi ), h)
τi (h) =
h
Observación 8
1. Se puede interpretar como una medida del error cometido en xi+1 a partir del valor exacto
y(xi ).
2. Si el método numérico es de orden p, entonces
τi (h) = O(hp )
Proposición 1 El método numérico (ME) es consistente si y sólo si verifica
lim ( max |τi (h)|) = 0.
h→0 0≤i≤n
Observación 9 Los métodos consistentes son de orden uno al menos.
Definición 7 El método numérico (ME) se denomina estable si para toda terna de sucesiones
{yi }, {zi }, {εi }
yi+1 = yi + h φ(xi , yi , h)
zi+1 = zi + h [φ(xi , zi , h) + εi ](∗), i = 0, 1, . . . , n − 1
existe M > 0, independiente de h, tal que
max |yi − zi | ≤ M (|y0 − z0 | + max |εk |)
0≤i≤n
0≤k≤n
9
Observación 10
1. Suponiendo que f (x, y) es suficientemente regular, la solución exacta del PVI y una solución de un problema perturbado verifican una acotación similar.
La ecuación (∗) supone la posibilidad de que haya un error en la formulación de la ecuación
diferencial ordinaria y que la condición inicial tenga un error.
2. La condición de estabilidad de un método numérico asegura que los errores de redondeo εi
que aparezcan en la resolución numérica originan errores |yi − zi | en la solución acotados
por los anteriores.
{εi } acotada ⇒ {|yi − zi |} acotada
Proposición 2 Si la función φ(x, y, h) verifica la condición de Lipschitz con respecto a la segunda variable:
∃k > 0/ |φ(x, y, h) − φ(x, z, h)| ≤ k |y − z|, ∀x ∈ (a, b), y, z ∈ R
entonces el método numérico (ME) es estable.
Definición 8 Se dice que el método numérico (ME) es convergente si se verifica
lim yi = y(xi ), xi = x0 + i h
h→0
La solución exacta del PVI se puede aproximar tanto como se quiera sin más que reducir el paso
h.
Proposición 3 Consistencia + Estabilidad ⇔ Convergencia
Ejercicio 1 Sea f una función que verifica una condición de Lipschitz respecto de la segunda
variable para x ∈ [a, b]. Para aproximar el valor del problema de Cauchy
y (x) = f (x, y(x)) , x ∈ [a, b]
y(0) = 0
se considera el método de Heun
yi+1 = yi +
h
[f (xi , yi ) + f (xi+1 , yi + h f (xi , yi ))] ; y0 = y(x0 ).
2
Estudiar si el método es consistente, estable y convergente.
Solución: En el caso del método de Heun se tiene que
1
φ(x, y, h) = [f (x, y) + f (x + h, y + hf (x, y))].
2
El método es obviamente consistente ya que
1
1
[f (x, y) + f (x + h, y + hf (x, y))] = [f (x, y) + f (x, y)] = f (x, y).
h→0 2
2
lim φ(x, y, h) = lim
h→0
10
Para ver que es estable bastará ver, gracias a la Proposición 2, que φ verifica una condición
de Lipschitz respecto de la segunda variable. Ahora bien, como f la verifica, se tiene que
∃k > 0/ |f (x, y) − f (x, z)| ≤ k |y − z|, ∀x ∈ (a, b), y, z ∈ R.
Ası́ pues, se tiene:
1
|φ(x, y, h) − φ(x, z, h)| = |f (x, y) + f (x + h, y + hf (x, y)) − f (x, z) − f (x + h, z + hf (x, z))|
2
1
1
≤ |f (x, y) − f (x, z)| + |f (x + h, y + hf (x, y)) − f (x + h, z + hf (x, z))| ≤
2
2
1
1
≤ k |y − z| + k |y + hf (x, y) − z − hf (x, y)| ≤
2
2
1
1
1
≤ k |y − z| + k |y − z| + k |hf (x, y) − hf (x, y)| ≤
2
2
2
1
≤ k |y − z| + kh k|y − z| = M |y − z| ,
2
donde M = k + (k2 h)/2.
Finalmente, como el método es consistente y estable, en virtud de la Proposición 3, será
convergente.
11
Descargar