Você está na página 1de 59

Soluciones Numéricas de

Ecuaciones Diferenciales
ordinarias
Contenidos

• Método de Euler y Análisis de Error


• Métodos de Runge-Kutta
• Métodos de Varios Pasos
• Ecuaciones de Orden Superior y Sistemas
• Problemas de Valores en al Frontera de Segundo Orden
Método de Euler y Análisis de Error

• Introducción
Recuerde la estructura del Método de Euler
yn+1 = yn + hf(xn, yn) (1)

• Errores en Métodos Numéricos


Una fuente de error que siempre está presente en los cálculos es
el error de rondeo.
Errores de Truncamiento para el
Método de Euler

• Este logaritmo sólo da una aproximación en línea recta a la


solución. Este error se llama error de truncamiento local, o
error de discretización.
Para obtener una fórmula para el error de truncamiento local del
método de Euler, usamos la fórmula de Taylor con resido.
y ( x)
xa ( x  a)k ( k 1) ( x  a) k 1
 y (a)  y(a)    y (a)
(k )
y (c )
Donde c es un punto entre 1! a y x. k! (k  1)!
• Tomando k = 1, a = xn, x = xn+1 = xn + h, tenemos
h h2
y ( xn1 )  y ( xn )  y( xn )  y(c)
1! 2!
ó h2
y ( xn1 )  yn  hf ( xn , yn )  y(c)
 2!
yn 1
De ahí que el error de truncamiento en yn+1 es
h2
y(c) donde xn < c < xn+1
2!
El valor de c por lo común no se conoce, pero
una cota superior es
h2
M donde M  max | y( x) |, xn  x  xn1
2! xn  x xn 1
• Observación:
Se dice que e(h) es de orden hn, representado con O(hn), si existe
una constante C tal que |e(h)|  Chn para h suficientemente
pequeña.
Ejemplo 1

Determine una cota para los errores de


truncamiento local del método de Euler aplicado
a y '  2 xy , y (1)  1

Solución ye ,x 2 1 x 2 1
y  (2  4 x )e ,
2
De la solución tenemos
so h2 h 2
y(c)  (2  4c 2 )e( c 1)
2

2 2

En particular, para h = 0.1, se puede obtener una


cota superior remplazando c por 1.1 es
2
( 0.1 )
[2  (4)(1.1) 2 ]e((1.1) 1)
2
 0.0422
2
Ejemplo 1 (2)

Al hacer 5 pasos, remplazando c por 1.5, se obtiene


