Índice

Anuncio
1
1
INTRODUCCIÓN Y MOTIVACIÓN
FUNDAMENTOS MATEMÁTICOS IV
TEMA 6: Introducción a los métodos numéricos
Slide 1
R.N. Banerjee
Departamento de Matemática Aplicada,
E.T.S.I. Telecomunicación
Índice
1. Introducción y Motivación
1.1. Análisis del Error en el Método de Euler
Slide 2
3
. . . . . . . . . . . . . . . . . . . . . . .
6
1.2. Una mejora del método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3. Otra modificación (mejora) del método de Euler . . . . . . . . . . . . . . . . . . . .
11
2. Desarrollos de Taylor de orden superior
15
2.1. Método directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.2. Método iterativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.3. Métodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1
2
INTRODUCCIÓN Y MOTIVACIÓN
1. Introducción y Motivación
Se consideran problemas de valor inicial de la forma:
y 0 (x) = F (x, y(x))
y(x0 ) = y0
una edo
(1)
una condición inicial
(2)
Habitualmente, no es posible resolver analı́ticamente. Por tanto se busca una solución
aproximada. Además, no se pretende conocer el valor aproximado de la solución real y(x) en
Slide 3
todo punto x, sino solamente en algunos puntos xi , i
[a, b] de interés.
= {1, . . . , n} de un cierto intervalo
IDEA FUNDAMENTAL: Desarrollo de Taylor. Sabemos que, gracias al polinomio de Taylor, es
posible, para funciones suficientemente “suaves”, escribir
y(x) = y(x0 ) + y 0 (x0 )(x − x0 ) + R(x, x0 ),
donde R(x, x0 ) es el Resto de Taylor de orden dos.
En el intervalo de interés [a, b], consideremos una colección de puntos
{x0 , x1 = x0 + h, x2 = x1 + h = x0 + 2h, . . . , xn = xn−1 + h = x0 + nh} ⊂ [a, b],
donde h ∈ R. Obviamente, n dependerá del h escogido.
Observemos que gracias a (2) conocemos el valor de la solución en x0 : la condición inicial nos
dice que es y0
Pero también, gracias al polinomio de Taylor y a la ecuación diferencial (1), podemos estimar el
valor de la solución y(x) en x0
+ h: en efecto,
y(x1 ) ≈ y(x0 ) + y 0 (x0 )(x1 − x0 ) = y(x0 ) + y 0 (x0 )h = y(x0 ) + hF (x0 , y0 ) ≡ Y1 .
Slide 4
Nuestro problema es ahora estimar y(x2 ). Para ello podemos utilizar de nuevo Taylor y escribir:
y(x2 ) ≈ y(x1 ) + y 0 (x1 )(x2 − x1 ) = y(x1 ) + hF (x1 , y(x1 )).
El problema es que no conocemos y(x1 ) sino sólo una aproximación Y1 .
En esta situación, podemos probar a emplear la aproximación Y1 en lugar del valor exacto
y(x1 ). De esta forma tendremos un valor aproximado Y2 del valor real y(x2 ) deseado. Ası́:
y(x2 ) ≈ Y1 + hF (x1 , Y1 ) ≡ Y2 .
1
3
INTRODUCCIÓN Y MOTIVACIÓN
De esta forma, y en general, podemos construir iterativamente las siguientes aproximaciones
de y(x) en los puntos xi , i
= {0, . . . , n}


Slide 5
Y0
 ∀i > 0, Yi+1
