Vous êtes sur la page 1sur 17

Captulo 2

Ecuaciones Diferenciales Ordinarias


2.1.

Introducci
on

Una ecuacion diferencial ordinaria lineal de la forma


d
y(x) = f (x, y)
dx

d
y(x) = y  (x)
dx

con

(2.1)

se puede utilizar como modelo matematico de una gran variedad de fen


omenos, ya sean fsicos o no fsicos, y
en disciplinas cientficas y no cientficas. Ejemplos de dichos fen
omenos incluyen problemas de transferencia
de calor (termodin
amica), circuitos electricos simples (ingeniera electrica), problemas de fuerza (ingeniera
mecanica), raz
on de crecimiento de bacterias (ciencias biol
ogicas), razon de descomposicion radioactiva (fsica
at
omica), raz
on de cristalizacion de un componente qumico (qumica), taza de crecimiento de una poblacion
(estadstica), etc. Existe una serie de metodos para resolver este tipo de ecuaciones, dentro de los que podemos
mencionar: separacion de variables, soluci
on exacta y soluci
on por series finitas. Dentro de estos u
ltimos,
veremos los metodos de Euler y RungeKutta segundo y cuarto orden.

2.2.

M
etodo de Euler

La expansion en series de Taylor de primer orden se obtiene evaluando


y(xn+1 )

= y(xn ) + hf (xn , y(xn )) +

h2 
f (xn , y(xn )) + +
2

hp (p1)
f
(xn , y(xn )) + Tn+1
p!
donde
Tn+1 =

hp+1 y (p+1) (xn )


,
(p + 1)!

xn < xn < xn+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)

c 19972006. Dr. Horacio Martnez Alfaro




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(0.0) + 0.5f (0.0, 2.0) = 2 + 0.5(4e0.8(0) 0.5(2)) = 3.5

y(1.0) =

y(0.5) + 0.5f (0.5, 3.5) = 3.5 + 0.5(4e0.8(0.5) 0.5(3.5)) = 5.608649

y(1.5) =
=

y(1.0) + 0.5f (1.0, 5.608649) = 5.608649 + 0.5(4e0.8(1.0) 0.5(5.608649))


8.657569

y(2.0) =
y(2.5) =

y(1.5) + 0.5f (1.5, 8.657569) = 13.133411


y(2.0) + 0.5f (2.0, 13.133411) = 19.756123

y(3.0) =
y(3.5) =

y(2.5) + 0.5f (2.5, 19.756123) = 29.595204


y(3.0) + 0.5f (3.0, 29.595204) = 44.242756

y(4.0) =

y(3.5) + 0.5f (3.5, 44.242756) = 66.071361

Utilizando Maple, lo anterior se pudo haber calculado de la siguiente forma:


>
>
>
>
>
>

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);


0 0.500000 1.000000 1.500000 2.000000 2.500000 3.000000 3.500000 4.000000


2 3.500000 5.608649 8.657569 13.133411 19.756123 29.595204 44.242756 66.071361

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)

o tambien, se puede obtener un procedimiento para obtener una soluci


on numerica:
> snf1 := dsolve({diff(y(x),x)=f(x,y(x)),y(0)=2},y(x),numeric):
> plots[odeplot](snf1,[x,y(x)],0..4);
y la gr
afica de los puntos generados con el metodo de Euler y la soluci
on exacta (y/o n
umerica con un
metodo mas exacto) se muestan en la figura 2.1.
30

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

70
60
50
40
30
20
10

Figura 2.1: Metodo de Euler y soluci


on exacta de la ecuaci
on diferencial.

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.

RungeKutta Segundo Orden

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)

Igualando las ecuaciones 2.7 y 2.8 para resolver:


k1 f (xn , yn ) + k2 f (xn + h, yn + hf (xn , yn )) = f (xn , yn ) +

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)

Y ahora, sustituimos la ecuaci


on 2.10 en la 2.9 para obtener:
k1 f (xn , yn ) + k2 [f (xn , yn ) + hfx (xn , yn ) + hf (xn , yn )fy (xn , yn )]
= f (xn , yn ) + h2 [f (xn , yn )fy (xn , yn )]

(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)

c 19972006. Dr. Horacio Martnez Alfaro




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)

que no es mas que el metodo mejorado de Euler.


Ejemplo 2.2
Ahora resolveremos la ecuacion del ejemplo 2.2 utilizando el metodo de RungeKutta de segundo orden.
Soluci
on

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

Con Maple, lo anterior se puede realizar de la siguiente forma:


> yS2:=<<0 | 2.0>>: h:=0.5:
> for i to 8 do
>
x:=yS2[i,1]; y:=yS2[i,2];
>
yS2 := <yS2, <x+h | y + h/2*(f(x,y) + f(x+h, y+h*f(x,y)))>>;
> end do: Transpose(yS2);
32

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

0 0.500000 1.000000 1.500000 2.000000 2.500000 3.000000 3.500000 4.000000


2.000000 3.804325 6.316538 9.924068 15.196298 22.975938 34.514920 51.676811 77.238524
La figura 2.2 muestra la soluci
on exacta y la soluci
on mediante este metodo.

70
60
50
40
30
20
10

Figura 2.2: Puntos de la soluci


on de la ecuaci
on diferencial mediante el metodo de RungeKutta de segundo
orden y curva de la la soluci
on exacta.

2.3.2.

RungeKutta Cuarto Orden

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

= hf (xn + h/2, yn + k2 /2)


= hf (xn + h, yn + k3 )

(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)

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

y si utilizamos un intervalo de h = h/2, podemos escribir:


yn+1 = yn +
que es la Regla de Simpson

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

= 0.5f (0, 2) = 1.5

k2
k3

= 0.5f (0 + 0.5/2, 2 + 1.5/2) = 1.755306


= 0.5f (0 + 0.25, 2 + 1.755306/2) = 1.723392

k4

= 0.5f (0 + 0.5, 2 + 1.723392) = 2.052801


1
y(0.5) = y(0) + [1.5 + 2(1.755306 + 1.723392) + 2.052801] = 3.751700
6
el procedimiento se repite: (a) calcular las ki , (b) calcular el nuevo valor yk+1 , (c) calcular el nuevo valor
on. Lo anterior se puede
xk+1 = xk + h, (d) parar cuando se haya llegado al lmite superior de integraci
realizar en Maple de la siguiente forma:
>
>
>
>
>
>
>
>
>
>
>
>

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

La figura 2.3 muestra la soluci


on exacta y la soluci
on mediante este metodo.
34

y
2
3.751700
6.195042
9.707772
14.845106
22.428857
33.679984
50.416017
75.345336

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

70
60
50
40
30
20
10

Figura 2.3: Soluci


on de la ecuaci
on diferencial mediante el metodo de RungeKutta de cuarto orden y la
soluci
on exacta.

2.4.

Sistemas de Ecuaciones Diferenciales

Las tecnicas que se discutir


an ser
an dos:
1. Tecnicas que transforman la ecuaci
on diferencial de orden mayor a un sistema de ecuaciones diferenciales de primer orden. La tecnica es conocida como Espacio de Estado, y
2. Splines C
ubicos para ecuaciones diferenciales de segundo orden.

2.5.

Espacio de Estado

El metodo consiste en transformar una ecuacion diferencial de orden p en p ecuaciones diferenciales de


orden 1. Para comenzar, consideremos una ecuacion diferencial de orden 2 (p = 2):
y(t) + (t)y(t)
+ (t)y(t) = u(t)

(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)

Una vez que tenemos la definici


on de estas nuevas variables, que denominaremos variables de estado, podemos
derivarlas con respecto a t para obtener:
x 1 (t) =
x 2 (t) =

y(t)
= x2 (t)
y(t)

(2.33)

y de la ecuacion diferencial original (ecuaci


on 2.31) podemos despejar y(t) para obtener:
y(t)

= (t)y(t) (t)y + u(t)


= (t)x1 (t) (t)x2 (t) + u(t)

(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)

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

y la respuesta que andamos buscando de este nuevo sistema de ecuaciones diferenciales es


y(t) = x1 (t)

(2.36)

Las ecuaciones 2.35 y 2.36 se pueden expresar matricialmente de la siguiente forma:






  
x 1 (t)
0
1
x1 (t)
0
=
+
u(t)

1
x 2 (t)
x2 (t)


y(t) =

1 0

x1 (t)
x2 (t)

(2.37)


(2.38)

y en forma matricial compacta

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)

Para el caso general, considere ahora la siguiente ecuacion diferencial de orden p:


(p)

a0 y +a1

(p1)

+a2

(p2)

+ + ap2 y + ap1 y + ap y = b0 u

(2.42)

y haciendo el siguiente cambio de variables:


x1
x2
x3

= 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

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

2.5.1.

Algoritmo de RungeKutta para Sistemas de Ecuaciones Diferenciales

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)

Las condiciones iniciales las podemos expresar de la siguiente forma:


(0)

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)

hf (tj , x(j) ) k1 = hfi (tj , x(j) )






h (j) 1
h (j) 1
(i)
hf tj + , x + k1 k2 = hfi tj + , x + k1
2
2
2
2




h (j) 1
h
1
(i)
(j)
hf tj + , x + k2 k3 = hfi tj + , x + k2
2
2
2
2




(i)
(j)
(j)
hf tj + h, x + k3 k4 = hfi tj + h, x + k3

(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

y se desea resolver para t (0, 1] con h = 0.1.


Soluci
on

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

La representacion en espacio de estado quedara como


 

  

0
1
x1 (t)
0
x 1 (t)
=
+
e2t
x 2 (t)
x2 (t)
5t 2
1
37

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

con condiciones iniciales


x1 (0) =
x2 (0) =

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)

5tx1 (t) 2x2 (t) + e

2t

(2.55)

El metodo de Euler aplicado a las funciones anteriores resultara en la siguiente forma:


x1 (tk+1 ) =
x2 (tk+1 ) =

x1 (tk ) + hf1 (tk , x1 (tk ), x2 (tk ))


x2 (tk ) + hf2 (tk , x1 (tk ), x2 (tk ))

(2.56)
(2.57)

si la evaluacion en tk la sustituimos como superndice, podramos representar las ecuaciones anteriores de la


siguiente forma:
(k+1)

x1

(k+1)
x2
(k)

con fi

(k)

x1 + hf1

(k)

(k)

(2.58)

(k)
x2

(k)
hf2

(2.59)

(k)

= fi (tk , x1 , x2 ). Calculemos los primeros valores (k = 0):


(1)

x1

(0)

(1)
x2

(0)

(0)

x1 + hf1 (t0 , x1 , x2 ) = 1 + 0.1f1 (0, 1, 1) = 1 + 0.1(1) = 1.1


(0)
x2

=
=

(0)
(0)
hf2 (t0 , x1 , x2 )

= 1 + 0.1f2 (0, 1, 1) = 1 + 0.1[5(0)(1) 2(1) + e

(2.60)
2(0)

0.9

]
(2.61)

Para k = 1, tenemos:
(2)

x1

(1)

(1)

(1)

= x1 + hf1 (t1 , x1 , x2 ) = 1.1 + 0.1f1 (0.1, 1.1, 0.9) = 1.1 + 0.1(0.9)


= 1.19

(2)
x2

(1)
x2

(2.62)
+

(1)
(1)
hf2 (t1 , x1 , x2 )

= 0.9 + 0.1f2 (0.1, 1.1, 0.9)

= 0.9 + 0.1[5(0.1)(1.1) 2(0.9) + e2(0.1) ] = 0.8568730753

(2.63)

y para k = 2, tenemos:
(3)

x1

(3)
x2

(2)

(2)

(2)

=
=

x1 + hf1 (t2 , x1 , x2 ) = 1.19 + 0.1f1 (0.2, 1.19, 0.8568730753)


1.19 + 0.1(0.8568730753) = 1.275687308

(2)
x2

0.8715304648

(2)
(2)
hf2 (t2 , x1 , x2 )

(2.64)

= 0.8568730753 + 0.1f2 (0.2, 1.19, 0.8568730753)


(2.65)

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

c 19972006. Dr. Horacio Martnez Alfaro




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];

La figura 2.4(b) muestra la gr


afica de la soluci
on exacta y la obtenida por el metodo anterior. Las figuras 2.5(a)
on m
as exacta que
y 2.5(b) muestran soluciones para x1 y x2 para diferentes valores de h junto con la soluci
se puede obtener mediante el metodo de Runge-Kutta cuarto-quinto orden de Fehlberg.
5

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

(b) x1 (t) = y(t) para h = 0.1

(a) Valores de las variables

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

(a) x1 y x2 para h = 0.1

0.8

0.2

0.4

0.6

(b) x1 y x2 para h = 0.01

0.8

Figura 2.5: Soluci


on a las variables de estado para diferentes valores de ancho de intervalo.

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

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

El orden del sistemas es 2; por lo tanto, las formula recursivas ser


an:
(i)

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)

h (0) 1 (1) (0) 1 (2)


, x + k1 , x2 + k1 )
2 1
2
2
= 0.1f1 (0.05, 1.05, 0.95)

= hf1 (t0 +
= 0.095

(2.73)

h (0) 1 (1) (0) 1 (2)


, x + k1 , x2 + k1 )
2 1
2
2
= 0.1f2 (0.05, 1.05, 0.95)
= 0.073266

