TEMA 1 Problemas de Valor Inicial para Ecuaciones

Anuncio
TEMA 1
Problemas de Valor Inicial para Ecuaciones
Diferenciales Ordinarias:
Métodos Numéricos de un paso
1.
Introducción
En la mayor parte de los problemas de las ciencias y la ingenierı́a, es necesario utilizar
las ecuaciones diferenciales para modelizar los fenómenos a estudiar. En este curso, nos
restringiremos al estudio de ecuaciones diferenciales de primer orden con condiciones iniciales.
La generalización a sistemas de ecuaciones de primer orden es directa, ası́ como a ecuaciones
diferenciales ordinarias de orden superior con condiciones iniciales.
2.
Existencia, unicidad y estabilidad de la solución
En este capı́tulo nos centraremos en las ecuaciones diferenciales de primer orden de la
forma:
y 0 (x) = f (x, y(x)) , x ∈ [a, b] ,
(1)
con la condición inicial y(a) = y0 . En primer lugar, haremos un repaso de las condiciones
bajo las cuales las ecuaciones diferenciales del tipo (1) tienen solución, que sea única, y
además que la solución dependa continuamente de los parámetros de entrada (en este caso
f (x, y) e y0 ).
La existencia y unicidad de la solución la tenemos garantizada por el siguiente teorema,
que enunciaremos sin demostración. En primer lugar supondremos que f (x, y) esta definida
en la región R ⊂ R2 dada por R = {(x, y) ∈ R2 / x ∈ [a, b], y ∈ R}.
2.1 Teorema. Sea f (x, y) una función continua de x e y, para todo (x, y) ∈ R. Si la
función f (x, y) es Lipschitziana respecto a la segunda variable, es decir, si
|f (x, y) − f (x, y 0 )| ≤ L|y − y 0 | ,
∀(x, y), (x, y 0 ) ∈ R ,
(2)
para alguna constante L ≥ 0, entonces existe una única función y(x) que satisface la ecuación
diferencial y 0 (x) = f (x, y(x)) en [a, b] con y(a) = y0 .
La condición de que f (x, y) sea Lipschitziana se satisface automáticamente si f (x, y) es
(x,y)
es acotada en R. Basta aplicar el teorema
derivable respecto a la segunda variable y ∂f∂y
(x,y) del valor medio respecto a la segunda variable, obteniéndose que L es una cota para ∂f∂y
en R.
Para la resolución numérica de una ecuación diferencial, no basta con que la solución
exista y sea única, es necesario además una dependencia continua de la solución respecto a
1
los parámetros de entrada. En el ámbito de las ecuaciones diferenciales, esta “continuidad”se
denomina estabilidad. Bajo condiciones similares a las del teorema de existencia y unicidad,
tenemos el siguiente teorema (que tampoco demostraremos):
2.2 Teorema: Si consideramos el problema perturbado
y 0 (x) = f (x, y(x)) + δ(x) ,
y(a) = y0 + ,
(3)
bajo las mismas hipótesis que en el teorema anterior, con δ(x) continua para todo x tal que
(x, y) ∈ R, entonces la ecuación (3) tiene una única solución y(x; δ, ) en el intervalo [a, b],
para todo || ≤ 0 y ||δ||∞ ≤ 0 , con 0 suficientemente pequeño. Además, si y(x) es la
solución exacta al problema no perturbado, entonces
máx |y(x) − y(x; δ, )| ≤
x∈[a,b]
1
[|| + (b − a)||δ||∞ ] .
1 − (b − a)L
(4)
Una vez que hemos visto que el problema de resolver una ecuación diferencial (bajo determinadas hipótesis) esta bien planteado (en la terminologı́a del primer capı́tulo), podemos
afrontar su resolución numérica. Generalmente, la resolución numérica consistirá en hallar
los valores de y(x) en cierto subconjunto discreto de valores de x, xi , i = 0, 1, . . . , n. Denotaremos por yi al valor y(xi ).
Los métodos numéricos que consideraremos, dado el carácter introductorio de este capı́tulo, son el método de Euler y el de Runge-Kutta. Estos son métodos de un paso, en el
sentido de que para obtener yn+1 tan sólo se requiere el conocimiento de yn .
Existen otros métodos, denominados multipaso, en los cuales para calcular yn+1 se requiere conocer los valores yn , yn−1 , . . . , yn−k+1 , si el método es de k pasos. Estos métodos
presentan el inconveniente de que se requieren k valores de y para comenzar a funcionar, por
lo que necesitan k − 1 pasos de un método de un paso (tal y como un Runge-Kutta) previamente. Por contra, presentan la ventaja de que aminoran los errores que se producen en
cada paso al utilizar más de un valor de y, y sobre todo porque en la resolución numérica de
ecuaciones diferenciales con valores iniciales el error aumenta a medida que se realizan más
pasos, de manera que al principio se comete menos error mientras que al final del intervalo
los errores son grandes. Por eso es natural que se disminuya el error al utilizar cuantos más
valores previos mejor, pues estos presentan menor error.
Los métodos multipaso los estudiaremos en el siguiente capı́tulo.
3.
El método de Euler
El método de Euler es el más simple de todos los métodos numéricos de resolución de
ecuaciones diferenciales. En la práctica no es utilizado, pues ha sido ampliamente superado
por otros métodos. Sin embargo, por su simplicidad y por contener la mayor parte de las
ideas en las que se fundamentan el resto de los métodos utilizados, sirve como introducción
en cualquier libro sobre resolución numérica de ecuaciones diferenciales.
Por simplicidad, vamos a suponer que los nodos xi están equiespaciados, de manera que
xi = x0 + ih, con h la separación entre nodos y x0 = a. Entonces, el método de Euler se
define como:
yn+1 = yn + hf (xn , yn ) ,
(5)
2
con y0 = y(x0 ). Esta expresión es fácil de obtener de diversos modos: geométricamente,
aproximando la función por su tangente, haciendo el desarrollo de Taylor y quedándonos
en primer orden, aproximando la derivada y 0 (x) por su versión finita (y(xn+1 ) − y(xn ))/h, o
integrando la ecuación directamente utilizando la regla del rectángulo izquierda.
La ventaja de derivar el método de Euler de diferentes formas es su fácil generalización.
Tomando más términos en el desarrollo de Taylor tenemos los métodos de Taylor de orden
superior (en particular los Runge-Kutta). Por otro lado, aproximando la integral tomando
más puntos intermedios tenemos los métodos multipaso.
Es posible dar teoremas que garantizan la convergencia del método de Euler y cotas para
el error local, es decir, el error que se comete en el cálculo de yn+1 a partir de yn .
3.1 Teorema: Bajo las condiciones del teorema de existencia y unicidad, y suponiendo
que la solución exacta y(x) tiene derivada segunda acotada en el intervalo [a, b], entonces la
solución obtenida por el método de Euler satisface:
máx |y(xn ) − yn | ≤ e(b−a)L |e0 | + h
a≤xn ≤b
e(b−a)L − 1 00
||y ||∞ ,
2L
(6)
con e0 = y(x0 ) − y0 .
Cuando y0 = y(x0 ), que es el caso más normal, se tiene que |y(xn ) − yn | ≤ ch, con c
constante, indicando que el error local en el método de Euler es proporcional a h.
Además del error que se produce al aproximar y(xn ) por yn en el método de Euler, hemos
de tener en cuenta los errores de redondeo que se producen al hacer los cálculos en aritmética
finita. Si llamamos ỹn al valor real calculado, se tendrá:
ỹn+1 = ỹn + hf (xn , ỹn ) + ρn .
(7)
Denotemos por ρ el máximo valor que toma |ρn |. Este valor no decrece cuando h → 0,
sino que se mantiene aproximadamente constante, de manera que ρ ≈ u||y||∞ , donde u es
la unidad de máquina. Si llamamos ẽn al error real en y(xn ), ẽn = y(xn ) − ỹn , se puede
demostrar que:
ρ
e(b−a)L − 1 h 00
(b−a)L
||y ||∞ +
.
(8)
ẽn ≤ e
|y(x0 ) − ỹ0 | +
K
2
h
Si asumimos que ỹ0 = y(x0 ), entonces se tiene que ẽn ≤ c h2 ||y 00 ||∞ + hρ , revelando que
el error real no tiende a cero cuando h → 0. Este comportamiento es similar al que ocurrı́a
en la derivación numérica y es consecuencia del mal condicionamiento de la derivación. En
la práctica, el comportamiento no es exactamente de este modo, es decir, el error no crece
como 1/h al tender h a cero, pero sı́ existe un h∗ óptimo a partir del cual el error crece si
disminuimos h.
Al igual que ocurrı́a con la derivación numérica, una vez que se conoce el comportamiento
del error para h → 0, es posible mejorar la solución usando la técnica de la extrapolación de
Richardson.
3
4.
Métodos de Runge-Kutta
Como ya hemos comentado, el método de Euler consiste en quedarse con el primer término
del desarrollo de Taylor de la solución. Este método es fácilmente generalizable a ordenes
mayores simplemente tomando más términos en el desarrollo de Taylor. De esta manera se
pueden conseguir métodos cuyo error vaya como O(h2 ), O(h3 ), etc. El problema de estos
métodos es que requieren calcular derivadas de ordenes superiores de la función f (x, y).
Los métodos de Runge-Kutta substituyen el cálculo de las derivadas de f (x, y) por la
evaluación de esta función en puntos intermedios, de manera que sigan manteniendo el mismo
error que el método de Taylor correspondiente. Resultan ası́ unos métodos muy compactos
y sencillos de programar, por lo que se han popularizado bastante.
La idea general para estos métodos es substituir en el método de Euler el valor de la
pendiente f (xn , yn ), que es exacta sólo en xn , por un especie de valor promedio para el
intervalo [xn , xn+1 ], F (xn , yn ; h). La forma de estos métodos es:
yn+1 = yn + hF (xn , yn ; h) .
(9)
Comencemos por el método más sencillo, de orden 2. Supongamos que F es de la forma
F (x, y, ; h) = γ1 f (x, y) + γ2 f (x + αh, y + βhf (x, y)), donde las constantes {γ1 , γ2 , α, β}
se determinan de manera que al substituir la solución exacta en (9) se tenga un error de
truncamiento similar al del método de Taylor de orden 2, es decir, orden O(h3 ). Esto conduce
a unas ecuaciones que relacionan estos parámetros, dando lugar a una familia uniparamétrica
de métodos de Runge-Kutta de orden 2. El error para la solución de estos métodos es de
orden O(h2 ).
Del mismo modo se procede para los métodos de orden mayor. El más clásico es el de
orden 4, que tiene la siguiente forma:
con
h
yn+1 = yn + [K1 + 2k2 + 2K3 + K4 ] ,
6
(10)
K1 = f (xn , yn ) ,
K2 = f (xn + h2 , yn + h2 K1 )
K3 = f (xn + h2 , yn + h2 K2 ) , K4 = f (x + h, yn + hK3 ) .
(11)
Este método resulta ser efectivamente de cuarto orden, y el error en la solución va como
O(h4 ).
Una variante de los métodos de Runge-Kutta es el método Runge-Kutta-Fehlberg. En
este método se utiliza un método de Runge-Kutta de orden 4 junto con otro de orden 5 que
sirve para estimar el error local (tomando la solución yn proporcionada por el de orden 5
como exacta). De esta manera, si en el paso n-ésimo el error local obtenido es muy grande,
se disminuye el valor de h es este paso y se recalcula yn con este h. Del mismo modo. cuando
el error es muy pequeño, se aumenta h para evitar un número innecesario de cálculos en las
regiones en las que la solución es muy suave.
4
Descargar