Aproximaciones numéricas 1 Euler

Anuncio
UNIVERSIDAD SIMON BOLIVAR
División de Ciencias Fı́sicas y Matemáticas
Departamento de Cómputo Cientı́fico
CO-4611
Aproximaciones numéricas
1
Euler
El método más sencillo para resolver una ecuación de la forma y 0 = f (t, y), y(t0 ) =
y0 , es el método de Euler. La idea central con los métodos numéricos es aproximar la solución de la ecuación con condición inicial en los puntos t1 , t2 , t3 , . . . , tN ,
con ti = ti−1 +h y h = (tN −t0 )/N . Conociendo la información en t0 , y(t0 ) = y0 ,
podemos aproximar la solución de y en tN . El método puede ser descrito desde
cuatro puntos de vista distintos.
1. Geométricamente. Sea Y (t) la solución de la ecuación diferencial. Dado
que tenemos información sobre la solución en t = t0 , extrapolamos la
solución hasta t = t1 mediante la recta tangente al punto (t0 , y0 ). La
ecuación de la recta tangente es
y − y0 = Y 0 (t0 )h = f (t0 , y0 )h
de aqui tenemos que y = y0 + hf (t0 , y0 ), por lo que y1 = y0 + hf (t0 , y0 ).
Repitiendo el mismo procedimiento anterior pero usando como punto para
el cálculo de la recta tangente (t1 , y1 ) y pendiente f (t1 , y1 ), podemos calcular el siguiente iterado. En general el método de Euler se puede describir
como
yn+1 = yn + hf (tn , yn ), n = 0, 1, 2, ...
2. Serie Taylor. El método de Euler también se puede obtener expandiendo
Y (tn+1 ) alrededor de tn , de la siguiente manera:
Y (tn+1 ) = Y (tn + h) = Y (tn ) + hY 0 (tn ) + h2 /2Y 00 (ξn )
con tn ≤ ξn ≤ tn+1 . Tomando la aproximación de primer orden tenemos
que yn+1 = yn + hy 0 (tn ) = yn + hf (tn , yn ).
3. Diferenciación Numérica. De la definición matemática de la derivada,
podemos usar el cociente para hacer una aproximación con h suficientemente pequeño,
y(tn+1 ) − y(tn ) ∼ 0
= y (tn ) = f (tn , yn )
h
1
⇒ yn+1 = yn + hf (tn , yn )
4. Integración Numérica. Iniciando de la ecuación
y 0 (t) = f (t, y)
integramos a ambos lados la expresión en el intervalo (tn , tn+1 )
Z
tn+1
y(tn+1 ) − y(tn ) =
f (t, y(t))dt
(1)
tn
aproximando la integral del lado derecho mediante el rectangulo con base
en el extremo izquierdo, obtenemos:
y(tn+1 ) − y(tn ) = base ∗ altura = hf (tn , yn )
obteniendo nuevamente la aproximación por Euler.
Uno de los aspectos resaltantes del método es que a medida que dividimos
el tamaño del paso h, los errores también se disminuyen en aproximadamente
la mitad. Es un método sencillo de implementar pero de orden bajo por lo que
dependiendo del gardo de precisión que se desee, el h puede ser muy pequeño.
Una forma de mejorar el método de Euler (Euler mejorado) es utilizar una
mejor aproximación a la integral en (1). Podriamos considerar por ejemplo una
aproximación por trapecios de modo que
Z tn+1
h
f (t, y(t))dt = [f (tn , yn ) + f (tn+1 , yn+1 )]
2
tn
noten que el útimo término hace referencia al valor que queremos aproximar en
esta iteración (yn+1 ), sin embargo podemos usar un paso del método de Euler
para aproximar la solución, obteniendo finalmente:
yn+1 = yn +
2
h
[f (tn , yn ) + f (tn+1 , yn + hf (tn , yn ))])
2
Métodos basados en Taylor
Si queremos un método de orden superior podemos incluir mas términos en la
serie de Taylor. El término de la segunda derivada se calcula usando la regla de
la cadena:
∂f
∂f dy
∂f
∂f
dy 0
=
+
=
+
f
dt
∂t
∂y dt
∂t
∂y
En general los métodos de Taylor los podemos escribir como
yn = yn−1 + hT (n) (t, y)
donde n es el orden de la aproximación,
2
de esa manera el método de Euler se rescribe como
yn = yn−1 + hT (1) (t, y)
con T (1) (t, y) = f (t, y). Un método de Taylor de orden 2, se escribe como
yn = yn−1 + hT (2) (t, y)
h
i
∂f
con T (2) (t, y) = f (t, y) + h/2 ∂f
(t,
y)
+
(t,
y)f
(t,
y)
. La dificultad de los
∂t
∂y
métodos de Taylor radica en que es necesario conocer la derivadas parciales de
la función y eso no siempre es tarea fácil. Los métodos de Runge Kutta poseen
las mismas ventajas de los métodos de Euler sin las desventajas asociadas.
3
Métodos Runge-Kutta
Para ejemplificar el método de Runge Kutta, hagamos la derivación de un
método de orden 2. El obejtivo es determinar valores de a1 , α1 , β1 tales que
a1 f (t + α1 , y + β1 ) se aproxime a T (2) (t, y).
Expandimos las dos expresiones:
·
¸
∂f
∂f
T (2) (t, y) = f (t, y) + h/2
(t, y) +
(t, y)f (t, y)
∂t
∂y
a1 f (t+α1 , y+β1 ) = a1 f (t, y)+a1 α1
∂f
∂f
(t, y)+a−1β1 (t, y)+a1 R(t+α1 , y+β1 )
∂t
∂y
igualando coeficientes tenemos:
f : a1 = 1
ft : h/2 = a1 α1
fy : h/2f (t, y) = a1 β1
⇒
⇒
⇒
a1 = 1
α1 = h/2
β1 = h/2f (t, y)
∴ T (2) (t, y) ∼
= t(t + h/2, y + h/2f (t, y))
Si tomamos el método de Taylor de orden 2 yn = yn−1 + hT (2) (t, y) y sustituimos a T (2) por su aproximación obtenemos el RK2, mejor conocido como
el método del punto medio. Cuentas similares se pueden llevar para obetener
métodos RK de orden superior (para orden 3, aproximamos a T (3) (t, y) con
f (t + α1 , y + δ1 f (t + α2 , y + δ2 f (t, y)))), siendo el de orden 4 el más utilizado.
El método de orden 4 está descrito por el siguiente conjunto de ecuaciones:
k1
k2
=
=
hf (tn , yn )
hf (tn + h/2, yn + 1/2k1 )
k3
k4
=
=
hf (tn + h/2, yn + 1/2k2 )
hf (tn+1 , yn + k3 )
yn+1
=
yn + 1/6 (k1 + 2k2 + 2k3 + k4 )
3
4
Simulaciones en Matlab
Los métodos de Euler. Euler mejorado y método del punto medio se pueden
programar fácilmente en Matlab. El método RK4 está implementado como
parte de las funciones intrı́nsecas de Matlab en el algoritmo ODE45.
Si deseamos encontrar la solución a una ecuación con 4 dı́gitos de precisión
(con cual método descrito anteriormente), no podemos garantizar que algún
método en particular logre el cometido con un tamaño del paso escogido arbitrariamente. Sin embargo si hacemos la prueba con un h (digamos 0.1) y
vemos las soluciones aproximadas y luego aproximamos nuevamente la función
con h/10, deberiamos ver que ciertos dı́gitos se estabilizan en las soluciones.
Podemos seguir con este procedimiento (reducir el h) hasta lograr que la solución
se estabilice en los primeros 4 dı́gitos según nuestro requerimiento.
4
Descargar