(2.74)

h (0) 1 (1) (0) 1 (2)


, x + k2 , x2 + k2 )
2 1
2
2
= 0.1f1 (0.05, 1.0475, 0.963367)
= 0.096337

(2.75)

= hf2 (t0 +

= hf1 (t0 +

h (0) 1 (1) (0) 1 (2)


, x + k2 , x2 + k2 )
2 1
2
2
= 0.1f2 (0.05, 1.0475, 0.963367)

= hf2 (t0 +

= 0.076002
(1)

k4

(2)

k4

(2.76)
(0)

(1)

(0)

(2)

hf1 (t0 + h, x1 + k3 , x2 + k3 )

0.1f1 (0.1, 1.096337, 0.923998)

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

c 19972006. Dr. Horacio Martnez Alfaro




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

Figura 2.6: Soluci


on para las variables de estado.

Tabla 2.1: Soluci


on para la primera variable de estado.
t
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

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

c 19972006. Dr. Horacio Martnez Alfaro




M
etodos Num
ericos

Tabla 2.2: Soluci


on para la segunda variable de estado.
t
0
.1
.2
.3
.4
.5
.6
.7
.8
.9
1.0

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

Se tiene el siguiente problema:


u(t) = y  + (t)y  + (t)y
y(a)
y  (a)

(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)

Dado que la ecuacion diferencial involucra derivadas de la funci


on que estamos buscando (y(t) = Pi (t)),
necesitamos encontrar sus derivadas:
Pi (t) =
Pi (t) =

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)

Al evaluar para cada punto intermedio, ti+1 , tenemos:


ai h3 + bi h2 + ci h + di

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)

(6ai h + 2bi ) + (ti+1 )(3ai h + 2bi h + ci ) +


(ti+1 )(ai h3 + bi h2 + ci h + di ) =

Sabemos que tenemos n splines y tendremos 4n 2 inc


ognitas y ecuaciones. Las u
ltimas 2 ecuaciones se
obtendr
an de los extremos en donde solo se requiere que se cumpla la ecuacion diferencial, es decir, en t1 y
en tn+1 .
42

c 19972006. Dr. Horacio Martnez Alfaro




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)

La solucion de ecuaciones diferenciales de este tipo mediante splines c


ubicos se puede entender mejor con un
ejemplo.
Ejemplo 2.5
Se tiene la siguiente ecuacion diferencial:
y + 2y 5ty = e2t ,

y(0) = 1,

y(0)

=1

y se desea resolver para t (0, 1] con h = 0.5.


Soluci
on
Dado que h = 0.5, n = 2 y el n
umero de inc
ognitas que tendremos son 4n = 8. De acuerdo a la ecuacion,
tenemos:
=1
=1
(2.98)
(t) = 2 (t) = 5t f (t) = e2t
Las ecuaciones que se generan con los datos son:
d1
c1

=
=

(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)

a1 [6(0.5) + 3(0.5) (2) + (0.5) (5)(0.5)] +


b1 [2 + 2(0.5)2 + (0.5)3 (5)0.5] +
c1 [2 + 0.5(5)0.5] + d1 (5)0.5 =
4.1875a1 + 3.375b1 + 0.75c1 2.5d1 =
En seguida, las 3 restricciones de splines c
ubicos:
a1 h3 + b1 h2 + c1 h + d1
0.125a1 + 0.25b1 + 0.5c1 + d1 d2
43

= d2
= 0

(2.104)

c 19972006. Dr. Horacio Martnez Alfaro




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)

Para t = t3 es la ecuacion 2.96:


3.875a2 + 2.75b2 0.5c2 5d2 = 0.1353353

(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

4.1875 3.375 0.75 2.5


0
0
0
0 c1 0.36788

0.125 0.25 0.5


1
0
0
0
1
0
d1 =

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)

y ambos polinomios forman la soluci


on para y(t).
La grafica de la soluci
on (indicando el valor de la funci
on en los nodos) se muestra en la figura 2.7. La
soluci
on obtenida mediante este metodo esta pr
acticamente sobre la solucion exacta que se onbtendra
mediante Runge-Kutta 4 orden, con la ventaja de que el metodo de Splines C
ubicos no requiere un paso (h)
muy peque
no para dar una soluci
on muy exacta.

44

c 19972006. Dr. Horacio Martnez Alfaro




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

Figura 2.7: Soluci


on mediante splines c
ubicos y soluci
on mediante Maple.

45

Vous aimerez peut-être aussi