Professional Documents
Culture Documents
>> sqrt(sym(2))
ans =
2^(1/2)
Notacin MatLab
>> pretty(sqrt(sym(2)))
1/2
2
Notacin Matemticas
>> q=sym(2)/sym(5)
q=
2/5
>> q=sym(2)/sym(5);
>> r=sym(1)/sym(3);
>> S=q+r
S=
11/15
>> syms x
>> h=x.^3
h=
x^3
>> syms x
>> h=x.^3
h=
x^3
>> diff(h)
ans =
3*x^2
>> diff(h,2)
ans =
6*x
>> diff(h,3)
ans =
6
>> syms x
>> f=exp(-x)-x
>> diff(f)
ans =
-exp(-x)-1
>> syms x y
>> f=3*x.^2*y
>> diff(f,x)
ans =
6*x*y
>> diff(f,x,2)
ans =
6*y
Pag .1
Ecuaciones diferenciales
>> diff(f,y)
ans =
3*x^2
INTEGRACION
Matlab puede integrar ecuaciones usando la funcin int
Ejercicio N 1 Integrar la siguiente funcin:
>> int('x^3')
ans =
>> syms x
>> y=x.^3
y=
x^3
1/4*x^4
>> int(y)
ans =
>> pretty(int('x^3'))
4
1/4 x
1/4*x^4
>> pretty(int(y))
4
1/4 x
Ejercicio N 2
Integrar las siguientes funciones entre los lmites 0 y 3
0
3
x3
x2
>> syms x
>> y=x.^3
y=
x^3
>> syms x
>> y=x.^2
y=
x^2
>> int(y,0,3)
ans =
81/4
>> int(y,0,3)
ans =
9
Ejercicio N 3
Resolver la siguiente integral
y=
( 2x
+ 12 x 2 20 x + 8.5 dx
>> syms x
>> y=-2*x.^3+12*x.^2-20*x+8.5
y=
-2*x^3+12*x^2-20*x+17/2
>> pretty(int(y))
4
3
2
- 1/2 x + 4 x - 10 x +
17/2 x
>> int(y)
ans =
Ing. Hctor G. Bolaos Sosa
Pag .2
Ecuaciones diferenciales
-1/2*x^4+4*x^3-10*x^2+17/2*x
Ejercicio N 4
Determinar la integral doble de la siguiente funcin
dx
>> syms x
>> y=x.^2
y=
x^2
>> pretty(int(int(y)))
4
1/12 x
2. GENERALIDADES
Una ecuacin que permite calcular la velocidad de cada de un paracaidista en
funcin del tiempo, est basada en la segunda ley de newton:
F = m.a
F
m
dv F
=
dt m
a=
(1)
(2)
(3)
=
Simplificando, se tiene:
=
(7)
Donde:
La fuerza Total (F) est compuesta por 2
fuerzas contrarias:
Fd : Fuerza debido a la gravedad
Fv : Fuerza debido a la resistencia del aire
F = Fd + Fv
Fd = mg
Fv = cv
(4)
(5)
(6)
Fv
m: masa; Kg
g: aceleracin de la gravedad; m/s2
v: velocidad de cada; m/s
Fd
Pag .3
Ecuaciones diferenciales
Cuando la funcin involucra a dos o ms variables independientes, la ecuacin se
llama ecuacin diferencial parcial (EDP).
Las ecuaciones diferenciales tambin pueden ser:
De primer orden, cuando la derivada ms alta es la primera derivada. Ejemplo la
ecuacin (7)
Ecuacin de segundo orden, cuando incluye la segunda derivada; la ecuacin de
Laplace para flujo de calor:
+
+
=0
2.1. Mtodos para resolver la EDO
Las EDOs , se resuelven con frecuencia con tcnicas de integracin analticas.
Asi, por ejemplo la ecuacin (7), se puede resolver con tcnicas de integracin
analticas
=
t
gm
v(t ) =
1 e m
c
% = &
* = +
,
' +)-.) )
&
Estas leyes definen mecanismos de cambio, cuando se combinan con las leyes
de la conservacin de la energa, masa o momentum; resultan ecuaciones
Ing. Hctor G. Bolaos Sosa
Pag .4
Ecuaciones diferenciales
diferenciales. La integracin de estas ecuaciones diferenciales originan
funciones matemticas que describen el estado espacial y temporal de un
sistema en trminos de variacin de energa, masa o velocidad.
As en ejemplo del paracaidista, es una ecuacin diferencial a partir de una ley
fundamental (ley de Newton). Esta describe la razn de cambio de velocidad del
paracaidista.
3. ANTECEDENTES MATEMATICOS
Una solucin de una EDO, es una funcin especfica de la variable independiente
(denominador) y de parmetros que satisfacen la EDO original.
Ejemplo N 01.Sea la siguiente funcin:
= 0.5 2 4 4 10 8.5 1 799
Desarrollar:
a) Un grfico de la funcin; en el intervalo de 0 a 4
b) Obtener la ecuacin diferencial ordinaria
c) Graficar la ecuacin diferencial ordinaria
Solucin
a) Grfico de la funcin
0.5 2 4 4 10 8.5 1
5
4.5
4
f(X)
3.5
3
2.5
2
1.5
1
0.5
1.5
2
X
2.5
3.5
b) Ecuacin diferencial
2 4 12 10 8.5 7109
c) Resolviendo la ecuacin diferencial
El objetivo es determinar la funcin original dada una ecuacin diferencial para esto
podemos integral la ecuacin diferencial:
Pag .5
Ecuaciones diferenciales
7 2 4 12 20 8.59 7119
10
dy
C=+3
C=+1
C=0
-5
C=-3
-10
-15
0.5
1.5
2
dx
2.5
3.5
Pag .6
Ecuaciones diferenciales
>> fx=inline('-.5*x.^4+4*x.^310*x.^2+8.5*x+1
>> fplot(fx,[0 4]),grid
5
4.5
4
3.5
y
3
2.5
2
1.5
1
1.5
2
x
2.5
3.5
2
dx
2.5
3.5
10
8
6
4
2
0
-2
-4
-6
-8
0.5
dy
>> syms x
>> y=-.5*x.^4+4*x.^310*x.^2+8.5*x+1
>> dy=diff(y)
dy =
- 2*x^3 + 12*x^2 - 20*x +
17/2
0.5
1.5
Pag .7
Ecuaciones diferenciales
10
8
6
EC. ORIGINAL
2
0
-2
E C . D I F E R EN C I AL
-4
-6
-8
0.5
1.5
2
X
2.5
3.5
Solucin analtica:
>>dy=dsolve('Dy=-2*x^3+12*x^2-20*x+8.5','x')
dy =
- x^4/2 + 4*x^3 - 10*x^2 + (17*x)/2 + C2
>>dy=dsolve('Dy=-2*x^3+12*x^220*x+8.5','y(0)=1','x')
dy =
- x^4/2 + 4*x^3 - 10*x^2 + (17*x)/2 + 1
Ejemplo N 03.-
Pag .8
Ecuaciones diferenciales
Resolver en forma analticamente, la siguiente expresin:
1
71 + 9
2
Solucin
>> dy=dsolve('Dy=(1/2)*(1+x)*y^2','y(0)=1','x')
dy =
-1/((x*(x + 2))/4 - 1)
>> pretty(dy)
1
- ------------x (x + 2)
--------- - 1
4
Ejemplo N 04Sea la siguiente ecuacin diferencial:
=
a) Resolver analticamente
b) Resolver con la condicin inicial v=0; t=0
Solucin
t
gm
v(t ) =
1 e m
c
>> r=dsolve('Dv=g-c/m*v','t')
r=
-(C/exp((c*t)/m) - g*m)/c
>> r=dsolve('Dv=g-c/m*v','v(0)=0','t')
r=
(g*m - (g*m)/exp((c*t)/m))/c
>> dsolve('Dy=x/y','x')
Pag .9
Ecuaciones diferenciales
,
2
2
D 2,
E7 2,9F/
ans =
(x^2+C1)^(1/2)
-(x^2+C1)^(1/2)
Solucin particular:
x=0; y=2;
>> S=dsolve('Dy=x-y','y(0)=2','x')
S=
x + 3/exp(x) - 1
Solucin Particular:
>> S=dsolve('Dy=exp(x)/y','y(0)=4','x')
S=
2^(1/2)*(exp(x) + 7)^(1/2)
Pag .10
Ecuaciones diferenciales
4. METODOS DE RUNGE-KUTTA
Se tratar de la resolucin de ecuaciones diferenciales de la forma
-7, 9
b
_ d 7e
e[ 9
c [ [\A
Todos los mtodos de un paso se pueden expresar en esta forma. Permiten el clculo
de ;[\A dada la ecuacin diferencial
Pag .11
Ecuaciones diferenciales
Solucin General
>> x=[0:0.5:4];
>> y=-0.5*x.^4+4*x.^310*x.^2+8.5*x+1;
>> tabla=[x;y]'
tabla =
0.0000 1.0000
0.5000 3.2188
1.0000 3.0000
1.5000 2.2188
2.0000 2.0000
2.5000 2.7188
3.0000 4.0000
3.5000 4.7188
4.0000 3.0000
3
2.5
2
1.5
1
0.5
1.5
2
x
2.5
3.5
b) Solucin Numrica
;[\A ;[ g7>[ ;[ 9^
Ing. Hctor G. Bolaos Sosa
Pag .12
Ecuaciones diferenciales
Donde
h=0.5;
xi = 0;Valor inicial
yi = 1
Para el segundo valor:
x1=0; y1=1
f(x1,y1)=
-71, 19 27094 12709 20709 8.5 8.5
;[\A ;[ g7>[ ;[ 9^
;[\A A C. =7<. =9 =. B=
>> y=inline('-2*x.^3+12*x.^2-20*x+8.5');
>> x1=0;y1=1;h=0.5;
>> pend=feval(y,x1)
pend = 8.5000
>> ymas=y1+pend*h
ymas = 5.2500
j( j k($
100
j(
3.21875 5.2500
%i
100 63.11%
3.21857
Error Global:
%i
>> x2=x1+h
x2 = 0.5000
>> y1=ymas
y1 = 5.2500
>> pend=feval(y,x2)
pend = 1.2500
>> ymas=y1+pend*h
ymas = 5.8750
>> x2=x2+h
x2 = 1
>> y1=ymas
y1 = 5.8750
>> pend=feval(y,x2)
pend = -1.5000
>> ymas=y1+pend*h
ymas = 5.1250
%Error Global
%Error Local
-63.10
-95.83
-130.98
-125.00
-74.71
-63.1
-28.0
-1.41
20.5
17.3
Pag .13
Ecuaciones diferenciales
3.0
3.5
4.0
4.0000
4.7188
3.0000
5.8750
7.1250
7.0000
-46.87
-50.99
-133.33
4.0
-11.3
-53.0
8
7
6
h=0.5
5
4
3
Solucion
Verdadera
2
1
0
0.5
1.5
2
x
2.5
3.5
Ejemplo N02
Resolver el ejercicio anterior para tamaos de paso de h=0.25 y para h=0.10,
graficar.
Ejemplo N03
Resolver las siguientes ecuaciones diferenciales, usando el mtodo de Euler, con
tamao de paso h=0.5
a)
b)
c)
d)
p
H
p
H
p
H
71 9
qr
p
; x=0; y= 1
v=0; t=0
;x=0; y=2
; x=0; y=4
Pag .14
Ecuaciones diferenciales
s) t)
) !: -7f , f 9 f
w
9
s) ) !: - 7f\F , f\F
w
9
-7f , f 9 -7f\F , f\F
s) s($)$:
2
La ecuacin Predictor es:
w
f\F
f - 7f , f 9x
w
y
9
f\F
-7f\F , f\F
zy
w
y
9
fy f\F
- 7f , f 9 -7f\F , f\F
2
2
f\F
w
9
-7f , f 9 -7f\F , f\F
f
x
2
Esta pendiente se usa para extrapolar linealmente desde yi hasta yi+1, usando el
mtodo de Euler, la cual se denomina, ecuacin Corrector.
Ejemplo N 01
Usar el mtodo de Heun para integrar numricamente la siguiente ecuacin.
dy
= 2 x 3 + 12 x 2 20 x + 8.5
dx
Para el rango de: 0<x<4
Condicin inicial: y(0)=1
Tamao del paso: h= 0.5
Solucin
a) Primer valor
Ing. Hctor G. Bolaos Sosa
Pag .15
Ecuaciones diferenciales
f 0
f 1
b) Segundo Valor
f 0
-71, 19 27094 12709 20709 8.5 8.5
f\F 0.5
|
} 270.594 1270.59 2070.59 8.5 1.25
-{f\F , f\F
Luego:
f\F f
f\F 1
w
9
- 7f , f 9 -7f\F , f\F
x
2
8.500 1.250
70.59 3.43750
2
c) Tercer Valor
f 0.5
f 3.43750
-71, 19 270.594 1270.59 2070.59 8.5 1.250
f\F 1.0
|
-{f\F , f\F
} 271.094 1271.09 2071.09 8.5 1.500
Luego:
f\F f
w
9
- 7f , f 9 -7f\F , f\F
x
2
f\F 3.4375
1.250 1.500
70.59 3.3750
2
d) Cuarto Valor
f 1.0
f 3.3750
-71, 19 271.094 1271.09 2071.09 8.5 1.500
f\F 1.5
|
-{f\F , f\F
} 271.594 1271.59 2071.59 8.5 1.250
Luego:
f\F f
w
9
- 7f , f 9 -7f\F , f\F
x
2
f\F 3.3750
1.500 1.250
70.59 2.0000
2
e) Quinto Valor
f 1.5
f 2.0000
Ing. Hctor G. Bolaos Sosa
Pag .16
Ecuaciones diferenciales
-71, 19 271.594 1271.59 2071.59 8.5 1.250
f\F 2.0
|
} 272.094 1272.09 2072.09 8.5 0.500
-{f\F , f\F
w
9
- 7f , f 9 -7f\F , f\F
f
x
2
Luego:
f\F
f\F 2.0000
x
0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
1.250 0.500
70.59 1.8125
2
Yverdadero
1.0000
3.2188
3.0000
2.2188
2.0000
2.7188
4.0000
4.7188
3.0000
Tabla resumen
YEULER
1.0000
3.4375
3.3750
2.0000
1.8125
%Error Global
6.80
12.5
9.86
9.38
Ejemplo N02
Resolver el ejercicio anterior mediante el mtodo de Heun para tamaos de paso
de h=0.25 y para h=0.10, graficar
Ejemplo N03
Resolver las siguientes ecuaciones diferenciales, usando el mtodo de Heun, con
tamao de paso h=0.5
e)
f)
g)
h)
p
H
p
H
p
H
71 9
qr
p
; x=0; y= 1
v=0; t=0
;x=0; y=2
; x=0; y=4
;[\A ;[ g7>[ ;[ 9^
Pag .17
Ecuaciones diferenciales
Los mtodos de Runge-Kutta, logran la exactitud del procedimiento de una serie de
Taylor sin requerir el clculo de las derivadas superiores.
Se puede escribir:
;[\A ;[ 7>[ , ;[ , ^9^ (1)
Donde:
7>[ , ;[ , ^9^: g~b[ [bce 7B9
:Es la pendiente representativa del intervalo
La funcin incremento se puede escribir como:
A A B B @ @
A A B B @ @
Para segundo orden se escribir:
;[\A ;[ 7A A B B 9^ (4)
&F -7f , f 9
& -7 f kF x, f %FF &F x9
Los valores de las constantes: a1, a2, p1 y q11, son: (deduccin de la serie
de Taylor)
F 1
1
F k
2
1
%FF
2
Como existen tres ecuaciones con 4 incgnitas, debemos suponer el valor
de una de ellas para determinar el valor de las otras tres. Supongamos que
especificamos un valor para a2, entonces se puede resolver las ecuaciones
especificadas para las encontrar las constantes:
F
1
Pag .18
Ecuaciones diferenciales
1
2
Debido a que podemos elegir un nmero infinito de valores para a2, hay un
nmero interminable de mtodos de RK de segundo orden.
Pero se tiene las tres versiones ms usadas y preferidas:
Mtodo de Heun con un solo corrector (a2=1/2)
Mtodo de punto medio (a2=1)
Mtodo de Ralston (a2=2/3)
kF %FF
Suponemos que: ;
Entonces:
F 1
1 A
F 1
2 B
kF %FF
1
1
A
1
2 2 1
A
A
;[\A ;[ A B ^
B
B
&F -7f , f 9
& -7 f kF x, f %FF &F x9 -7 f x, f &F x9
f x
Donde:
k1 : pendiente al inicio del intervalo
k2 : pendiente al final del intervalo
b) Mtodo del Punto Medio (B A)
Suponemos 1
Entonces:
F
F
1
kF %FF
1 10
27
1
1
1
9
2719
2
;[\A ;[ 7<A B 9^ ;[ B ^
&F -7f , f 9
F
F
& -7 f kF x, f %FF &F x9 - f x, f &F x
B
c) Mtodo de Ralston (B )
Suponemos
4
F
f x
Pag .19
Ecuaciones diferenciales
Entonces:
F 1
F
2 1
1
3 3
kF %FF
1
1
3
27 9 2729 4
3
A
B
;[\A ;[ A B ^
@
@
&F -7f , f 9
4
4
& -7 f kF x, f %FF &F x9& - f x, f &F x
2
4
2
f x
Ejemplo N 01
Usar los mtodos de RK de segundo orden para solucionar la siguiente ecuacin
diferencial:
dy
= 2 x 3 + 12 x 2 20 x + 8.5
dx
Para el rango de: 0<x<4
Condicin inicial: y(0)=1
Tamao del paso: h= 0.5
a) Solucin por Mtodo de Heun un solo corrector
&F -7f , f 9
F
& -7 f x, f &F x9
Incrementos: f 7x9
A
A
;[\A ;[ A B ^
B
B
a) Primer valor:
f 0
f 1
b) Segundo valor
&F -7f , f 9
&F 27094 12709 20709 8.5 8.5
& -7 f x, f &F x9
& 270.594 1270.59 2070.59 8.5 1.25
Luego:
1
1
f\F f &1 &2 x
2
2
1
1
f\F 1 78.59 71.259 0.5 3.43750
2
2
c) Tercer valor
&F -7f , f 9
Ing. Hctor G. Bolaos Sosa
Pag .20
Ecuaciones diferenciales
&F 270.594 1270.59 2070.59 8.5 1.25
& -7 f x, f &F x9
& 27194 12719 20719 8.5 1.50
Luego:
1
1
f\F f &1 &2 x
2
2
1
1
f\F 3.4375 71.259 7 1.509 0.5 3.3750
2
2
X=0.5
X=1.0
>> fx=inline('-2*x^3+12*x^2>> x=x+h
20*x+8.5')
x = 0.5000
>> h=0.5;x=0;y=1;
>> k1=feval(fx,x)
k1 = 1.2500
>> k1=feval(fx,x)
k1 = 8.5000
>> k2=feval(fx,x+h)
>> k2=feval(fx,x+h)
k2 = -1.5000
k2 = 1.2500
>> y=y+(0.5*k1+0.5*k2)*h
>> y=y+(0.5*k1+0.5*k2)*h
y = 3.3750
y = 3.4375
X=1.5
X=2.0
>> x=x+h
>> x=x+h
x = 1.5000
x= 1
>> k1=feval(fx,x)
>> k1=feval(fx,x)
k1 = -1.5000
k1 = -1.2500
>> k2=feval(fx,x+h)
>> k2=feval(fx,x+h)
k2 = -1.2500
k2 = 0.5000
>> y=y+(0.5*k1+0.5*k2)*h
>> y=y+(0.5*k1+0.5*k2)*h
y = 2.6875
y = 2.5000
X=2.5
X=3.0
>> x=x+h
>> x=x+h
x = 2.5000
x= 2
>> k1=feval(fx,x)
>> k1=feval(fx,x)
k1 = 0.5000
k1 = 2.2500
>> k2=feval(fx,x+h)
>> k2=feval(fx,x+h)
k2 = 2.5000
k2 = 2.2500
>> y=y+(0.5*k1+0.5*k2)*h
>> y=y+(0.5*k1+0.5*k2)*h
y = 3.1875
y = 4.3750
X=3.5
X=4.0
>> x=x+h
>> x=x+h
x = 3.5000
x= 3
>> k1=feval(fx,x)
>> k1=feval(fx,x)
k1 = 2.5000
k1 = -0.2500
>> k2=feval(fx,x+h)
>> k2=feval(fx,x+h)
k2 = -0.2500
k2 = -7.5000
>> y=y+(0.5*k1+0.5*k2)*h
>> y=y+(0.5*k1+0.5*k2)*h
y = 4.9375
y= 3
b) Mtodo Punto Medio
&F -7f , f 9
Ing. Hctor G. Bolaos Sosa
Pag .21
Ecuaciones diferenciales
F
& - f x, f &F x
;[\A ;[ B ^
Incrementos: f 7x9
a) Primer valor
f 0
f 1
b) Segundo valor
&F -7f , f 9
&F 27094 12709 20709 8.5 8.5
F
F
& - f x, f &F x
F
F
;[\A ;[ B ^
;[\A A ?. BACo=7<. =9 @. A<@o=
c) Tercer valor
&F -7f , f 9
&F 270.594 1270.59 2070.59 8.5 1.25
F
F
F
F
f 7x9 0.5 70.59 0.75
& - f x, f &F x
;[\A ;[ B ^
;[\A @. A<@o= 7 <. =@o97<. =9 B. CAB=<
d) Cuarto valor
&F -7f , f 9
&F 27194 12719 20719 8.5 1.50
F
F
F
F
& - f x, f &F x
f 7x9 1.0 70.59 1.25
;[\A ;[ B ^
;[\A B. CAB=< 7 A. =B=97<. =9 A. C?@o=
X=0.5
>> fx=inline('-2*x^3+12*x^220*x+8.5')
>> h=0.5;x=0;y=1;
>> k1=feval(fx,x)
k1 = 8.5000
>> k2=feval(fx,x+0.5*h)
k2 = 4.2188
>> y=y+k2*h
y = 3.1094
X=1.5
>> x=x+h
x= 1
Ing. Hctor G. Bolaos Sosa
X=1.0
>> x=x+h
x = 0.5000
>> k1=feval(fx,x)
k1 = 1.2500
>> k2=feval(fx,x+0.5*h)
k2 = -0.5938
>> y=y+k2*h
y = 2.8125
X=2.0
>> x=x+h
x = 1.5000
Pag .22
Ecuaciones diferenciales
>> k1=feval(fx,x)
k1 = -1.5000
>> k2=feval(fx,x+0.5*h)
k2 = -1.6563
>> y=y+k2*h
y = 1.9844
X=2.5
>> x=x+h
x= 2
>> k1=feval(fx,x)
k1 = 0.5000
>> k2=feval(fx,x+0.5*h)
k2 = 1.4688
>> y=y+k2*h
y = 2.4844
X=3.5
>> x=x+h
x= 3
>> k1=feval(fx,x)
k1 = 2.5000
>> k2=feval(fx,x+0.5*h)
k2 = 1.5938
>> y=y+k2*h
y = 4.6094
>> k1=feval(fx,x)
k1 = -1.2500
>> k2=feval(fx,x+0.5*h)
k2 = -0.4688
>> y=y+k2*h
y = 1.7500
X=3.0
>> x=x+h
x = 2.5000
>> k1=feval(fx,x)
k1 = 2.2500
>> k2=feval(fx,x+0.5*h)
k2 = 2.6563
>> y=y+k2*h
y = 3.8125
X=4.0
>> x=x+h
x = 3.5000
>> k1=feval(fx,x)
k1 = -0.2500
>> k2=feval(fx,x+0.5*h)
k2 = -3.2188
>> y=y+k2*h
y= 3
c) Mtodo Ralston
&F -7f , f 9
4
4
& - f x, f &F x
2
2
A
B
;[\A ;[ A B ^
@
@
Incrementos: f 7x9
2
a) Primer valor
f 0
f 1
b) Segundo valor
&F -7f , f 9
&F 27094 12709 20709 8.5 8.5
4
4
4
& - f x, f &F x
Incrementos: 0 70.59 0.375
2
c) Tercer valor
Ing. Hctor G. Bolaos Sosa
Pag .23
Ecuaciones diferenciales
&F -7f , f 9
&F 270.5094 1270.59 2070.59 8.5 1.25
4
4
4
& - f x, f &F x
Incrementos: 0.5 70.59 0.875
2
Pag .24
Ecuaciones diferenciales
x= 3
>> k1=feval(fx,x)
k1 = 2.5000
>> k2=feval(fx,x+(3/4)*h)
k2 = 0.8008
>> y=y+((1/3)*k1+(2/3)*k2)*h
y = 4.8008
X
0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Yverdadero
1.0000
3.2188
3.0000
2.2188
2.0000
2.7188
4.0000
4.7188
3.0000
>> tabla=[vv,VH,VPM,VR]
tabla =
1.0000 1.0000 1.0000
3.2188 3.4375 3.1094
3.0000 3.3750 2.8125
2.2188 2.6875 1.9844
2.0000 2.5000 1.7500
2.7188 3.1875 2.4844
4.0000 4.3750 3.8125
4.7188 4.9375 4.6094
3.0000 3.0000 3.0000
x = 3.5000
>> k1=feval(fx,x)
k1 = -0.2500
>> k2=feval(fx,x+(3/4)*h)
k2 = -5.1836
>> y=y+((1/3)*k1+(2/3)*k2)*h
y = 3.0313
Tabla resumen
YHeun
1.0000
3.4375
3.3750
2.6875
2.5000
3.1875
4.3750
4.9375
3.0000
YPunto Medio
1.0000
3.1094
2.8125
1.9844
1.7500
2.4844
3.8125
4.6094
3.0000
YRalston
1.0000
3.2773
3.1016
2.3477
2.1406
2.8555
4.1172
4.8008
3.0313
1.0000
3.2773
3.1016
2.3477
2.1406
2.8555
4.1172
4.8008
3.0313
>> plot(x,vv,x,VH,x,VPM,x,VR),grid
X
0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Heun
0.00
6.80
12.50
21.10
25.00
17.2
9.40
4.60
0.00
Tabla Errores
Punto Medio
0.00
3.40
6.30
10.6
12.50
8.60
4.70
2.30
0.00
Ralston
0.00
1.82
3.40
5.80
7.00
5.00
2.90
1.70
1.00
Pag .25
Ecuaciones diferenciales
COMPARACION METODOS DE RK DE SEGUNDO ORDEN
5
4.5
4
3.5
3
Analitico
Heun
Punto Medio
Ralston
2.5
2
1.5
1
0
0.5
1.5
2.5
3.5
Pag .26
Ecuaciones diferenciales
4.3.2. Mtodos de Runge-Kuta de tercer orden
Para n=3; se hace un desarrollo similar al mtodo de segundo orden.
El resultado de este desarrollo es de seis ecuaciones con ocho incgnitas.
Por lo tanto se debe especificar con antelacin los valores de dos
incgnitas.
Una versin comn que resulta es:
A
[\A [ 7A ?B @ 9^
Donde:
&F -7f , f 9
1
1
& - f x, f &F x
2
2
&4 -7f x, f &F x 2& x9
4.3.3. Mtodos de Runge-Kuta de cuarto orden
Es el mtodo ms popular, cuya ecuacin numrica es:
A
[\A [ 7A BB B@ ? 9^
Donde:
&F -7f , f 9
F
F
& - f x, f &F x
F
- f x, f
F
& x
&4
&2 -7f x, f &4 x9
f x
F
x
f
f x
A
[\A [ 7A BB B@ ? 9
Donde:
&F x. -7f , f 9
F
F
& x. - f x, f &F
F
F
F
F
F
F
f x; f &F
f x; f &
f x; f &4
Ejemplo N 01
Usar los mtodos de RK de cuarto orden para solucionar la siguiente
ecuacin diferencial:
dy
= 2 x 3 + 12 x 2 20 x + 8.5
dx
Para el rango de: 0<x<4
Condicin inicial: y(0)=1
Tamao del paso: h= 0.5
Solucin
X=0.5
Ing. Hctor G. Bolaos Sosa
X=1.0
Pag .27
Ecuaciones diferenciales
>>
fx=inline('-2*x^3+12*x^220*x+8.5')
>> x=0;y=1;h=0.5;
>> k1=feval(fx,x)
k1 = 8.5000
>> k2=feval(fx,x+0.5*h)
k2 = 4.2188
>> k3=feval(fx,x+0.5*h)
k3 = 4.2188
>> k4=feval(fx,x+h)
k4 = 1.2500
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y = 3.2188
X=1.5
>> x=x+h
x= 1
>> k1=feval(fx,x)
k1 = -1.5000
>> k2=feval(fx,x+0.5*h)
k2 = -1.6563
>> k3=feval(fx,x+0.5*h)
k3 = -1.6563
>> k4=feval(fx,x+h)
k4 = -1.2500
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y = 2.2188
X=2.5
>> x=x+h
x= 2
>> k1=feval(fx,x)
k1 = 0.5000
>> k2=feval(fx,x+0.5*h)
k2 = 1.4688
>> k3=feval(fx,x+0.5*h)
k3 = 1.4688
>> k4=feval(fx,x+h)
k4 = 2.2500
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y = 2.7188
X=3.5
>> x=x+h
x= 3
>> k1=feval(fx,x)
k1 = 2.5000
>> k2=feval(fx,x+0.5*h)
k2 = 1.5938
>> k3=feval(fx,x+0.5*h)
k3 = 1.5938
>> k4=feval(fx,x+h)
k4 = -0.2500
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
Ing. Hctor G. Bolaos Sosa
>> x=x+h
x = 0.5000
>> k1=feval(fx,x)
k1 = 1.2500
>> k2=feval(fx,x+0.5*h)
k2 = -0.5938
>> k3=feval(fx,x+0.5*h)
k3 = -0.5938
>> k4=feval(fx,x+h)
k4 = -1.5000
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y= 3
X=2.0
>> x=x+h
x = 1.5000
>> k1=feval(fx,x)
k1 = -1.2500
>> k2=feval(fx,x+0.5*h)
k2 = -0.4688
>> k3=feval(fx,x+0.5*h)
k3 = -0.4688
>> k4=feval(fx,x+h)
k4 = 0.5000
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y= 2
X=3.0
>> x=x+h
x = 2.5000
>> k1=feval(fx,x)
k1 = 2.2500
>> k2=feval(fx,x+0.5*h)
k2 = 2.6563
>> k3=feval(fx,x+0.5*h)
k3 = 2.6563
>> k4=feval(fx,x+h)
k4 = 2.5000
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y= 4
>> x=x+h
x = 3.5000
>> k1=feval(fx,x)
k1 = -0.2500
>> k2=feval(fx,x+0.5*h)
k2 = -3.2188
>> k3=feval(fx,x+0.5*h)
k3 = -3.2188
>> k4=feval(fx,x+h)
k4 = -7.5000
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y= 3
Pag .28
Ecuaciones diferenciales
y=
4.7188
X
0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Tabla resumen
Yverdadero
1.0000
3.2188
3.0000
2.2188
2.0000
2.7188
4.0000
4.7188
3.0000
RK4
1.0000
3.2188
3.0000
2.2188
2.0000
2.7188
4.0000
4.7188
3.0000
Ejemplo N 02
Usar los mtodos de RK de cuarto orden para solucionar la siguiente
ecuacin diferencial:
dy
= 2xy
dx
Para el rango de: 0<x<0.5
Condicin inicial: y(0)=1
Tamao del paso: h= 0.1
Solucin
X=0
Y=1
X=0.1
>> fx=inline('2*x*y')
>> x=0;y=1;h=0.1;
>> k1=feval(fx,x,y)*h
k1 = 0
>> k2=feval(fx,x+0.5*h,y+0.5*k1)*h
k2 = 0.010000000000000
>> k3=feval(fx,x+0.5*h,y+0.5*k2)*h
k3 = 0.010050000000000
>> k4=feval(fx,x+h,y+k3)*h
k4 = 0.020201000000000
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)
y = 1.010050166666667
X=0.3
>> x=x+h
x = 0.200000000000000
>> k1=feval(fx,x,y)*h
k1 = 0.041632430790757
>> k2=feval(fx,x+0.5*h,y+0.5*k1)*h
k2 = 0.053081349258215
>> k3=feval(fx,x+0.5*h,y+0.5*k2)*h
Ing. Hctor G. Bolaos Sosa
X=0.2
>> x=x+h
x = 0.100000000000000
>> k1=feval(fx,x,y)*h
k1 = 0.020201003333333
>> k2=feval(fx,x+0.5*h,y+0.5*k1)*h
k2 = 0.030604520050000
>> k3=feval(fx,x+0.5*h,y+0.5*k2)*h
k3 = 0.030760572800750
>> k4=feval(fx,x+h,y+k3)*h
k4 = 0.041632429578697
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)
y = 1.040810769768922
X=0.4
>> x=x+h
x = 0.300000000000000
>> k1=feval(fx,x,y)*h
k1 = 0.065650455928798
>> k2=feval(fx,x+0.5*h,y+0.5*k1)*h
k2 = 0.078889964541106
>> k3=feval(fx,x+0.5*h,y+0.5*k2)*h
Pag .29
Ecuaciones diferenciales
k3 = 0.053367572219901
>> k4=feval(fx,x+h,y+k3)*h
k4 = 0.065650700519329
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)
y = 1.094174265479975
X=0.5
>> x=x+h
x=
0.400000000000000
>> k1=feval(fx,x,y)*h
k1 = 0.093880865088023
>> k2=feval(fx,x+0.5*h,y+0.5*k1)*h
k2 = 0.109840612152987
>> k3=feval(fx,x+0.5*h,y+0.5*k2)*h
k3 = 0.110558800770910
>> k4=feval(fx,x+h,y+k3)*h
k4 = 0.128406961437120
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)
y = 1.284025255662445
X
0.0
0.1
0.2
0.3
0.4
0.5
Tabla resumen
Yverdadero
1.00000
1.01005
1.04081
1.09417
1.17351
1.28402
k3 = 0.079353347342537
>> k4=feval(fx,x+h,y+k3)*h
k4 = 0.093882209025801
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)
y = 1.173510813600289
X=0.6
x=
0.00000
0.10000
0.20000
0.30000
0.40000
0.50000
>> fx=exp(x.^2)
fx =
1.00000
1.01005
1.04081
1.09417
1.17351
1.28402
RK4
1.00000
1.01005
1.04081
1.09417
1.17351
1.28402
Pag .30
Ecuaciones diferenciales
Matlab posee funciones para calcular ecuaciones diferenciales ordinarias.
Se tienen las siguientes funciones:
La funcin ode23, Utiliza simultneamente los mtodos de Runge-Kutta de
segundo y tercer orden.
La funcin ode45, utiliza simultneamente los mtodos de Runge-Kutta de
cuarto y quinto orden.
Sintaxis:
[T,Y] = ode23(odefun,tspan,y0)
Donde:
T,Y : vectores de salida
odefun :funcin que contiene la ecuacin diferencial
tspan: vector que contiene el intervalo de solucin
y0: vector de la condicin inicial.
Ejemplo N 01
Usar los mtodos de RK de segundo y cuarto orden para solucionar la
siguiente ecuacin diferencial; deber incluir un grfico comparativo.
dy
= 2 x 3 + 12 x 2 20 x + 8.5
dx
Para el rango de: 0<x<4
Condicin inicial: y(0)=1
Tamao del paso: h= 0.5
Solucin
function fu=f(x,y)
fu=-2*x.^3+12*x.^2-20*x+8.5;
end
>> span=[0:0.5:4];
>> [X FX2]=ode23('f',span,1)
X=
0
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
FX2 =
1.0000
3.2188
3.0002
2.2190
2.0006
Ing. Hctor G. Bolaos Sosa
>> span=[0:0.5:4];
>> [X FX4]=ode45('f',span,1)
X=
0
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
FX4 =
1.0000
3.2187
3.0000
2.2187
2.0000
Pag .31
Ecuaciones diferenciales
2.7197
4.0012
4.7202
3.0015
2.7187
4.0000
4.7187
3.0000
GRAFICA DE LOS METODOS ode23 y ode 45
5
4.5
4
3.5
3
2.5
2
1.5
1
0
0.5
1.5
2
X
2.5
3.5
Ejemplo N 02
Usar los mtodos de RK de segundo y cuarto orden para solucionar la
siguiente ecuacin diferencial
dy
= 2xy
dx
Para el rango de: 0<x<0.5
Condicin inicial: y(0)=1
Tamao del paso: h= 0.1
Solucin
function fu=f(x,y)
fu=2*x*y;
end
>> span=[0:0.1:0.5];
>> [X FX4]=ode23('f',sp,1)
X=
0
0.100000000000000
0.200000000000000
0.300000000000000
0.400000000000000
0.500000000000000
FX4 =
1.000000000000000
1.010050148662280
1.040810635422896
1.094173792507398
1.173509574758292
1.284022471288644
Ing. Hctor G. Bolaos Sosa
>> sp=[0:0.1:0.5]
>> [X FX4]=ode45('f',sp,1)
X=
0
0.100000000000000
0.200000000000000
0.300000000000000
0.400000000000000
0.500000000000000
FX4 =
1.000000000000000
1.010050167084014
1.040810774189806
1.094174283696188
1.173510870971191
1.284025416651541
Pag .32
Ecuaciones diferenciales
Pag .33
Ecuaciones diferenciales
function E=euler(f,a,b,ya,M)
%f es la funcin
%a,b lmites
%ya condicin inicial
%M intervalos
h=(b-a)/M;
T=zeros(1,M+1);
Y=zeros(1,M+1);
T=a:h:b;
Y(1)=ya;
for j=1:M
Y(j+1)=Y(j)+h*feval(f,T(j),Y(j));
end
E=[T' Y'];
% grafica de la ecuacin analtica
x=[a:h/20:b]';
y=-.5*x.^4+4*x.^3-10*x.^2+8.5*x+1;
plot(T,Y,x,y),grid
function fu=f(x,y)
fu=-2*x.^3+12*x.^220*x+8.5;
>> euler('f',0,4,1,8)
ans =
0 1.0000
0.5000 5.2500
1.0000 5.8750
1.5000 5.1250
2.0000 4.5000
2.5000 4.7500
3.0000 5.8750
3.5000 7.1250
4.0000 7.0000
s ol. Eule r
s ol. a na litica
0.5
1.5
2
X
2.5
3.5
Ejemplo N2
Resolver el ejercicio anterior para tamaos de paso de h=0.25 y para h=0.10
>> euler('f',0,4,1,16)
>> euler('f',0,4,1,40)
ans =
ans =
0 1.0000
0.2500 3.1250
Ing. Hctor G. Bolaos Sosa
0 1.0000
0.1000 1.8500
Pag .34
Ecuaciones diferenciales
0.5000
0.7500
3.7500
4.0000
4.1797
4.4922
0.2000
0.3000
3.9000
4.0000
5.8047
5.0000
2.5118
3.0082
4.3618
3.8000
Eule r h=0 .5
5
Eule r h=0 .2 5
Eule r h=0 .1 0
s ol. a na litica
0.5
1.5
2
X
2.5
3.5
Ejercicio N 3
Resolver mediante el mtodo de Euler la siguiente ecuacin diferencial
dy (t y )
=
dx
2
function fu=f(t,y)
fu=(t-y)/2
Pag .35
Ecuaciones diferenciales
2
1.8
1.6
1.4
h=0 .2 5
1.2
h=0 .5
Ana ltica
h=1
0.8
0.6
0.4
0.5
1.5
X
2.5
Ejercicio N4
Resolver mediante el mtodo de Euler la siguiente ecuacin diferencial
Resolver la ecuacin diferencial para la cada del paracadas
dv
c
=g v
dt
m
function E=euler(f,a,b,ya,M)
h=(b-a)/M;
T=zeros(1,M+1);
Y=zeros(1,M+1);
T=a:h:b;
Y(1)=ya;
for j=1:M
Y(j+1)=Y(j)+h*feval(f,T(j),Y(j));
end
E=[T' Y'];
% grafica de la ecuacin analtica
t=[a:h/20:b]';
g=9.8;m=68.1;c=12.5;
v=(g*m)/c*(1-exp(-(c/m)*t));
plot(T,Y,t,v),gris
>> euler('f',0,20,0,5)
ans =
0
0
4.0000 39.2000
8.0000 49.6188
12.0000 52.3880
16.0000 53.1240
20.0000 53.3196
function fu=f(t,v)
g=9.8;c=12.5;m=68.1;
fu=g-(c/m)*v;
>> euler('f',0,20,0,10)
ans =
0
0
2.0000 19.6000
4.0000 32.0047
16.0000 52.0160
18.0000 52.5206
20.0000 52.8399
>> euler('f',0,20,0,20)
ans =
0
0
1.0000 9.8000
2.0000 17.8012
19.0000 52.2578
20.0000 52.4657
Pag .36
Ecuaciones diferenciales
60
50
h=4
h=1
Analitica
40
h=2
30
20
10
10
X
12
14
16
18
20
1. METODO DE HEUN
Ejercicio N 1
Resolver mediante el mtodo de Heun la siguiente ecuacin diferencial
dy
= 2 x 3 + 12 x 2 20 x + 8.5
dx
function fu=f(x,y)
fu=-2*x.^3+12*x.^2-20*x+8.5;
Pag .37
Ecuaciones diferenciales
% Tamao de paso
x(i+1)=a+h*i;
% Ecuacin Corrector
y(i+1)=y(i)+0.5*h*(feval(f,x(i),y(i))+feval(f,x(i+1),p(i+1)));
fprintf('%10.6f%10.6f%10.6f\n',x(i+1),p(i+1),y(i+1));
end
fprintf('==============================\n');
%grafica analitica
X=[a:h/20:b];
y1=-0.5*X.^4+4*X.^3-10*X.^2+8.5*X+1;
plot(x,y,X,y1),gris
Siendo los resultados
5
4.5
4
3.5
>> heun('f',0,4,1,8)
x
p
y
=========================
0.000000
1.000000
0.500000 5.250000 3.437500
1.000000 4.062500 3.375000
1.500000 2.625000 2.687500
2.000000 2.062500 2.500000
2.500000 2.750000 3.187500
3.000000 4.312500 4.375000
3.500000 5.625000 4.937500
4.000000 4.812500 3.000000
=========================
SOL . HEUN
3
2.5
2
SOL. ANALITICA
1.5
1
0.5
1.5
2
X
2.5
3.5
Pag .38
Ecuaciones diferenciales
Metodo de Heun
5
4.5
4
h=0.5
3.5
3
2.5
2
h=0.25
Sol. Analitica
1.5
1
0.5
1.5
2
x
2.5
3.5
Pag .39
Ecuaciones diferenciales
Ejercicio 1 resuelto. Calcular en el intervalo [1, ] la solucin de
(PVI)
(
y
0
= 2t+y,
y(1) = 0.5.
>> f=inline(2*t+y,t,y);
>> [T,Y]=ode45(f,[1,pi],0.5);
La grfica se puede dibujar con
>> plot(T,Y)
En este ejemplo puede observarse que los mtodos ode** son de paso variable. Para
observar esto, consulta la ayuda de matlab sobre la funcin diff y teclea
>> plot(T(2:length(T)),diff(T))
Otra forma de definir la funcin asociada es usar un m-archivo llamado mifun.m de la
forma:
function [dydt]=mifun(t,y)
dydt=2*t+y;
Despus se ejecuta:
>> [T,Y]=ode45(@mifun,[1,pi],0.5);
Con el smbolo @, MATLAB entiende que es una funcin de nueva creacin.
Hay otra forma alternativa de llamar a una funcin con ode45:
>> [T,Y]=ode45(mifun,[1,pi],0.5);
Para usar esta alternativa, la funcinmifun debe estar grabada en otro fichero llamado
mifun.m
Pag .40
Ecuaciones diferenciales
>> f=inline('-2*x.^3+12*x.^2-20*x+8.5','x','y')
f=
Inline function:
f(x,y) = -2*x.^3+12*x.^2-20*x+8.5
>> [X,Y]=ode23(f,[0:0.5:4],1)
X=
0
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
Y=
1.0000
3.2188
3.0002
2.2190
2.0006
2.7197
4.0012
4.7202
3.0015
>> tabla=[X Y]
tabla =
0 1.0000
0.5000 3.2188
1.0000 3.0002
1.5000 2.2190
2.0000 2.0006
2.5000 2.7197
3.0000 4.0012
3.5000 4.7202
4.0000 3.0015
Valor Verdadero:
1.0000
3.2188
3.0000
2.2188
2.0000
2.7188
4.0000
4.7188
3.0000
Ing. Hctor G. Bolaos Sosa
Pag .41
Ecuaciones diferenciales
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
1.5
2.5
3.5
Pag .42