2
2
1) ( 0.1 ) (2)
[2  (4)(1.5) 2 ]e((1.5)  0.1920
2
Método de Euler Mejorado
f ( xn , yn )  f ( xn1 , yn*1 )
yn1  yn  h
2
(3)

yn*1  yn  hf ( xn , yn )
donde (4)

se conoce comunmente como el Método de Euler Mejorado. Fig.1


En general, el método de Euler mejorado es un ejemplo de
método de predictor y corrector.
Fig 1
EjemploUse2 el método de Euler mejorado para obtener el valor
aproximado de y(1.5) para la solución de
 2 xy , y (1)  1 . Compare los resultados para h = 0.1 y h
y= '0.05.
Solución
Con x0 = 1, y0 = 1, f(xn, yn) = 2xnyn , h = 0.1
y1* = y0 + (0.1)(2xy) = 1.2
Usando (3) con x1 = 1 + h = 1.1

Los  *
(1)(1y) 6.4.
y1  resultados
y0  (0.1) 0se0 dan1 en1 la Tabla26.3
2 x y 2 x y 2(1.1)(1.2)
 1  (0.1)  1.232
2 2
Tabla 3
Valor Error % error
xn yn real Abs. relativo
1.00 1.0000 1.0000 0.0000 0.00
1.10 1.2320 1.2337 0.0017 0.14
1.20 1.5479 1.5527 0.0048 0.31
1.30 1.9832 1.9937 0.0106 0.53
1.40 2.5908 2.6117 0.0209 0.80
1.50 3.4509 3.4904 0.0394 1.13
Tabla 4 Valor Error % error
xn yn
real Abs relativo
1.00 1.0000 1.0000 0.0000 0.00
1.05 1.1077 1.1079 0.0002 0.02
1.10 1.2332 1.2337 0.0004 0.04
1.15 1.3798 1.3806 0.0008 0.06
1.20 1.5514 1.5527 0.0013 0.08
1.25 1.7531 1.7551 0.0020 0.11
1.30 1.9909 1.9937 0.0029 0.14
1.35 2.2721 2.2762 0.0041 0.18
1.40 2.6060 2.6117 0.0057 0.22
1.45 3.0038 3.0117 0.0079 0.26
1.50 3.4795 3.4904 0.0108 0.31
• Errores de Truncamiento para el Método Mejorado de Euler
Observe que el error de truncamiento local es O(h3).
2 Runge-Kutta Methods
• Métodos de Runge-Kutta
Todos los métodos de Runge-Kutta son
generalizaciones de la fórmula básica de Euler,
en la que la función pendiente f se remplaza por
un promedio ponderado de pendientes en el
intervalo xn  x  xn+1
(1)
yn1  yn  h( w1k1  w2 k2    wm km )
donde las ponderaciones wi, i = 1, 2, …, m son
constantes que satisfacen w1 + w2 + … + wm = 0,
y ki es la función evaluada en un punto
seleccionado (x, y) para el cual xn  x  xn+1.
El número m se llama el orden. Si tomamos m = 1, w1 = 1, k1 =
f(x, yn), llegamos al método de Euler. Por consiguiente, se dice
que el método de Euler es un método de Runge-Kutta de primer
orden.
Método de Runge-Kutta de Segundo Orden
• Tratamos de hallar unas constantes de modo que
la fórmula
yn1  yn  ak1  bk2 (2)
donde k1= f(xn, yn),
k2= f(xn+h, yn+hk1)
concuerde con un polinomio de Taylor de grado
2.
Las constantes deben satisfacer
1 1
w1  w2  1, w2  , y w2   (3)
2 2
1 1
luego w1  1  w2 ,   , y 
2w2 2w2 (4)

donde w2  0.
Ejemplo: escogemos w2 = ½ , de donde w1 = ½ ,  = 1,  = 1, y (2)
se transforma en

yn+1= yn+(k1+ k2)h/2

donde k1= f(xn, yn), k2= f(xn+h, yn+hk1).


Puesto que xn + h = xn+1, yn + hk1 = yn + hf(xn, yn), es idéntica al
método de Euler mejorado.
Método de Runge-Kutta de Cuarto Orden
• Tratamos de hallar parámetros de modo que la fórmula

yn1  yn  ak1  bk2  ck3  dk4 (5)

donde
k  hf ( xn , yn )
k2  hf ( xn  1h, yn  1k1 )
k3  hf ( xn   2 h, yn   2 k1  3k2 )
concuerde con un polinomio de Taylor de orden 4.
k4  hf ( xn h, yn  k3 )
El conjunto de valores usado con más frecuencia para los
parámetros produce el siguiente resultado

1
yn1  yn  (k1  2k2  2k3  k4 )
6 (6)
k1  hf ( xn , yn )
k2  hf ( xn  1/2 h, yn  1/2 k1 )
k3  hf ( xn  1/2 h, yn  1/2 k2 )
Ejemplo 1
Use el método RK4 con h = 0.1 para obtener y(1.5)
para la solución de y’ = 2xy, y(1) = 1.
Solución
Primero se calcula el caso n = 0.
k1  (0.1) f ( x0 , y0 )  (0.1)( 2 x0 y0 )  0.2
k2  (0.1) f ( x0  1/2(0.1), y0  1/2(0.2))
 (0.1)2( x0  1/2(0.1))( y0  1/2(0.2))  0.231
k3  (0.1) f ( x0  1/2(0.1), y0  1/2(0.231))
 (0.1)2( x0  1/2(0.1))( y0  1/2(0.231))  0.234255
k4  (0.1) f ( x0  0.1, y0  0.234255)
 (0.1)2( x0  0.1)( y0  0.234255)  0.2715361
Ejemplo 1 (2)

1
Por lo tanto,y1  y0  ( k1  2k2  2k3  k4 )
6
1
 1  (0.2  2(0.231)  2(0.234255)  0.2715361)
6
 1.23367435
Véase la Tabla 5.
Tabla 5 h=0.1
Valor Error % error
xn yn
real Abs. relativo
1.00 1.0000 1.0000 0.0000 0.00
1.10 1.2337 1.2337 0.0000 0.00
1.20 1.5527 1.5527 0.0000 0.00
1.30 1.9937 1.9937 0.0000 0.00
1.40 2.6116 2.6117 0.0001 0.00
1.50 3.4902 3.4904 0.0001 0.00
En la Tabla 6 comparan algunos resultados.
h = 0.1 h = 0.05
Euler Valor Euler Valor
xn Euler RK4 xn Euler RK4
mejorado real mejorado real
1.00 1.0000 1.0000 1.0000 1.0000 1.00 1.0000 1.0000 1.0000 1.0000
1.10 1.2000 1.2320 1.2337 1.2337 1.05 1.1000 1.1077 1.1079 1.1079
1.20 1.4640 1.5479 1.5527 1.5527 1.10 1.2155 1.2332 1.2337 1.2337
1.30 1.8154 1.9832 1.9937 1.9937 1.15 1.3492 1.3798 1.3806 1.3806
1.40 2.2874 2.5908 2.6116 2.6117 1.20 1.5044 1.5514 1.5527 1.5527
1.50 2.9278 3.4509 3.4902 3.4904 1.25 1.6849 1.7531 1.7551 1.7551
1.30 1.8955 1.9909 1.9937 1.9937
1.35 2.1419 2.2721 2.2762 2.2762
1.40 2.4311 2.6060 2.6117 2.6117
1.45 2.7714 3.0038 3.0117 3.0117
1.50 3.1733 3.4795 3.4903 3.4904
Errores de Truncamiento para el Método RK4

• Como es de grado 4, el error de truncamiento local es O(h5) y el


error de truncamiento global es O(h4). Sin embargo, esto no se
abarca en este texto.
Ejemplo 2
Determine una cota para los errores de truncamiento
local del método RK4 aplicado a y '  2 xy , y (1)  1
Solución
Al calcular la quinta derivada de la solución conocida
x 2 1 se obtiene
y ( x)  e ,
h 5
2
1 h
5
(7)
y (c)  (120c  160c3  32c5 )ec
( 5)
5! entonces (7) = 0.00028.
Así con c = 1.5, 5!
La Tabla 6.7 proporciona aproximaciones a la solución del
problema de valor inicial en x = 1.5 por el método RK4.
Tabla 7

h Aproximación Error
0.1 3.49021064 1.32321089  10-4
0.05 3.49033382 9.13776090  10-6
3 Métodos de Varios Pasos

• Método de Adams-Bashforth-Moulton
El predictory*es la h de Adams-Bashforth
fórmula
n1  y  (55 y  59 y  37
n n n1 n2  9 yn 3 ) ,
24
yn  f ( xn , yn )
(1)
yn 1  f ( xn1 , yn1 )
yn 2  f ( xn2 , yn2 )
donde n  3.
yn 3  f ( xn3 , yn3 )
El valor de yn+1* se sustituye en el corrector de Adams-Moulton
h
yn1  yn  (9 yn 1  19 yn  5 yn 1  yn 2 )
24
(2)
yn 1  f ( xn1 , yn1 )
*
Ejemplo 1

Use el método anteriorycon


 x h =y0.2
 1 ,paray(obtener
0)  1 y(0.8) para la
solución de

Solución
Con h = 0.2, y(0.8) se aproxima mediante y4. En principio s emplea
el método RK4 con x0 = 0, y0 = 1, h = 0.2 para obtener
y1 = 1.02140000, y2 = 1.09181796,
y3 = 1.22210646
Ejemplo 1 (2)

Ahora con x0 = 0, x1 = 0.2, x3 = 0.4, x4 = 0.6, y


f(x, y) = x +
yy– 1,
f ( hallamos
x , y )  (0)  (1)  1  0
0 0 0
y1  f ( x1 , y1 )  (0.2)  (1.02140000)  1  0.22140000
y2  f ( x2 , y2 )  (0.4)  (1.09181796)  1  0.49181796
y3  f ( x3 , y3 )  (0.6)  (1.22210646)  1  0.82210646
El predictor (1) da

0.2
*
y4  y3  (55 y3  59 y2  37 y1  9 y0 )  1.42535975
24
Ejemplo 1 (3)

Para usar yel 


corrector *(2), se necesita
4 f ( x4 , y4 )  0.8  1.42535975  1  1.22535975

0.2
y4  y3  (9 y4  19 y3  5 y2  y1 )  1.42552788
24
Estabilidad de Métodos Numéricos

• Decimos que un método numérico es estable, si cambios pequeños


en la condición inicial dan como resultado sólo cambios pequeños
en la solución calculada.
4 Ecuaciones de Orden Superor y Sistemas

• PVI de Segundo Orden ) ,