=
y0 ,
=
Yi + hF (xi , Yi ).
Notemos que, que de esta forma, en cada paso, estamos empleando de forma efectiva para
avanzar la solución del problema de valor inicial modificado
z 0 (x) = F (x, z(x))
z(xi ) = Yi
la EDO original
una nueva condición inicial,
que en cada paso nos saca, en general, de la trayectoria (solución) real original.
Este esquema de calculo aproximado se denomina Método de las poligonales de Euler, o
Euler básico.
1.1. Análisis del Error en el Método de Euler
Observemos que
1. hemos introducido un error al sustituir el valor real de y en un punto xi por el valor
aproximado obtenido a partir del desarrollo de Taylor truncado en primer orden. Este error se
denomina error de truncamiento, error de discretización o error local, del método.
2. Hemos arrastrado este error al ir utilizando los valores aproximados Yi para calcular Yi+1 y
siguientes. Además, habrı́a que tener en cuenta el error que se introduce al realizar los
Slide 6
cálculos, dada la precisión finita del ordenador. A este último de le denomina error de
redondeo o de representación.
3. A la combinación de todos ellos se le denomina Error Global del método, que es el que
finalmente se observa.
Observemos que el error de truncamiento en el cálculo de Yi+1 a partir de Yi (es decir, en un
00
= y 2!(θ) h2 , donde θ ∈ (xi , xi + h). Estudiemos el error en el primer paso, es
decir E(x1 ) = E(x0 + h) = y(x1 ) − Y1 = ch2 , ya que los valores de x0 e y0 son
y 00 (θ)
conocidos (despreciamos los errores de redondeo). Hemos definido c = 2! , con
θ ∈ (x0 , x0 + h = x1 ). Observemos que si podemos asumir que y 00 varı́a poco en el intervalo
de longitud h en cuestión (en general, h es pequeño comparado con |a − b|) entonces, la
paso) es E
1
4
INTRODUCCIÓN Y MOTIVACIÓN
+ h2 ) y (x0 + h2 , x0 + h) es despreciable y
podemos suponer c constante. Entonces, el error de truncamiento al calcular Y 1 ≡ x0 + y0 h
2
2
variación de y 00 en cada subintervalo (x0 , x0
es muy aproximadamente
E(x0 +
¡ ¢2
h
1
h2
) = c h2 = c
= E(x0 + h).
2
4
4
(3)
Por tanto, al error cometido al calcular Y1 desde x0 en dos pasos de h
2 , que denotamos
mediante Y 1 + 1 , contribuirán dos elementos: el error en el dato inicial Y 1 y el error de
2
Slide 7
2
2
truncamiento en el paso de Y 1 a Y 1 + 1 , ambos aproximadamente iguales por (3) a
2
2
2
1
4 E(x0
+ h). Por tanto, el error total al calcular aproximadamente y(x1 ) en dos pasos, al que
¢
¡
h
denotamos mediante E (x0 + h
2 ) + 2 será la mitad del cometido al hacerlo en un paso, es
decir:
¡
¢ 1
E (x0 + h2 ) + h2 = E(x0 + h).
2
Entonces, una comparación de los errores cometidos por ambas vı́as:


y(x0 + h) − Y1
 y(x0 + h) − Y 1 1
2+2
=
=
E(x0 + h)
¢
¡
E (x0 + h2 ) + h2 ,
nos permite, restando y sustituyendo, obtener:
 ¡
 E (x + h ) + h ¢
0
2
2
1

E(x0 + h)
2
Slide 8
=
=
Y 12 + 12 − Y1
Y 12 + 12 − Y1 ,
lo cual nos permite estimar ambos errores directamente a partir sólo de cantidades computadas.
De aquı́ se obtiene la siguiente Regla práctica que parece funcionar bien: Repı́tanse los
cálculos con un h la mitad del original. Si los valores coinciden con los obtenidos primero,
después de los correspondientes redondeos, en k decimales, se entiende que se tienen k
decimales significativos.
1
5
INTRODUCCIÓN Y MOTIVACIÓN
Finalmente, observemos que, dada la simplicidad del método de Euler, podemos acotar el error
debido al truncamiento en n–pasos. En efecto, el error en cada intervalo (xi , xi
+ h) es de la
θ ∈ (xi , xi + h). Si tomamos Mi ≡ máxθ∈(xi ,xi +h) y 00 (θ)
M
entonces tendremos |Ei | 6 2i h2 , y por tanto, el error total (debido a truncamiento) E en
2 Pn
n–pasos, es decir, en (x0 , x0 + nh) vendrá acotado por |E| 6 h2
i=1 Mi . Tomando
M ≡ máx Mi , tendremos
h2
|E| 6
nM.
2
1
, entonces |E| ∼ h.
Observemos que asintóticamente, dado que n ∼ h
forma Ei
Slide 9
=
y 00 (θ) 2
2! h , donde
1.2. Una mejora del método de Euler
Recordemos que la fórmula básica que hemos empleado para avanzar un paso es Taylor de
primer orden, es decir:
y(x) ≈ y(x0 ) + y 0 (x0 )(x − x0 ).
Por tanto, empleamos el valor de la pendiente en el punto anterior, para calcular una correcci ón
al valor anterior conocido, es decir:

 y(x + nh)
0

∆y
≈
≡
y(x0 + (n − 1)h) + ∆y
hy 0 (x0 + (n − 1)h).
En general, por tanto, la tasa de variación de la solución y(x) entre x0
Slide 10
+ (n − 1)h y x0 + nh,
y por tanto la corrección necesaria, estará, o bien subestimada, o bien sobre-estimada por el
valor de la pendiente en . Para intentar mejorarla, podemos tomar un promedio de ambas, es
≡ h 21 (y 0 (x0 + (n − 1)h) + y 0 (x0 + nh)), que gracias a la EDO podemos escribir
como ∆y ≡ h 12 [F ((x0 + (n − 1)h), y(x0 + (n − 1)h)) + F ((x0 + nh), y(x0 + nh))].
Notemos, sin embargo, que el valor de y(x0 + nh) es justamente lo que intentamos calcular, y
decir ∆y
nos es, por ello, desconocido. Sin embargo, podemos estimarlo empleando un paso del método
de Euler básico; ası́, podemos tomar
y(x0 + nh) ≈ y(x0 + (n − 1)h) + hF ((x0 + (n − 1)h), y(x0 + (n − 1)h)). De esta
forma, y recordando que en cada paso tomamos como condición inicial el valor aproximado de y
1
6
INTRODUCCIÓN Y MOTIVACIÓN
antes calculado, llegamos al esquema:






Y0
=
y0
Yi+1




 ∆Yi
=
Yi + ∆Yi
"
≡
h 21
#
F (xi , Yi ) + F (xi+1 , Yi + hF (xi , Yi )) .
1 paso Euler básico
Este anterior esquema se conoce en la literatura con la denominación de Método de Euler
Mejorado.
Slide 11
1.3. Otra modificación (mejora) del método de Euler
Para alcanzar el anterior esquema hemos mejorado la estimación de la tasa de variación de la
función solución mediante un promedio de pendientes en los extremos del intervalo
(x0 + (n − 1)h, x0 + nh). Ello nos conducı́a a la necesidad de estimar previamente el valor
de y(x0 + nh), mediante un paso de Euler básico. Puesto que para este último método
sabemos que el error cometido se reduce en una cuarta parte si reducimos la “longitud del paso”
a la mitad, podemos pensar en utilizar como estimación de la tasa de variación la pendiente en
el punto medio del intervalo (x0
+ (n − 1)h, x0 + nh), es decir en x0 + (n − 1)h + 21 h.
+ (n − 1)h + 21 h), es decir,
1
F (x0 + (n − 1)h + 2 h, y(x0 + (n − 1)h + 21 h)) necesitamos estimar
y(x0 + (n − 1)h + 21 h), lo cual podemos hacer mediante un paso de Euler básico pero con
paso h
2 , por tanto, con mejor error. De esta forma, estarı́amos empleando la siguiente
Notemos que para estimar y 0 (x0
aproximación analı́tica :
y(x) ≈ y(x0 ) + y 0 (x0 +
Slide 12
¤
£
h
)(x − x0 ) = y(x0 ) + hF x0 + h2 , y(x0 ) + y 0 (x0 ) h2 .
2
Nótese que esta expresión no es otra cosa que la ecuación de la recta que pasa por (x0 , y(x0 )
con pendiente y 0 (x0
+ h2 ). Esta recta toma, en x = x0 + h el valor
£
¤
y(x0 + h) ≈ y0 + hF x0 + h2 , y0 + y 0 (x0 ) h2 .
(4)
Proposición 1.1. La expresión (4) equivale a tomar un desarrollo de Taylor hasta orden 2 para
aproximar y(x).
Demostración. (Esquema)
1. Taylor entorno a (x0 , y0 ) para un función de dos variables f (x, y) es, tomando
2
7
DESARROLLOS DE TAYLOR DE ORDEN SUPERIOR
x = x 0 + hx e y = y 0 + hy
¯
¯
∂f (x, y) ¯¯
∂f (x, y) ¯¯
h
+
hy + · · · .
x
∂x ¯(x0 ,y0 )
∂y ¯(x0 ,y0 )
f (x0 + hx , y0 + hy ) = f (x0 , y0 ) +
2. Sustituyendo Taylor para F
se obtiene:
Slide 13
¤
£
x0 + h2 , y0 + y 0 (x0 ) h2 en (4), y usando F (x0 , y0 ) = y 0 (x0 )
y(x0 + h) = y0 + hy 0 (x0 ) +
h2
2
·
3. Derivando la EDO se prueba que
y 00 (x0 ) =
·
¯
∂F (x,y) ¯
¯
∂x
¯
∂F (x,y) ¯
¯
∂x
(x0 ,y0 )
(x0 ,y0 )
+ y 0 (x0 )
+ y 0 (x0 )
¯
∂F (x,y) ¯
¯
∂y
¯
∂F (x,y) ¯
¯
∂y
de donde, sustituyendo arriba, se obtiene el resultado deseado.
(x0 ,y0 )
¸
(x0 ,y0 )
¸
+ ··· .
,
Tenemos por tanto, a partir de (4) el siguiente esquema numérico de cálculo:






Y0
=
y0
Yi+1




 ∆Yi
=
Yi + ∆Yi
≡
hF (xi + h2 , Yi + h2 F (xi , Yi )) .
1 paso Euler básico
Este esquema se conoce en la literatura con la denominación de Método de Euler Modificado.
Observemos que, gracias a la proposición anterior, un esquema basado en aproximación
Slide 14
tendrá error de truncamiento local E
=
y 000 (θ) 3
3! h . Realizando un estudio de errores similar al
que se hizo para el método de Euler, es posible llegar (Hágase como ejercicio!) a las siguientes
fórmulas de estimación de error:
 ¡
¢
 E (x0 + h ) + h
2
2

1
4 E(x0
+ h)
=
1
3
=
1
3
³
³
Y 21 + 12 − Y1
´
´
Y 21 + 12 − Y1 ,
lo cual, de nuevo, nos permite estimar ambos errores directamente a partir sólo de cantidades
computadas. Análogamente, también es posible acotar el error debido al truncamiento en
n–pasos, mostrando que es de la forma |E| 6
|E| ∼ h2 .
h3
2 nM , y por tanto asintóticamente tendremos
2
DESARROLLOS DE TAYLOR DE ORDEN SUPERIOR
8
2. Desarrollos de Taylor de orden superior
Obviamente, es posible pensar en utilizar fórmulas de Taylor de orden superior a 2, siempre que
las derivadas sucesivas de F (x, y) tengan sentido y puedan calcularse “con cierta facilidad”.
√
= F (x, y) = x + y , para la que y 00 y
p
x3 y + xy 3 , cuyas derivadas sucesivas son
sucesivas no existen en 0, e y 0 = F (x, y) =
Contraejemplos de ambas condiciones son y 0
bastante complicadas. Si estos impedimentos no existen, es posible emplear desarrollos de
orden superior. Veamos cómo hacerlo.
Slide 15
2.1. Método directo
Es bien sabido de FMT–II que bajo ciertas hipótesis, es posible, conocidos los valores de las
derivadas sucesivas en un punto x0 , escribir una función y(x) en la forma
y(x0 + h) = y(x0 ) + y 0 (x0 )h +
y 00 (x0 ) 2 y 000 (x0 ) 3 y 0000 (x0 ) 4
h +
h +
h + ··· ,
2!
3!
4!
siempre que la serie converja. Es posible, entonces, emplear esta expresión para evaluar
aproximadamente f en los puntos de interés.
Ejemplo 2.1. Considérese la ecuación diferencial y 0
= x2 + y , con y(0) = 1.
Podemos calcular fácilmente las derivadas sucesivas:
y 00 = 2x + y 0 , y 000 = 2 + y 00 , y n) = y n−1) , n > 4,
que pueden ser fácilmente evaluadas en x
= 0 y llegar por tanto a la expresión:
y(h) = 1 + h +
h3
h4
h2
+
+
+ ···
2
2
8
lo cual, truncando donde se desee, permite evaluar aproximadamente y(h).
Slide 16
♦
El anterior método adolece, en general, del inconveniente de que para mantener la precisión
para h cada vez mayor, es necesario incluir cada vez más términos del desarrollo. En este caso,
si las derivadas sucesivas son difı́ciles de calcular, el método es altamente ineficaz.
2.2. Método iterativo
Podemos intentar utilizar una fórmula de Taylor de orden superior, pero de orden fijo, al igual que
hicimos con el método de Euler, es decir, iterándola en cada paso. Esperamos, obviamente
obtener mejor precisión que con aquél, aunque como veremos, ello será a expensas de
aumentar considerablemente el esfuerzo computacional. Además, deberemos seguir siendo
capaces de obtener expresiones para las derivadas sucesivas necesarias.
2
9
DESARROLLOS DE TAYLOR DE ORDEN SUPERIOR
Ejemplo 2.2. Considérese de nuevo el ejemplo 2.1, es decir, la ecuación diferencial
y 0 = x2 + y , con y(0) = 1. Intégrese numéricamente con una fórmula de Taylor reteniendo
hasta los términos de cuarto orden.
Nuestra fórmula de aproximación básica será ahora
y(x0 + h) ≈ y(x0 ) + y 0 (x0 ) +
y 00 (x0 ) 2 y 000 (x0 ) 3 y 0000 (x0 ) 4
h +
h +
h
2!
3!
4!
Puesto que seguimos teniendo explı́citamente y 00
= 2x + y 0 , y 000 = 2 + y 00 , y 0000 = y 000 ,
podemos establecer el siguiente esquema:
Slide 17







