1 Soluciones Numéricas a EDs

Anuncio
ITESM, Campus Monterrey
Departamento de Matemáticas
MA-841: Ecuaciones Diferenciales
Lectura #21
1
1.1
Invierno 2001
Profesor: Eduardo Uresti
Soluciones Numéricas a EDs
Introducción: Soluciones numéricas?
En general, los métodos de solución a EDs se pueden agrupar en 3 categorias.
Los métodos analı́ticos los cuales se basan en el manejo de expresiones
matemáticas como la derivación, integración, la simplificación algebraica, o
la factorización. Estos producen como resultado la fórmula de la función
solución. Este tipo de métodos es preferible pues apartir de la fórmula de
solución puede graficarse la función solución o hacer tablas de valores de ella.
Pero a veces, para problemas reales no es posible resolver analı́ticamente una
ED. Este “a veces” se convierte en “en general” en problemas reales.
Los métodos gráficos pretenden describir gráficamente el comportamiento
cualitativo de la función. Conclusiones como que la función solución se estaciona en un valor para valores grandes de la variable independiente, o que la
función crece y alcanza un máximo y posteriormente se estaciona, pueden
ser las conclusiones que se obtienen utilizando este tipo de métodos.
A la par de estos métodos están los métodos numéricos. Los métodos
numéricos pretenden hacer una tabla de valores para la función incógnita
y solución al problema. Estos métodos se aplican a problemas con valores
iniciales y producen respuestas del tipo
x
1.00
1.10
1.20
1.30
1.40
1.50
y = f (x)
1.000
1.200
1.464
1.815
2.285
2.927
Todos los métodos numéricos son aproximados, y como es de esperarse existen toda una gama con fuertes diferencias entre ellos. Desde los que invierten
poco esfuezo computacional hasta aquellos que consumen gran cantidad de
recursos. El sentido común funciona; aquellos que invierten más recursos
computacionales obtienen tablas de valores más aproximadas a los valores
obtenidos utilizando la fórmula de la función solución exacta en general.
En la siguiente sección veremos algunas técnicas de obtención de los valores
y = f (x) de la función solución.
1.2
Generalidades
En esta sección estaremos interesados en hacer una presentación y revisión
comentada de algunos métodos numéricos para la solución al problema
y 0 = f (x, y)
y(x0 ) = y0 ,
es decir, a una ED de primer orden con condiciones iniciales y(x0 ) = y0 .
Esta información será el primer renglón de la tabla que estamos interesados
en formar:
x
x0
···
y = f (x)
y0
···
La forma como ha sido tratado el llenado de esta tabla ha sido pensado en
un proceso iterativo-recursivo. Explicaremos. Supongamos que la tabla está
llena hasta el paso o renglón n, cómo llenar el siguiente?:
x
x0
x1
x2
..
.
y = f (x)
y0
y1
y2
..
.
xn
yn
Usualmente los valores de x están igualmente espaciados y la distancia entre
ellos es una constante fijada por el que quiere resolver el problema, que
llamaremos simplemente “el usuario”. Esta distancia se conoce como el
paso y se simboliza comnmente por la letra h. De esta forma, el punto xn+1
se puede calcular fácimente por la fórmula
xn+1 = xn + h = xo + n h
2
Aunque la fórmula xn = xo + n h es matemáticamente válida y simple,
en general se prefiere la versión recursiva xn+1 = xn + h. El problema
ahora se reduce a las fórmulas para calcular yn+1 . Aquı́ se puede hacer
una división entre diferentes métodos. En áquellos que para el cálculo de
yn+1 sólo utilizan la información del renglón anterior de la tabla (xn , yn ) y
áquellos que utilizan los dos renglones anteriores o más de la tabla. Estos
últimos métodos se conocen en la literatura como métodos multipaso. Los
primeros son más sencillos. Entre estos todavı́a hay separaciones. Están
aquellos utilizan información intermedia para aproximar mejor el valor de
yn+1 y otros que sólo utilizan la función y el renglón anterior.
1.3
Método de Euler
El método de Euler es el método más simple utilizado para resolver el problema
y 0 = f (x, y)
(1)
y(x0 ) = y0 .
La deducción del método utiliza el desarrollo de Taylor de la función solución
y(x) en el punto x = xn la cual queda:
y(x) = y(xn ) + a1 (x − xn ) + a2 (x − xn ) + · · ·
donde los valores de a1 y a2 se calculan por las fórmulas
a1 =
y 0 (xn )
1!
y
y 00 (xn )
2!
si la serie infinita anterior se trunca lo que se obtiene es una aproximación;
al truncarla hasta el segundo término obtenemos:
a2 =
y(x) ≈ y(xn ) + y 0 (xn ) (x − xn )
si tomamos ahora x = xn+1 = xn + h obtenemos:
y(xn+1 ) ≈ y(xn ) + y 0 (xn ) h
Puesto que y(x) es la solución a la ED (??), se debe complir
y 0 (xn ) = f (xn , yn )
3
(2)
si sustituimos la anterior fórmula en la aproximación (??) obtenemos
y(xn+1 ) ≈ y(xn ) + f (xn , yn ) h
La cual nos da la relación de recurrencia utilizada por el método de Euler
para la determinación de yn+1
yn+1 = yn + h f (xn , yn )
1.3.1
(3)
Ejemplo
Aplique el método de Euler con paso h = 0.1 para determinar el valor y(1.5)
donde y(x) es la solución al problema
y0 = 2 x y
y(1) = 1.
(4)
Solución
Debemos construir la tabla de valores aproximados de la solución:
x
..
.
y = f (x)
..
.
1.5
Sabemos que nuestro primer renglón está constituido por los datos (x0 =
1, y0 = 1) y que el paso es h = 0.1 ası́ que nuestra tabla inicia en
x
x0
x1
x2
x3
x4
x5
= 1.0
= x0 + 0.1 = 1.1
= x1 + 0.1 = 1.2
= x2 + 0.1 = 1.3
= x3 + 0.1 = 1.4
= x4 + 0.1 = 1.5
y = f (x)
y0 = 1.0
Llenemos la columna para la y:
x
x0
x1
x2
x3
x4
x5
= 1.0
= x0 + 0.1 = 1.1
= x1 + 0.1 = 1.2
= x2 + 0.1 = 1.3
= x3 + 0.1 = 1.4
= x4 + 0.1 = 1.5
y = f (x)
y0 = 1.0
y1 = y0 + h f (x0 , y0 ) = 1.000 + 0.1 (2 × 1 × 1) = 1.200
y2 = y1 + h f (x1 , y1 ) = 1.200 + 0.1 (2 × 1.1 × 1.200) = 1.464
y3 = y2 + h f (x2 , y2 ) = 1.464 + 0.1 (2 × 1.2 × 1.464) = 1.815
y4 = y3 + h f (x3 , y3 ) = 1.815 + 0.1 (2 × 1.3 × 1.815) = 2.611
y5 = y4 + h f (x4 , y4 ) = 2.611 + 0.1 (2 × 1.4 × 2.611) = 2.927
4
La solución que temos es y(1.5) ≈ 2.927. Si en lugar de tomar el paso como
h = 0.1 hubieramos elegido h = 0.05 tendrı́amos la tabla:
x
x0 = 1.00
x1 = x0 + 0.05 = 1.05
x2 = x1 + 0.05 = 1.10
x3 = x2 + 0.05 = 1.15
x4 = x3 + 0.05 = 1.20
x5 = x4 + 0.05 = 1.25
x6 = x0 + 0.05 = 1.30
x7 = x1 + 0.05 = 1.35
x8 = x2 + 0.05 = 1.40
x9 = x3 + 0.05 = 1.45
x10 = x4 + 0.05 = 1.50
y = f (x)
y0 = 1.000
y1 = y0 + h f (x0 , y0 ) = 1.000 + 0.05 (2 × 1.00 × 1.000) = 1.100
y2 = y1 + h f (x1 , y1 ) = 1.100 + 0.05 (2 × 1.05 × 1.100) = 1.215
y3 = y2 + h f (x2 , y2 ) = 1.215 + 0.05 (2 × 1.10 × 1.215) = 1.349
y4 = y3 + h f (x3 , y3 ) = 1.349 + 0.05 (2 × 1.15 × 1.349) = 1.504
y5 = y4 + h f (x4 , y4 ) = 1.504 + 0.05 (2 × 1.20 × 1.504) = 1.684
y6 = y5 + h f (x5 , y5 ) = 1.684 + 0.05 (2 × 1.25 × 1.684) = 1.895
y7 = y6 + h f (x6 , y6 ) = 1.895 + 0.05 (2 × 1.30 × 1.895) = 2.141
y8 = y7 + h f (x7 , y7 ) = 2.141 + 0.05 (2 × 1.35 × 2.141) = 2.431
y9 = y8 + h f (x8 , y8 ) = 2.431 + 0.05 (2 × 1.40 × 2.431) = 2.771
y10 = y9 + h f (x9 , y9 ) = 2.771 + 0.05 (2 × 1.45 × 2.771) = 3.173
La solución que otenemos es este caso es: y(1.5) = 3.173. Cómo justificamos
esta diferencia? Cuál respuesta es la mejor? El sentido común nos inclina
a pensar que esta última es más aproximada a la solución exacta. Esto
lo podemos corroborar utilizando la solución exacta a la ED; ésta es de
variables separables y la podemos resolver fácilmente: la solución general
queda
2
y(x) = C ex
Al aplicar las condiciones iniciales obtemos la solución al problema:
y(x) = ex
2 −1
De donde y(1.5) = 3.490, los cual corrobora nuestra apuesta que con un
paso más pequeño se mejora la aproximación. Sin embargo el trabajo se ha
duplicado y el error, aunque menor, es considerable.
1.4
Método de Euler Mejorado
El método de Euler mejorado tiene las siguientes ecuaciones de recurrencia:
yn+1 = yn + h
∗ )
f (xn , yn ) + f (xn+1 , yn+1
2
donde
∗
yn+1
= yn + h f (xn , yn )
5
1.4.1
Ejemplo
Aplique el método de Euler mejorado con paso h = 0.1 para determinar el
valor y(1.5) donde y(x) es la solución al problema
y0 = 2 x y
y(1) = 1.
(5)
Solución
Debemos construir la tabla de valores aproximados de la solución:
x
x0
x1
x2
x3
x4
x5
y∗
= 1.0
= x0 + 0.1 = 1.1
= 1.2
= 1.3
= 1.4
= 1.5
y1∗
y2∗
y3∗
y4∗
y5∗
= y0 + h f (x0 , y0 ) = 1.200
= 1.5030
= 1.9194
= 2.4988
= 3.3162
y = f (x)
y0 = 1.0
f (x0 ,y0 )+f (x1 ,y1∗ )
= 1.232
y1 = y0 +
2
y2 = 1.5479
y3 = 1.9832
y4 = 2.5908
y5 = 3.5408
De donde obtenemos que este método da como respuesta y(1.5) = 3.5408 la
cual está más próxima a la solución exacta que la obtenida por los métodos
de Euler previamente vistos.
1.5
Método de Runge-Kutta
6
Descargar