Académique Documents
Professionnel Documents
Culture Documents
Introducci
on
d
y(x) = y (x)
dx
con
(2.1)
2.2.
M
etodo de Euler
h2
f (xn , y(xn )) + +
2
hp (p1)
f
(xn , y(xn )) + Tn+1
p!
donde
Tn+1 =
(2.2)
(2.3)
Para p = 1, tenemos:
y(xn+1 ) = y(xn ) + hf (xn , y(xn )) + Tn+1
(2.4)
Los terminos de orden superior se desprecian. El algoritmo de Euler utiliza esta expansi
on en series de Taylor
ormula:
lineal para calcular una nueva aproximaci
on y(xn+1 ) (que denominaremos yn+1 ) mediante la f
yn+1 = yn + hf (xn , yn )
siendo este el algoritmo mas sencillo para resolver numericamente ecuaciones diferenciales ordinarias.
29
(2.5)
M
etodos Num
ericos
Ejemplo 2.1
Utilizando el metodo de Euler, integre numericamente la siguiente ecuacion:
dy(x)
= y = f (x, y(x)) = 4e0.8x 0.5y(x)
dx
de x = 0 a x = 4 con un tama
no de paso de 0.5 (h = 0.5). La condicion inicial en x = 0 es y = 2 (es decir,
y(0) = 2).
Soluci
on
Si utilizamos la ecuacion 2.4, podemos sustituir los datos y comenzar la soluci
on numerica del problema:
y(0.5) =
y(1.0) =
y(1.5) =
=
y(2.0) =
y(2.5) =
y(3.0) =
y(3.5) =
y(4.0) =
f := (x,y)->4*exp(0.8*x) - 0.5*y;
ySol:=<<0 | 2>>: h := 0.5:
for i to 8 do
x:=ySol[i,1]:
y:=ySol[i,2]:
ySol := <ySol, <x+h | y+h*f(x,y)>>;
end do: Transpose(ySol);
La solucion exacta a este problema se puede obtener con Maple de la siguiente forma:
> dsolve({diff(y(x),x)=f(x,y(x)), y(0)=2}, y(x));
y(x) =
1
(40e4x/5 14ex/2)
13
(2.6)
M
etodos Num
ericos
70
60
50
40
30
20
10
2.3.
M
etodos de RungeKutta
Los metodos de RungeKutta utilizan indirectamente el algoritmo de Taylor. En general, estos metodos
eval
uan f (x, y) en mas de un punto en la proximidad de (xn , yn ) en lugar de evaluar derivadas de f (x, y),
las cuales se necesitaran para el uso directo del algoritmo por series de Taylor.
La derivaci
on de estos metodos se acompa
na de la suposicion de un algoritmo particular con ciertos coeficientes indeterminados. Los valores de estos terminos constantes se encuentran igualando la f
ormula de
RungeKutta de orden p al algoritmo de Taylor de orden p.
2.3.1.
Asumiendo:
yn+1 = yn + h [k1 f (xn , yn ) + k2 f (xn + h, yn + hf (xn , yn ))]
la cual es equivalente al algoritmo cuadr
atico de Taylor:
h
yn+1 = yn + h f (xn , yn ) + f (xn , yn )
2
(2.7)
(2.8)
h
f (xn , yn )
2
(2.9)
y expandiendo el segundo termino del lado izquierdo en la ecuacion anterior en una expansi
on lineal de
Taylor, obtenemos:
f (xn + h, yn + hf (xn , yn )) = f (xn , yn ) + hfx (xn , yn ) + hf (xn , yn )fy (xn , yn )
(2.10)
(2.11)
donde el nuevo lado derecho se obtiene de reemplazar f por fx + f fy y as obtenemos tres ecuaciones:
k1 + k2
k2 =
k2
31
1
1
2
1
2
(2.12)
(2.13)
(2.14)
M
etodos Num
ericos
Dado que se tienen 4 parametros por determinar y solo 3 ecuaciones, se tiene una familia de soluciones en
terminos de uno de ellos (k1 , k2 , y ). Si hacemos k2 = 0 como par
ametro independiente, se obtiene la
siguiente soluci
on:
k1
1 k2
1
2k2
1
2k2
(2.15)
(2.16)
(2.17)
y sustituyendo en la ecuaci
on 2.7, obtenemos:
yn+1 = yn +
h
[f (xn , yn ) + f (xn + h, yn + hf (xn , yn ))]
2
(2.18)
on:
Para simplificar un poco, podemos hacer xn + h = xn+1 y f (xn , yn ) = fn y as simplificar la notaci
yn+1 = yn +
h
[fn + f (xn+1 , yn + hfn )]
2
(2.19)
y(0.5) =
=
=
y(1.0) =
=
y(1.5) =
=
y(0) +
0.5
[f (0, 2) + f (0 + 0.5, 2 + 0.5f (0, 2))]
2
0.5
[(4e0.8(0) 0.5(2)) + f (0.5, 2 + 0.5f (0, 2))]
2
0.5
[3 + f (0.5, 3.5)] = 3.804325
2+
2
0.5
y(0.5) +
[f (0.5, 3.804325) + f (0.5 + 0.5, 3.804325 + 0.5f (0.5, 3.804325))]
2
6.316538
0.5
[f (1.0, 6.316538) + f (1.0 + 0.5, 6.316538 + 0.5f (1.0, 6.316538))]
y(1.0) +
2
9.924068
2+
y(2.0) =
y(2.5) =
15.196298
22.975938
y(3.0) =
y(3.5) =
34.514920
51.676811
y(4.0) =
77.238524
M
etodos Num
ericos
70
60
50
40
30
20
10
2.3.2.
Este metodo trata de resolver ecuaciones diferenciales ordinarias de la forma mostrada en 2.1. La f
ormula
utilizada por este metodo1 se utiiliza para calcular la nueva aproximaci
on yn+1 (no olvidar que aqu la
variable independiente es x y la variable dependiente es y):
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 )
6
(2.20)
donde
k1
k2
= hf (xn , yn )
= hf (xn + h/2, yn + k1 /2)
(2.21)
(2.22)
k3
k4
(2.23)
(2.24)
Este metodo se basa en una expansion de Taylor truncada hasta terminos de cuarto orden. En algunas
ocasiones es llamado el metodo de KuttaSimpson porque se reduce a la Regla de Simpson si y (x) es
independiente de y. Esto es, si y (x) = f (x), tenemos:
k1
k2
=
=
hf (xn )
hf (xn + h/2)
(2.25)
(2.26)
k3
k4
=
=
hf (xn + h/2)
hf (xn + h)
(2.27)
(2.28)
y
yn+1 = yn +
1 Ver
h
[f (xn ) + 4f (xn + h/2) + f (xn , yn )]
6
deducci
on en Fulks, W. (1978), Advanced calculus (Third Edition). John Wiley & Sons, N.Y., p. 331
33
(2.29)
M
etodos Num
ericos
1
3
h
[f (xn ) + 4f (xn + h ) + f (xn + 2h )]
3
(2.30)
para integraci
on.
Ejemplo 2.3
El problema es el mismo que el expuesto en el ejemplo 2.2.
Soluci
on
Evaluamos las constantes del metodo para posteriormente obtener el valor del nuevo punto.
k1
k2
k3
k4
yS3:=<<0 | 2>>:
Ks:=<<0 | 0 | 0 | 0>>: h:=0.5:
for k to 8 do
x:=yS3[k,1]: y:=yS3[k,2]:
k1 := h*f(x,y):
k2 := h*f(x+h/2, y+k1/2):
k3 := h*f(x+h/2, y+k2/2):
k4 := h*f(x+h,
y+k3):
y1 := y + (k1 + 2*(k2 + k3) + k4)/6:
yS3 := <yS3, <x+h | y1>>;
Ks := <Ks, <k1 | k2 | k3 | k4>>;
end do: <<k1|k2|k3|k4|x|y>, <Ks | yS3>>;
k1
k2
k3
k4
0
0
0
0
1.500000 1.755306 1.723392 2.052801
2.045725 2.450597 2.399988 2.913160
2.902321 3.525013 3.447177 4.229679
4.213291 5.156796 5.038858 6.219407
6.194788 7.613670 7.436310 9.207758
9.170898 11.296451 11.030756 13.681449
13.626357 16.804186 16.406957 20.367558
20.285289 25.031408 24.438143 30.351520
x
0
0.500000
1.000000
1.500000
2.000000
2.500000
3.000000
3.500000
4.000000
y
2
3.751700
6.195042
9.707772
14.845106
22.428857
33.679984
50.416017
75.345336
M
etodos Num
ericos
70
60
50
40
30
20
10
2.4.
2.5.
Espacio de Estado
(2.31)
Para obtener las 2 ecuaciones diferenciales de orden 1, se hara el siguiente cambio de variables:
x1 (t) =
x2 (t) =
y(t)
y(t)
(2.32)
y(t)
= x2 (t)
y(t)
(2.33)
(2.34)
para de esta forma sustituir en nuestra nueva representacion con las nuevas variables x1 (t) y x2 (t):
x 1 (t) =
x 2 (t) =
x2 (t)
(t)x1 (t) (t)x2 (t) + u(t)
35
(2.35)
M
etodos Num
ericos
(2.36)
y(t) =
1 0
x1 (t)
x2 (t)
(2.37)
(2.38)
x(t)
= Ax(t) + Bu(t)
y(t) = Cx(t)
con
x(t) =
x1 (t)
x2 (t)
, A=
, B=
(2.39)
(2.40)
0
1
, C=
1 0
(2.41)
a0 y +a1
(p1)
+a2
(p2)
+ + ap2 y + ap1 y + ap y = b0 u
(2.42)
= y
= y
= y
..
.
xp1
xp
(2.43)
(p2)
(p1)
El procedimiento a seguir es el mismo descrito para la ecuacion diferencial de orden 2, tenemos (con a0 = 1):
x 1
x 2
..
.
x p1
x p
0
0
..
.
1
0
..
.
0
ap
0
ap1
y= 1
0 0
..
.
0
1
..
.
0
ap2
x1
x
2
0 .
..
0
0
..
.
x1
x2
..
.
1 xp1
a1
xp
0
0
..
.
+
0
b0
(2.44)
xp
La solucion numerica a un sistema de ecuaciones diferenciales se realiza con el metodo de Euler o Runge
Kutta.
36
M
etodos Num
ericos
2.5.1.
Dado que ahora tenemos p ecuaciones diferenciales de orden 1, existiran p variables que denotaran la soluci
on
al sistema. Para lograr lo anterior, manejaremos dos subndices: el primero indicar
a la variable y el segundo
indicar
a el n
umero de la aproximaci
on.
Considere el sistema de ecuaciones diferenciales de la seccion anterior (ecuaci
on 2.44). Expres
andolo como
funciones, sera:
x1 (t)
= f1 (t, x1 , x2 , . . . , xp ) = f1 (t, x)
..
.
(2.45)
xp (t)
= fp (t, x)
(2.46)
x1
=
..
.
(2.47)
x(0)
p
(2.48)
con la f
ormula recursiva
1
x(j+1) = x(j) + [k1 + 2k2 + 2k3 + k4 ]
6
y las ks ahora tomar
an la siguiente forma:
k1
k2
k3
k4
(i)
(2.49)
(2.50)
(2.51)
(2.52)
(2.53)
donde i = 1, . . . , p.
Ejemplo 2.4
Se tiene la siguiente ecuacion diferencial con condiciones iniciales:
y + 2y 5ty = e2t ,
y(0) = 1,
y(0)
=1
Comparando con la
Dado que la ecuacion diferencial es de orden 2, se tiene que x1 (t) = y(t) y x2 (t) = y(t).
ecuacion 2.31, podemos definir:
(t) = 2,
(t) = 5t,
u(t) = e2t
M
etodos Num
ericos
y(0) = 1
y(0)
=1
Una vez expresada la ecuacion diferencial en espacio de estado, podemos utilizar uno de los metodos descritos
en las secciones anteriores (Euler, RungeKuta 2 y/o 4 orden).
Soluci
on por Euler
Para este metodo, necesitamos definir nuestras funciones fi (t, x1 (t), x2 (t)) (que se obtienen de las ecuaciones
de espacio de estado):
f1 (t, x1 (t), x2 (t)) =
f2 (t, x1 (t), x2 (t)) =
x2 (t)
(2.54)
2t
(2.55)
(2.56)
(2.57)
x1
(k+1)
x2
(k)
con fi
(k)
x1 + hf1
(k)
(k)
(2.58)
(k)
x2
(k)
hf2
(2.59)
(k)
x1
(0)
(1)
x2
(0)
(0)
=
=
(0)
(0)
hf2 (t0 , x1 , x2 )
(2.60)
2(0)
0.9
]
(2.61)
Para k = 1, tenemos:
(2)
x1
(1)
(1)
(1)
(2)
x2
(1)
x2
(2.62)
+
(1)
(1)
hf2 (t1 , x1 , x2 )
(2.63)
y para k = 2, tenemos:
(3)
x1
(3)
x2
(2)
(2)
(2)
=
=
(2)
x2
0.8715304648
(2)
(2)
hf2 (t2 , x1 , x2 )
(2.64)
Si la evaluaci
on de las funciones contin
ua de la forma anterior, obtenemos la tabla mostrada en la figura 2.4(a).
La solucion anterior se puede obtener con Maple de la siguiente forma:
38
M
etodos Num
ericos
>
>
>
>
>
>
f1:=(x1,x2,t)->x2; f2:=(x1,x2,t)->5*t*x1-2*x2+exp(-2*t);
ee1:=<<0 | 1 | 1>>: h:=0.1:
for k to 10 do
t:=ee1[k,1]; x1:=ee1[k,2]; x2:=ee1[k,3];
ee1:=<ee1, <t+h | x1+h*f1(x1,x2,t) | x2+h*f2(x1,x2,t)>>;
end do: ee1[2..11,1..3];
t
0
0.100000
0.200000
0.300000
0.400000
0.500000
0.600000
0.700000
0.800000
0.900000
1.000000
x1 (t)
1
1.100000
1.190000
1.275687
1.362840
1.457186
1.564413
1.690303
1.840959
2.023111
2.244489
x2 (t)
1
0.900000
0.856873
0.871530
0.943459
1.072268
1.258899
1.506562
1.821516
2.213786
2.697958
1
0
0.2
0.4
0.6
0.8
Figura 2.4: Valores de la solucion para las variables de estado y la solucion de la ecuaci
on diferencial
original.
2.5
2.5
1.5
1.5
0.2
0.4
0.6
0.8
0.2
0.4
0.6
0.8
Soluci
on por RungeKutta
Para este metodo, utilizaremos las f
ormulas descritas en la seccion 2.5.1. Las funciones que utilizar
a el metodo
son las ecuaciones 2.54 y 2.55.
39
M
etodos Num
ericos
k1
(i)
k2
(i)
k3
(i)
k4
(j+1)
xi
(0)
(j)
(j)
hfi (tj , x1 , x2 ), i = 1, 2
h (j) 1 (1) (j) 1 (2)
hfi (tj + , x1 + k1 , x2 + k1 ), i = 1, 2
2
2
2
h (j) 1 (1) (j) 1 (2)
hfi (tj + , x1 + k2 , x2 + k2 ), i = 1, 2
2
2
2
(j)
(1)
(j)
(2)
hfi (tj + h, x1 + k3 , x2 + k3 ), i = 1, 2
1 (i)
(j)
(i)
(i)
(i)
k1 + 2k2 + 2k3 + k4 , i = 1, 2
xi +
6
(2.66)
(2.67)
(2.68)
(2.69)
(2.70)
(0)
Para j = 0, t0 = 0, x1 = 1 y x2 = 1:
(1)
k1
(2)
k1
(1)
k2
(2)
k2
(1)
k3
(2)
k3
(0)
(0)
hf1 (t0 , x1 , x2 )
=
=
0.1f1 (0, 1, 1)
0.1
=
=
hf2 (t0 , x1 , x2 )
0.1f2 (0, 1, 1)
0.1
(0)
(2.71)
(0)
(2.72)
= hf1 (t0 +
= 0.095
(2.73)
(2.74)
(2.75)
= hf2 (t0 +
= hf1 (t0 +
= hf2 (t0 +
= 0.076002
(1)
k4
(2)
k4
(2.76)
(0)
(1)
(0)
(2)
hf1 (t0 + h, x1 + k3 , x2 + k3 )
0.0924
=
=
hf2 (t0 + h, x1 + k3 , x2 + k3 )
0.1f2 (0.1, 1.096337, 0.923998)
0.04811
(2.77)
(0)
(1)
(0)
(2)
(2.78)
40
M
etodos Num
ericos
(1)
x1
=
=
=
(1)
x2
=
=
=
(0)
x1 +
1 (1)
(1)
(1)
(1)
k1 + 2k2 + 2k3 + k4
6
1
[0.1 + 2(0.095) + 2(0.096337) + 0.0924]
6
1.095846
1 (2)
(0)
(2)
(2)
(2)
k1 + 2k2 + 2k3 + k4
x2 +
6
1
1 + [0.1 + 2(0.073266) + 2(0.076002) 0.04811]
6
0.925559
1+
(2.79)
(2.80)
El procedimiento se repite para j = 1, 2, . . . , 10 y se obtienen los siguientes valores de las k s para xj1
(tabla 2.1) y xj2 (tabla 2.2). La figura 2.6 muestra la gr
afica de la soluci
on numerica mas exacta posible para
x1 y x2 y los puntos obtenidos mediante este metodo.
3
2.5
1.5
1
0
0.2
0.4
0.6
0.8
x1
1
1.095845527
1.186861729
1.278384263
1.375866349
1.484920948
1.611466199
1.761961852
1.943733785
2.165394141
2.437376282
k1
0
0.1
0.09255589258
0.09037294423
0.09358681408
0.1023175496
0.1167817807
0.1373883797
0.1648263472
0.2001548400
0.2449063271
k2
0
0.09500000000
0.09013357090
0.09062155868
0.09656007283
0.1080911030
0.1255045117
0.1493275058
0.1804110297
0.2200235143
0.2699635570
41
k3
0
0.09633668709
0.09152958962
0.09204374292
0.09800903793
0.1095953202
0.1271162227
0.1511208944
0.1824829268
0.2224968943
0.2729941880
k4
0
0.09239978676
0.09021499921
0.09343165860
0.1021674848
0.1166371999
0.1372482601
0.1646887422
0.2000173397
0.2447664819
0.3010710319
M
etodos Num
ericos
2.5.2.
x2
1
.9255589258
.9037294423
.9358681408
1.023175496
1.167817807
1.373883797
1.648263472
2.001548400
2.449063271
3.012153065
k1
0
-.1
-.04844643359
.00497228900
.05946517491
.1154710670
.1744546197
.2387825215
.3116936500
.3973734858
.5011445981
k2
0
-.07326625820
-.02052605923
.03341597377
.08844447698
.1455554129
.2066888405
.2746502942
.3531315916
.4468410858
.5617572179
k3
0
-.07600213240
-.02340893373
.03058714367
.08580670688
.1431965034
.2046647941
.2730036250
.3519099249
.4461164193
.5616470479
k4
0
-.04810966389
.00533951790
.05985366721
.1158765870
.1748789616
.2392340523
.3121876945
.3979328839
.5018007305
.6305856295
Splines C
ubicos
(2.81)
=
=
(2.82)
(2.83)
y se desea resolver para t [a, b] con un ancho de intervalo constante h = ti+1 ti (distancia entre dos
puntos consecutivos). El objetivo del metodo es suponer que la forma de la funci
on resultante por intervalos
es la de un Spline C
ubico:
y(t) Pi (t) = ai (t ti )3 + bi (t ti )2 + ci (t ti ) + di ,
ti t ti+1
(2.84)
Pi (t) =
ai (t ti )3 + bi (t ti )2 + ci (t ti ) + di
3ai (t ti )2 + 2bi (t ti ) + ci
(2.85)
(2.86)
6ai (t ti ) + 2bi
(2.87)
di+1
(2.88)
3ai h + 2bi h + ci
ci+1
(2.89)
6ai h + 2bi
2bi+1
(2.90)
y posteriormente sustituyendo los resultados anteriores en la ecuacion diferencial (ecuacion 2.81), obtenemos:
y + (t)y + (t)y
u(t)
(2.91)
u(ti+1 )
(2.92)
M
etodos Num
ericos
Las cuatro ecuaciones que se tienen que cumplir en cada punto intermedio son:
ai h3 + bi h2 + ci h + di
3ai h2 + 2bi h + ci
=
=
6ai h + 2bi =
ai [6h + 3h (ti+1 ) + h (ti+1 )] +
2
di+1
ci+1
(2.93)
(2.94)
2bi+1
(2.95)
f (ti+1 )
(2.96)
bi [2 + 2h(ti+1 ) + h2 (ti+1 )] +
ci [(ti+1 ) + h(ti+1 )] + di (ti+1 ) =
y en los extremos (t1 y tn+1 ) es evaluar la ecuacion 2.92 en t1 y tn+1 , respectivamente; obteniendo en t = t1 :
2b1 + c1 (t1 ) + d1 (t1 ) = f (t1 )
(2.97)
y(0) = 1,
y(0)
=1
=
=
(2.99)
(2.100)
Sabemos que se van a generar 3 puntos (t1 , t2 y t3 ) y solo requerimos que en los puntos intermedios se cumplan
las condiciones de splines c
ubicos para la ecuacion diferencial, es decir, s
olo en t2 . As pues, comenzamos con
la ecuacion diferencial:
a1 [6h + 3h2 (t2 ) + h3 (t2 )] +
b1 [2 + 2h(t2 ) + h2 (t2 )] +
c1 [(t2 ) + h(t2 )] + d1 (t2 ) =
2
f (t2 )
(2.101)
e2(0.5)
0.36788
(2.102)
(2.103)
= d2
= 0
(2.104)
M
etodos Num
ericos
3a1 h2 + 2b1 h + c1
c2
0.75a1 + b1 + c1 c2
6a1 h + 2b1
3a1 + 2b1 2b2
(2.105)
= 2b2
= 0
(2.106)
Por u
ltimo, generar las ecuaciones de los nodos externos en donde s
olo se requiere que la ecuacion diferencial
se cumpla:
Para t = t1 :
2b1 + c1 (t1 ) + d1 (t1 )
2b1 + 2c1
= f (t1 )
= 1
(2.107)
(2.108)
Una vez teniendo todas las ecuaciones, podemos representarlo en forma matricial:
0
0
0
1
0
0
0
0
1
a1
0
0
1
0
0
0
0
0
1
b1
0.75
1
1
0
0
0
1
0 a2
0
3
2
0
0
0
2
0
0 b2
0
c2
0
2
2
0
0
0
0
0
1
d2
0
0
0
0
3.875 2.75 0.5 5
0.1353353
(2.109)
cuya soluci
on es:
c1 = 1
d1 = 1
a1 = 0.90874733 b1 = 0.5
a2 = 1.49561287 b2 = 0.863120994 c2 = 1.1815605 d2 = 1.488593416
(2.110)
La solucion anterior d
a los coeficientes de los siguientes polinomios:
P1 (t) =
P2 (t) =
a1 (t t1 )3 + b1 (t t1 )2 + c1 (t t1 ) + d1 ,
a2 (t t2 )3 + b2 (t t2 )2 + c2 (t t2 ) + d2 ,
t1 t t 2
t2 t t 3
(2.111)
(2.112)
44
M
etodos Num
ericos
2.4
2.2
2
1.8
1.6
1.4
1.2
1
0
0.2
0.4
0.6
0.8
45