Y0
=
y0 = 1
Yi0
=
x2i + Yi , Yi00 = 2xi + Yi0 , yi000 = 2 + Yi00 , Yi0000 = Yi000

Yi+1




 ∆Y
i
=
Yi + ∆Yi
≡
hYi0 +
h2 00
2! Yi
+
h3 000
3! Yi
+
h4 0000
4! Yi
♦
Resulta claro el gran coste computacional que este anterior esquema supone. Sin embargo,
resulta ser más preciso en general, pues el error de truncamiento local es ahora O(h5 ), y por
tanto tendremos E(x0
+ h) = ch5 . Asumiendo hipótesis análogas a los estudios realizados
anteriormente, podemos asumir c constante en los correspondientes subintervalos de longitud
¡ ¢5
h
1
E(x0 + h2 ) = c h2 = 32
E(x0 + h) y obtener entonces
2 y escribir aproximadamente
¢
¡
h
1
h
aproximadamente E (x0 + 2 ) + 2 = 16 E(x0 + h), lo cual lleva a las estimaciones de
error:
 ¡
¢
 E (x0 + h ) + h
2
2

Slide 18
E(x0 + h)
=
1
15
=
16
15
³
³
Y 21 + 21 − Y1
´
´
Y 21 + 21 − Y1 ,
(5)
2.3. Métodos de Runge-Kutta
Fueron desarrollados por Runge (1856-1927) y Kutta (1867-1944). Tienen la ventaja de,
manteniendo la precisión de las fórmulas de orden superior, no necesitar de las derivadas para
el cálculo.
Realizaremos el desarrollo teórico sólo para el caso más sencillo. Partimos de nuevo del
desarrollo de Taylor para y(x0
+ h), esto es
y(x0 + h) = y(x0 ) + y 0 (x0 )h +
Observemos que a partir de la EDO y 0
y 00 (x0 ) 2
h + ··· .
2!
= F (x, y) tenemos, derivando, que
2
DESARROLLOS DE TAYLOR DE ORDEN SUPERIOR
10
y 00 (x) = ∂x F (x, y) + ∂y F (x, y)y 0 (x), lo cual nos permite eliminar la derivada segunda del
desarrollo anterior, y obtener, hasta orden h2 :
h
i h2
0 ,y0 )
0 ,y0 )
+ ∂F (x
.
(6)
y(x0 + h) = y(x0 ) + y 0 (x0 )h + ∂F (x
∂x
∂y
2
La idea es ahora intentar re–escribir esta expresión sin derivadas parciales. Para ello nos
inspiraremos en el método de Euler modificado, ya que el “truco” que nos permitió probar la
proposición 1.3, pero empleado al revés, nos permitirá hacerlo. Por ello, buscaremos escribir (6)
en la forma
Slide 19
y(x0 + h) = y(x0 ) + Ahy 0 (x0 ) + BhF (x0 + Ch, y0 + DhF (x0 .y0 )),
(7)
donde han de determinarse las constantes A, B, C, D . Observemos que (7) no es otra cosa
que una forma genérica que engloba tanto al método de Euler mejorado como al modificado
(ajustando convenientemente las constantes). Dado que, por Taylor,
F (x0 +Ch, y0 +DhF (x0 , y0 )) = F (x0 , y0 )+Ch
∂F (x0 , y0 )
∂F (x0 , y0 )
+DhF (x0 , y0 )
+· · ·
∂x
∂y
, si sustituimos en (7) y simplificamos tendremos que
h
i
∂F (x0 ,y0 )
0 ,y0 )
y(x0 +h) = y(x0 )+(A+B)hF (x0 , y0 )+Bh2 C ∂F (x
+
DhF
(x
,
y
)
.
0
0
∂x
∂y
(8)
Comparando ahora las ecuaciones (6) y (8), vemos que podemos igualarlas tomando, por
ejemplo A + B
= 1, B = 21 , C = 1, D = 1, de donde obtenemos los valores
A=
1
1
, B = , C = 1, D = 1.
2
2
Sustituyendo estos valores en (7) obtenemos finalmente
1
1
y(x0 + h) = y(x0 ) + hF (x0 , y0 ) + hF (x0 + h, y0 + hF (x0 .y0 )),
2
2
Slide 20
que es justamente la fórmula de aproximación del método de Euler mejorado. Observemos que
los valores A
= 0, B = 1, C = 12 , D = 21 , dan lugar al método de Euler modificado.
Podemos, para más comodidad re-escribir la anterior fórmula en la forma
1
y(x0 + h) = y(x0 ) + (u1 + u2 ), u1 = hF (x0 , y0 ), u2 = F (x0 + h, y0 + u1 ).
2
Vemos que son necesarias dos etapas u1 , u2 para calcular un paso.
Es posible obtener fórmulas de Runge–Kutta de mayor orden reteniendo más términos del
desarrollo de Taylor de y(x0
+ h). Si se emplean hasta orden tres se obtienen las fórmulas de
2
DESARROLLOS DE TAYLOR DE ORDEN SUPERIOR
11
tres etapas


y(x0 + h)





v
=
y(x0 ) + 61 (v1 + v2 + v3 ), siendo
1
=
hF (x0 , y0 ) = u1 ,
v2
=
hF (x0 + 21 h, y0 + 12 v1 ),
v3
=
hF (x0 + h, y0 + 2v2 − v1 ).






Si se emplean los términos hasta orden cuatro se obtiene el más empleado de los métodos de
Slide 21
Runge-Kutta, en este caso de cuatro etapas, según las fórmulas:


y(x0 + h)






w1


w2




w3





w4
=
y(x0 ) + 61 (w1 + w2 + w3 + w4 ), siendo
=
hF (x0 , y0 ) = v1 ,
=
hF (x0 + 21 h, y0 + 12 v1 ) = v2 ,
=
hF (x0 + 21 h, y0 + 12 w2 ,
=
hF (x0 + h, y0 + w3 ).
Es posible probar que las estimaciones de error (5) alcanzadas para el caso del método iterativo
basado en uso directo de Taylor, se mantienen para el método de Runge-Kutta de cuarto orden.
Descargar