Una PVI
y f ( x , y , y y ( x0 )  y0 , y( x0 )  u0
(1)
puede expresarse como y  u
u   f ( x, y , u ) (2)
Como y’(x0) = u0, entonces y(x0) = y0, u(x0) = u0.
Aplicando el método de Euler (2)
yn1  yn  hun (3)
un1  un  hf ( xn , yn , un )
Mientras que al aplicar el método RK4:
1
yn1  yn  (m1  2m2  2m3  m4 ) (4)
6
1
donde un1  un  (k1  2k2  2k3  k4 )
6
m1  hun  hun k1  hf ( xn , yn , un )
m2  h(un  1/2 k1 ) k2  hf ( xn  1/2 h, yn  1/2 m1 , un  1/2 k1 )
m3  h(un  1/2 k2 ) k3  hf ( xn  1/2 h, yn  1/2 m2 , un  1/2 k2 )
m4  h(un  k3 ) k4  hf ( xn  h, yn  m3 , un  k3 )
En general,
y ( n)  f ( x, y, y' ,  , y ( n1) )
Ejemplo 1
Use el método de Euler para obtener y(0.2), donde
(5)
Solución
yentonces
Sea y’ = u,  xy  y (5)
 0se y(0)  1 , eny(0)  2
, transforma

De (3)
y  u
u   xu  y
yn1  yn  hun
un1  un  h[ xnun  yn ]
Ejemplo 1 (2)

 y0 y (=0.1,
y1 0.1,
Usando h = 1)uu0 =12,
 (determinamos
0.1)2  1.2
0 0
u1  u0  (0.1)[  x0u0  y0 ]  2  (0.1)[ (0)( 2)  1]  1.9
y2  y1  (0.1)u1  1.2  (0.1)(1.9)  1.3
u2  u1  (0.1)[  x1u1  y1 ]  1.9  (0.1)[ (0.1)(1.9)  1.2]  1.761
Fig 2

• En la Fig 2 se compara la curva solución generada


mediante el método de Euler con la curva solución
generada mediante el método RK4.
Ejemplo 2
Escribir x  x  5 x  2 y  et
 2 x  y  2 y  3t 2
como un sistema de ecuaciones diferenciales de
primer orden.
Solución
Escribimos
x  2 y  et  5 x  x
y  3t 2  2 x  2 y
Al simplificar:

x  9 x  4 y  x  et  6t 2
Ejemplo 2 (2)
x'  u, y '  v
Sea u  x  9 x  4 y  u  et  6t 2
v  y  2 x  2 y  3t 2
El sistema original se puede escribir en la forma
x  u
y  v
u  9 x  4 y  u  et  6t 2
v  2 x  2 y  3t 2
Solución Numérica de un Sistema
• La solución de un sistema de la forma
dx1
 f (1 t , x1 , x2 , , xn )
dt
dx2
 f 2 (t , x1 , x2 , , xn )
dt
 
dxn
se puede aproximar
 f nmediante
(t , x1 , x2 , métodos
, xn ) numéricos.
dt
x  f (t RK4:
Por ejemplo, mediante el método , x, y )
y  g (t , x, y )
x(t0 )  x0 , y (t0 )  y0 (6)

se parece a esto:
1
xn1  xn  xn  (m1  2m2  2m3  m4 )
6 (7)
1
yn1  yn  (k1  2k2  2k3  k4 )
6
dondem1  hf (tn , xn , yn ) k1  hg (tn , xn , yn )
m2  hf (tn  1/2 h, xn  1/2 m1 , yn  1/2 k1 ) k2  hg (tn1/2 h, xn  1/2 m1 , yn  1/2 k1 )
m3  hf (tn  1/2 h, xn  1/2 m2 , yn  1/2 k2 ) k3  hg (tn  1/2 h, xn  1/2 m2 , yn  1/2 k2 )
m4  hf (tn  h, xn  m3 , yn  k3 ) k4  hg (tn  h, xn  m3 , yn  k3 )

(8)
Ejemplo 3
x  2 x  4 y
Considere y   x  6 y
x(0)  1 , y (0)  6

Use el método RK4 para aproximar x(0.6) y y(0.6) con h = 0.2 y h =


0.1.
Solución
Con h = 0.2 y los datos proporcionados, de (8)
Ejemplo 3 (2)
m1  hf (t0 , x0 , y0 )  0.2 f (0,  1, 6)  0.2[2(1)  4(6)]  4.4000
k1  hg (t0 , x0 , y0 )  0.2 g (0,  1, 6)  0.2[1(1)  6(6)]  7.4000
m2  hf (t0  1/2 h, x0  1/2 m1 , y0  1/2 k1 )  0.2 f (0.1, 1.2, 9.7)  8.2400
k2  hg (t0  1/2 h, x0  1/2 m1 , y0  1/2 k1 )  0.2 g (0.1, 1.2, 9.7)  11.4000
m3  hf (t0  1/2 h, x0  1/2 m2 , y0  1/2 k2 )  0.2 f (0.1, 3.12, 11.7)  10.6080
k3  hg (t0  1/2 h, x0  1/2 m2 , y0  1/2 k2 )  0.2 g (0.1, 3.12, 11.7)  13.4160
m4  hf (t0  h, x0  m3 , y0  k3 )  0.2 f (0.2, 8, 20.216)  19.3760
k4  hg (t0  h, x0  m3 , y0  k3 )  0.2 g (0.2, 8, 20.216)  21.3776
Ejemplo 3 (3)

Por lo tanto, de (7)1obteenmos


x1  x0  (m1  2m2  2m3  m4 )
6
1
 1  (4.4  2(8.24)  2(10.608)  19.3760)  9.2453
6
Observe Fig 3 y Tabla 8, 9.
Fig 3
Tabla 8

tn xn yn
0.00 -1.0000 6.0000
0.20 9.2453 19.0683
0.40 46.0327 55.1203
0.60 158.9430 150.8192
Tabla 9
tn xn yn
0.00 -1.0000 6.0000
0.10 2.3840 10.8883
0.20 9.3379 19.1332
0.30 22.5541 32.8539
0.40 46.5103 55.4420
0.50 88.5729 93.3006
0.60 160.7563 152.0025
5 Problemas de Valores en la Frontera de Segundo
Orden • Aproximaciones por Diferencias Finitas
El desarrollo en serie de Taylor en a de y(x) es
xa ( x  a)2 ( x  a )3
y ( x)  y (a )  y(a )  y(a )  y(a ) 
Si ponemos h = x 1–! a, entonces 2! 3!

h h2 h3
y ( x)  y (a )  y(a )  y(a )  y(a )  
Escribiendo la última 1! expresión
2! como
3!
2 3
(1)
yy ( x  h)  y ( x)  y( x)h  y( x) h  y( x) h  
2 6 (2)
h2 h3
y ( x  h)  y ( x)  y( x)h  y( x)  y( x)  
2 6
Si h es pequeña, podemso 1
y( x)  [ y ( x y”h)ytérminos
despreciar y ( x) de orden
mayor, luego h
1 (3)
y( x)  [ y ( x)  y ( x  h)]
h (4)
Al restar (1) de (2) se obtiene también
1
y( x)  [ y ( x  h)  y ( x  h)](5)
2h
Si despreciamos los términos con h y superores, entonces al
3
sumar (1) y (2)
(6)
1
y( x)  2 [ y ( x  h)  2 y ( x)  y ( x  h)]
h
Los lados derechos de (3), (4), (5), (6) se denominan cocientes de
diferencias, y estas diferencias se llaman diferencias finitas.

y(x + h) – y(x) : diferencia hacia delante


y(x) – y(x – h) : diferencia hacia atrás
y(x + h) – y(x – h): diferencia central
y(x + h) – 2y(x) + y(x – h): diferencia
central
Método de Diferencias Finitas

y  P( x) y  Q( x) y  f ( x) , y (a)   , y(b)  


• Considere el PVF:
(7)
Supongase que a = x0 < x1 < … < xn < b representa una partición
regular del intervalo [a, b], esto es,
xi = a + ih, donde i = 0, 1, 2, ..., n, y h = (b – a)/n.
Estos puntos se llaman puntos de malla interiores.
x1 que
Si permitimos a sea
h , x2  a  2h ,  , xn1  a  (n  1)h
yi = y(xi), Pi = P(xi), Qi = Q(xi), fi = f(xi),
y si y’ e y” en (7) se remplazan por (5) y (6), entonces
tenemos

yi 1  2 yi  yi 1 yi 1  yi 1
ó
2
 Pi  Qi yi  fi
h 2h
(8)

Esto
 seh conoce
 como ecuación de
 diferencias
h  finitas.
1  Pi  yi 1  (2  h Qi ) yi  1  Pi  yi 1  h fi
2 2

 2   2 
Ejemplo 1

Use (8) con n = 4ypara


  4aproximar
y  0 , yla
(0)solución
 0 , del
y(1)PVF
5
Solución
Tenemos P = 0, Q = –4, f(x) = 0, h = (1 – 0)/4 = ¼ .
De ahí que
(9)
Los puntos interiores son x1y=i 10 + 21/4,
.25 yxi 2 0
= 0yi+1 2/4,
x3= 0 + 3/4, entonces (9) genera
Ejemplo (2)
y2  2.25 y1  y0  0
y3  2.25 y2  y1  0
y4  2.25 y3  y2  0

Junto con y0 = 0, y4 = 5, luego


 2.25 y1  y2 0
y1  2.25 y2  y3  0
y2  2.25 y3  5
Obtenemos y1 = 0.7256, y2 = 1.6327, y3 = 2.9479.
Ejemplo 2

y 
  3 y   2 y 
Use (8) con n = 10 para aproximarx la4 2
y (1)  1del
, solución y (2)  6
, PVF

Solución
Tenemos P = 3, Q = 2, f(x) = 4x2,
h = (2 – 1)/10 = 0.1, de ahí que (8) se transforma
1.15 yi 1  1.98 yi  0.85 yi 1  0.04 xi2
(10)
Los puntos interiores x1= 1.1, x2= 1.2, …, x9= 1.9,
y0 = 1, y10 = 6, luego (10) genera
Ejemplo 2 (2) 1.15 y2  1.98 y1  0.8016
1.15 y3  1.98 y2  0.85 y1  0.0576
1.15 y4  1.98 y3  0.85 y2  0.0676
1.15 y5  1.98 y4  0.85 y3  0.0784
1.15 y6  1.98 y5  0.85 y4  0.0900
1.15 y7  1.98 y6  0.85 y5  0.1024
1.15 y8  1.98 y7  0.85 y6  0.1156
1.15 y9  1.98 y8  0.85 y7  0.1296
1.98 y9  0.85 y8  6.7556
Podemos resolver este sistema de ecuaciones para
obtener y1, y2, …, y9.
Método de Disparos

• Otra manera de aproximar una solución se denomina


método de disparos. El punto de partida de este
método es remplazar el PVF por un PVI:
y  f ( x, y, y) , y (a)   , y(a)  m1
(11)

donde m1 es simplemente una suposición.

Esto se deja como ejercicio. Mirese el problema 14.