11/15
>> diff(f,y)
ans =
3*x^2
INTEGRACION
Matlab puede integrar ecuaciones usando la funcin int
>> pretty(int(y))
4
1/4 x
Ejercicio N 2
Integrar las siguientes funciones entre los lmites 0 y 3
3
0
x3
3
0
x2
Ejercicio N 3
Resolver la siguiente integral
y 2 x
12 x 2 20 x 8.5 dx
3
-1/2*x^4+4*x^3-10*x^2+17/2*x
Ejercicio N 4
Determinar la integral doble de la siguiente funcin
x
2
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:
+ + =0
Las ecuaciones diferenciales se clasifican tambin de acuerdo a su orden.
Primer orden: la derivada ms alta es una primera derivada
Segundo orden: puede incluir la segunda derivada.
gm t
c
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
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 + 4 10 + 8.5 + 1 (9)
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 +4 10 + 8.5 + 1
4.5
3.5
f(X)
2.5
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4
X
b) Ecuacin diferencial
= 2 + 12 20 + 8.5 (10)
= (2 + 12 20 + 8.5) (11)
Aplicando las reglas de integracin, para cada trmino; se obtiene la ecuacin
solucin:
Esta ecuacin (12) es similar a la ecuacin (9), con la excepcin de que se ha perdido
el valor de la constante de 1 y se gano el valor de C.
Este trmino C llamado constante de integracin; por lo tanto la ecuacin (12) tiene
infinitas soluciones para el intervalo -<C<.
15
10
5
C=+3
0 C=+1
dy
C=0
-5
C=-3
-10
-15
0 0.5 1 1.5 2 2.5 3 3.5 4
dx
= 0.5 +4 10 + 8.5 +
= . + + . + ( )
Donde esta ecuacin (13), resulta ser idntica que la funcin inicial (9)
Usando Matlab
>> fx=inline('-.5*x.^4+4*x.^3- 5
10*x.^2+8.5*x+1
>> fplot(fx,[0 4]),grid 4.5
3.5
y
2.5
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4
x
>> syms x 10
>> y=-.5*x.^4+4*x.^3- 8
10*x.^2+8.5*x+1 6
>> dy=diff(y) 4
dy = 2
- 2*x^3 + 12*x^2 - 20*x +
dy
0
17/2 -2
-4
Para efectuar el grfico de la
-6
diferenciacin:
-8
0 0.5 1 1.5 2 2.5 3 3.5 4
dx
>> y1=inline('- 2*x^3 +
12*x^2 - 20*x + 17/2')
>> fplot(y1,[0,4]),grid
10
6
EC. ORIGINAL
4
2
Y
-2
E C . D I F E R E N C I AL
-4
-6
-8
0 0.5 1 1.5 2 2.5 3 3.5 4
X
Sintaxis:
r = dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')
eq1: ecuacin 1
cond1: condicin 1
v: derivar respecto a la variable independiente
Ejemplo N 02.-
Sea la siguiente ecuacin diferencial:
= 2 + 12 20 + 8.5
a) Resolver analticamente
b) Resolver con la condicin inicial x=0, y=1:
Solucin:
= 0.5 +4 20 + 8.5 +
>>dy=dsolve('Dy=-2*x^3+12*x^2-20*x+8.5','x') >>dy=dsolve('Dy=-2*x^3+12*x^2-
dy = 20*x+8.5','y(0)=1','x')
- x^4/2 + 4*x^3 - 10*x^2 + (17*x)/2 + C2 dy =
- x^4/2 + 4*x^3 - 10*x^2 + (17*x)/2 + 1
Ejemplo N 03.-
1
= (1 + )
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 04-
Sea la siguiente ecuacin diferencial:
a) Resolver analticamente
b) Resolver con la condicin inicial v=0; t=0
Solucin
gm t
c
v(t ) 1 e m
c
>> r=dsolve('Dv=g-c/m*v','t')
r= >> r=dsolve('Dv=g-c/m*v','v(0)=0','t')
-(C/exp((c*t)/m) - g*m)/c r=
(g*m - (g*m)/exp((c*t)/m))/c
Ejemplo N 05.-
Sea la siguiente ecuacin diferencial:
Solucin
= >> dsolve('Dy=x/y','x')
ans =
= +
2 2
= +2 (x^2+C1)^(1/2)
/
= ( + 2 ) -(x^2+C1)^(1/2)
Ejemplo N 06.-
Sea la siguiente ecuacin diferencial:
=
Condicin inicial: x=0; y=2
Solucin
Solucin general Solucin particular:
>> S=dsolve('Dy=x-y','x') x=0; y=2;
S=
x + C3/exp(x) - 1 >> S=dsolve('Dy=x-y','y(0)=2','x')
S=
x + 3/exp(x) - 1
Ejemplo N 07.-
Sea la siguiente ecuacin diferencial:
=
Condicin inicial: x=0; y=4
Solucin
Solucin General: Solucin Particular:
>> S=dsolve('Dy=exp(x)/y','x') >> S=dsolve('Dy=exp(x)/y','y(0)=4','x')
S= S=
2^(1/2)*(C9 + exp(x))^(1/2) 2^(1/2)*(exp(x) + 7)^(1/2)
-2^(1/2)*(C9 + exp(x))^(1/2)
4. METODOS DE RUNGE-KUTTA
Se tratar de la resolucin de ecuaciones diferenciales de la forma
= ( , )
Mtodo de forma general:
= + ( )
Todos los mtodos de un paso se pueden expresar en esta forma. Permiten el clculo
de dada la ecuacin diferencial
= + ( ) ( )
Error local:
Se refiere al error incurrido en un solo paso. Se calcula con una expansin de la
serie de Taylor
= + + + + + +
2! 3! !
=
Rn : Trmino remanente, definido por:
(
) )(
=
( + 1)!
( ): Est en cualquier lugar en el intervalo a
( , )
= + ( )
2!
: Error de truncamiento local verdadero
El resultado es generalmente representado por:
( , )
=
2!
tambin:
= ( )
: Error de truncamiento local aproximado
Para el ejemplo:
= 2 + 12 20 + 8.5
( , )
= + ( )
2!
( , ) ( , ) ( , )
= + +
2! 3! 4!
( ) = 6 + 24 20
( ) = 12 + 24
( ) = 12
2.03125
% = 100 = 63.11
3.21875
Error Global
Es la discrepancia total debido los pasos anteriores as como a los actuales.
Ejemplo N 01.-
Resolver mediante el mtodo de Euler 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
a) Solucin analtica
= (2 + 12 20 + 8.5)
= 0.5 +4 10 + 8.5 + Solucin General
>> x=[0:0.5:4]; 5
>> y=-0.5*x.^4+4*x.^3-
10*x.^2+8.5*x+1; 4.5
>> tabla=[x;y]' 4
tabla =
3.5
0.0000 1.0000
0.5000 3.2188 3
y
1.0000 3.0000
2.5
1.5000 2.2188
2.0000 2.0000 2
2.5000 2.7188
1.5
3.0000 4.0000
3.5000 4.7188 1
0 0.5 1 1.5 2 2.5 3 3.5 4
4.0000 3.0000 x
b) Solucin Numrica
= + ( )
Donde
h=0.5;
xi = 0;Valor inicial
yi = 1
Para el segundo valor:
x1=0; y1=1 >> y=inline('-2*x.^3+12*x.^2-20*x+8.5');
f(x1,y1)= >> x1=0;y1=1;h=0.5;
( 1, 1) = 2(0) + 12(0) 20(0) + 8.5 = 8.5 >> pend=feval(y,x1)
= + ( ) pend = 8.5000
= + . ( . )= . >> ymas=y1+pend*h
ymas = 5.2500
Error Global:
% = 100 =
3.21875 5.2500
% = 100 = 63.11%
3.21857
( )=
( )
(0.5 ) = 0.5
% = 100
5 h=0.5
y
3
Solucion
Verdadera
2
1
0 0.5 1 1.5 2 2.5 3 3.5 4
x
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) = (1 + ) ; x=0; y= 1
b) = v=0; t=0
c) = ;x=0; y=2
d) = ; x=0; y=4
(a)Predictor
(b) Corrector
: ( , )=
: ( , )
( , )+ ( , )
:
2
+ ( , )+ ( , )
= =
2 2
Esta pendiente se usa para extrapolar linealmente desde yi hasta yi+1, usando el
mtodo de Euler, la cual se denomina, ecuacin Corrector.
( , )+ ( , )
= +
2
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
Solucin
a) Primer valor
=0
=1
b) Segundo Valor
=0
( 1, 1) = 2(0) + 12(0) 20(0) + 8.5 = 8.5
= 0.5
, = 2(0.5) + 12(0.5) 20(0.5) + 8.5 = 1.25
Luego:
( , )+ ( , )
= +
2
8.500 + 1.250
=1+ (0.5) = 3.43750
2
c) Tercer Valor
= 0.5
= 3.43750
( 1, 1) = 2(0.5) + 12(0.5) 20(0.5) + 8.5 = 1.250
= 1.0
, = 2(1.0) + 12(1.0) 20(1.0) + 8.5 = 1.500
Luego:
( , )+ ( , )
= +
2
1.250 1.500
= 3.4375 + (0.5) = 3.3750
2
d) Cuarto Valor
= 1.0
= 3.3750
( 1, 1) = 2(1.0) + 12(1.0) 20(1.0) + 8.5 = 1.500
= 1.5
, = 2(1.5) + 12(1.5) 20(1.5) + 8.5 = 1.250
Luego:
( , )+ ( , )
= +
2
1.500 1.250
= 3.3750 + (0.5) = 2.0000
2
e) Quinto Valor
= 1.5
= 2.0000
( 1, 1) = 2(1.5) + 12(1.5) 20(1.5) + 8.5 = 1.250
= 2.0
, = 2(2.0) + 12(2.0) 20(2.0) + 8.5 = 0.500
Luego:
( , )+ ( , )
= +
2
1.250 + 0.500
= 2.0000 + (0.5) = 1.8125
2
Usando Matlab:
>> fx=inline('-2*x^3+12*x^2-
20*x+8.5')
>> x=0;h=0.5;xo=x+h;
Segundo valor Tercer valor
>> fxi=feval(fx,x) >> x=x+h
fxi = x = 0.5000
8.5000 >> xo=x+h
>> fxo=feval(fx,xo) xo = 1
fxo = >> fxi=feval(fx,x)
1.2500 fxi = 1.2500
>> y=y+((fxi+fxo)/2)*h >> fxo=feval(fx,xo)
3.4375 fxo = -1.5000
>> y=y+((fxi+fxo)/2)*h
y = 3.3750
Cuarto valor Quinto valor
>> x=x+h >> x=x+h
x= x=
1 1.5000
>> xo=x+h >> xo=x+h
xo = xo =
1.5000 2
>> fxi=feval(fx,x) >> fxi=feval(fx,x)
fxi = fxi =
-1.5000 -1.2500
>> fxo=feval(fx,xo) >> fxo=feval(fx,xo)
fxo = fxo =
-1.2500 0.5000
>> y=y+((fxi+fxo)/2)*h >> y=y+((fxi+fxo)/2)*h
y= y=
2.6875 2.5000
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) = (1 + ) ; x=0; y= 1
f) = v=0; t=0
g) = ;x=0; y=2
h) = ; x=0; y=4
= +
= + ( )
= + + + +
Donde a, p y q son constantes y los valores de k son:
= ( , )
= ( + , + )
= ( + , + + ) (3)
En general:
= + , + , + , + + ,
As se tiene:
a) Todas la k, son relaciones de recurrencia; k1 aparece en k2, la cual aparece en
k3, etc.
b) Cuando n=1; es el mtodo de Euler
c) Cuando n=2; es el mtodo de Runge-Kutta de segundo orden
d) Cuando n=3; es el mtodo de Runge-Kutta de tercer orden
Los valores de las constantes: a1, a2, p1 y q11, son: (deduccin de la serie
de Taylor)
+ =1
1
=
2
1
=
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:
=1
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)
= +( + )
= + +
= ( , )
= ( + , + ) = ( + , + ) +
Donde:
k1 : pendiente al inicio del intervalo
k2 : pendiente al final del intervalo
=1 1 1 1
= = = =
2( ) 2(1) 2
=11=0
= +( + )
= +( + ) = +
= ( , )
= ( + , + ) = + , + +
c) Mtodo de Ralston ( = )
Suponemos =
Entonces:
=1 1 1 3
2 1 = = = =
2( ) 2
=1 = 2( ) 4
3 3 3
= +( + )
= + +
= ( , )
= ( + , + ) = + , + +
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
= ( , )
= ( + , + ) Incrementos: + ()
= + +
a) Primer valor:
=0
=1
b) Segundo valor
= ( , )
= 2(0) + 12(0) 20(0) + 8.5 = 8.5
= ( + , + )
= 2(0.5) + 12(0.5) 20(0.5) + 8.5 = 1.25
Luego:
1 1
= + 1+
2 2 2
1 1
=1+ (8.5) + (1.25) 0.5 = 3.43750
2 2
c) Tercer valor
= ( , )
= 2(0.5) + 12(0.5) 20(0.5) + 8.5 = 1.25
= ( + , + )
= 2(1) + 12(1) 20(1) + 8.5 = 1.50
Luego:
1 1
= + 1+
2 2 2
1 1
= 3.4375 + (1.25) + (1.50) 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=feval(fx,x) k1 = 1.2500
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 x = 1.5000
>> 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 x = 2.5000
>> 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.2500 k2 = 2.5000
>> 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 x = 3.5000
>> k1=feval(fx,x) >> k1=feval(fx,x)
k1 = 2.5000 k1 = -0.2500
= ( , )
= + , + Incrementos: + ()
= +
a) Primer valor
=0
=1
b) Segundo valor
= ( , )
= 2(0) + 12(0) 20(0) + 8.5 = 8.5
= +
= + . ( . )= .
c) Tercer valor
= ( , )
= 2(0.5) + 12(0.5) 20(0.5) + 8.5 = 1.25
= + , + + () = 0.5 + (0.5) = 0.75
= 2(0.25) + 12(0.25) 20(0.25) + 8.5 = 0.5937
= +
= . + ( . )( . ) = .
d) Cuarto valor
= ( , )
= 2(1) + 12(1) 20(1) + 8.5 = 1.50
= + , + + () = 1.0 + (0.5) = 1.25
= 2(1.25) + 12(1.25) 20(1.25) + 8.5 = 1.65625
= +
= . + ( . )( . ) = .
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=feval(fx,x) k1 = 1.2500
c) Mtodo Ralston
= ( , )
= + , + Incrementos: + ()
= + +
a) Primer valor
=0
=1
b) Segundo valor
= ( , )
= 2(0) + 12(0) 20(0) + 8.5 = 8.5
= + , + Incrementos: 0 + (0.5) = 0.375
= 2(0.375) + 12(0.375) 20(0.375) + 8.5 = 2.58203
= + +
= + ( . )+ ( . ) . = .
c) Tercer valor
= ( , )
= 2(0.50) + 12(0.5) 20(0.5) + 8.5 = 1.25
= + , + Incrementos: 0.5+ (0.5) = 0.875
= 2(0.875) + 12(0.875) 20(0.875) + 8.5 = 1.1523
= + +
= . + ( . )+ ( . ) . = .
d) Cuarto valor
= ( , )
= 2(1) + 12(1) 20(1) + 8.5 = 1.50
= + , + Incrementos: 1.0+ (0.5) = 1.375
= 2(1.375) + 12(1.375) 20(1.375) + 8.5 = 1.5117
= + +
= . + ( . )+ ( . ) . = .
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=feval(fx,x) k1 = 1.2500
k1 = 8.5000 >> k2=feval(fx,x+(3/4)*h)
>> k2=feval(fx,x+(3/4)*h) k2 = -1.1523
k2 = 2.5820 >> y=y+((1/3)*k1+(2/3)*k2)*h
>> y=y+((1/3)*k1+(2/3)*k2)*h y = 3.1016
y = 3.2773
X=1.5 X=2.0
>> x=x+h >> x=x+h
x= 1 x = 1.5000
>> k1=feval(fx,x) >> k1=feval(fx,x)
k1 = -1.5000 k1 = -1.2500
>> k2=feval(fx,x+(3/4)*h) >> k2=feval(fx,x+(3/4)*h)
k2 = -1.5117 k2 = 0.0039
>> y=y+((1/3)*k1+(2/3)*k2)*h >> y=y+((1/3)*k1+(2/3)*k2)*h
y = 2.3477 y =2.1406
X=2.5 X=3.0
>> x=x+h >> x=x+h
x= 2 x = 2.5000
Tabla resumen
X Yverdadero YHeun YPunto Medio YRalston
0 1.0000 1.0000 1.0000 1.0000
0.5 3.2188 3.4375 3.1094 3.2773
1.0 3.0000 3.3750 2.8125 3.1016
1.5 2.2188 2.6875 1.9844 2.3477
2.0 2.0000 2.5000 1.7500 2.1406
2.5 2.7188 3.1875 2.4844 2.8555
3.0 4.0000 4.3750 3.8125 4.1172
3.5 4.7188 4.9375 4.6094 4.8008
4.0 3.0000 3.0000 3.0000 3.0313
>> tabla=[vv,VH,VPM,VR]
tabla =
1.0000 1.0000 1.0000 1.0000
3.2188 3.4375 3.1094 3.2773
3.0000 3.3750 2.8125 3.1016
2.2188 2.6875 1.9844 2.3477
2.0000 2.5000 1.7500 2.1406
2.7188 3.1875 2.4844 2.8555
4.0000 4.3750 3.8125 4.1172
4.7188 4.9375 4.6094 4.8008
3.0000 3.0000 3.0000 3.0313
>> plot(x,vv,x,VH,x,VPM,x,VR),grid
Tabla Errores
X Heun Punto Medio Ralston
0 0.00 0.00 0.00
0.5 6.80 3.40 1.82
1.0 12.50 6.30 3.40
1.5 21.10 10.6 5.80
4.5
3.5
3 Analitico
Y
2.5 Heun
Punto Medio
2 Ralston
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4
X
= + ( + + )
Donde:
= ( , )
1 1
= + , +
2 2
= ( + , + 2 )
= + ( + + + )
Donde:
= ( , )
= + , + +
= + , + +
= ( + , + ) +
= + ( + + + )
Donde:
= . ( , )
= . + , + + ; +
= . + , + + ; +
= . ( + , + ) + ; +
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 X=1.0
y= 4.7188
Tabla resumen
X Yverdadero RK4
0 1.0000 1.0000
0.5 3.2188 3.2188
1.0 3.0000 3.0000
1.5 2.2188 2.2188
2.0 2.0000 2.0000
2.5 2.7188 2.7188
3.0 4.0000 4.0000
3.5 4.7188 4.7188
4.0 3.0000 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 X=0.2
>> fx=inline('2*x*y') >> x=x+h
>> x=0;y=1;h=0.1; x = 0.100000000000000
>> k1=feval(fx,x,y*h) >> k1=feval(fx,x,y*h)
k1 = 0 k1 = 0.20201003333333
>> k2=feval(fx,x+0.5*h,y+0.5*k1*h) >> k2=feval(fx,x+0.5*h,y+0.5*k1*h)
k2 = 0.10000000000000 k2 = 0.30604520050000
>> k3=feval(fx,x+0.5*h,y+0.5*k2*h) >> k3=feval(fx,x+0.5*h,y+0.5*k2*h)
k3 = 0.10050000000000 k3 = 0.30760572800750
>> k4=feval(fx,x+h,y+k3*h) >> k4=feval(fx,x+h,y+k3*h)
k4 = 0.20201000000000 k4 = 0.41632429578697
>> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h >> y=y+(1/6)*(k1+2*k2+2*k3+k4)*h
y = 1.010050166666667 y = 1.040810769768922
X=0.3 X=0.4
>> x=x+h >> x=x+h
x = 0.200000000000000 x = 0.300000000000000
>> k1=feval(fx,x,y*h) >> k1=feval(fx,x,y*h)
k1 = 0.41632430790757 k1 = 0.65650455928798
>> k2=feval(fx,x+0.5*h,y+0.5*k1*h) >> k2=feval(fx,x+0.5*h,y+0.5*k1*h)
k2 = 0.53081349258215 k2 = 0.78889964541106
>> k3=feval(fx,x+0.5*h,y+0.5*k2*h) >> k3=feval(fx,x+0.5*h,y+0.5*k2*h)
k3 = 0. 53367572219901 k3 = 0.79353347342537
Tabla resumen
X Yverdadero RK4
0.0 1.00000 1.00000
0.1 1.01005 1.01005
0.2 1.04081 1.04081
0.3 1.09417 1.09417
0.4 1.17351 1.17351
0.5 1.28402 1.28402
[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
4.7202 4.7187
3.0015 3.0000
4.5
3.5
3
Y
2.5
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4
X
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
function fu=f(x,y)
8
fu=-2*x.^3+12*x.^2-
20*x+8.5;
7
5
Y
4 s ol. Eule r
2
s ol. a na litica
1
0 0.5 1 1.5 2 2.5 3 3.5 4
X
Ejemplo N2
Resolver el ejercicio anterior para tamaos de paso de h=0.25 y para h=0.10
ans = ans =
0 1.0000 0 1.0000
0.2500 3.1250 0.1000 1.8500
7 Eule r h=0 .5
5
Y
Eule r h=0 .2 5
4
2 Eule r h=0 .1 0
s ol. a na litica
1
0 0.5 1 1.5 2 2.5 3 3.5 4
X
Ejercicio N 3
Resolver mediante el mtodo de Euler la siguiente ecuacin diferencial
dy t y
dx 2
Para el rango de: 0<x<3
Condicin inicial: y(0)=1
Tamao del paso: h= 1; h=0.5; h=0.25
1.8
1.6
1.4
h=0 .2 5
1.2
Y
h=0 .5
1 Ana ltica
h=1
0.8
0.6
0.4
0 0.5 1 1.5 2 2.5 3
X
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
60
50
h=4
h=1 Ana litica
40
h=2
30
Y
20
10
0
0 2 4 6 8 10 12 14 16 18 20
X
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
Para el rango de: 0<x<4
Condicin inicial: y(0)=1
Tamao del paso: h= 0.5
function heun(f,a,b,y0,n) function fu=f(x,y)
clc; fu=-2*x.^3+12*x.^2-20*x+8.5;
%ODE metode Heun
%f: Nombre de la funcin (tipo Texto)
%a: Lmite inferior
%b: Lmite superior
%h: Tamao de paso
%y(0): Condicin inicial
%n: nmero de segmentos
h=(b-a)/n;
n=n+1;
y=zeros(n,1);
x=zeros(n,1);
p=zeros(n,1);
x(1)=a;y(1)=y0;p(1)=0;
fprintf(' x p y \n');
fprintf('==============================\n');
fprintf('%10.6f %10.6f\n', x(1),y(1));
for i=1:n-1
%Ecuacin Predictor
p(i+1)=y(i)+h*feval(f,x(i),y(i));
% 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
>> heun('f',0,4,1,8)
x p y 5
=========================
4.5
0.000000 1.000000
0.500000 5.250000 3.437500
4
1.000000 4.062500 3.375000
1.500000 2.625000 2.687500 3.5 SOL . HEUN
2.000000 2.062500 2.500000
2.500000 2.750000 3.187500 3
Y
SOL. ANALITICA
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4
X
Metodo de Heun
5
4.5
4
h=0.5
3.5
3
y
2.5
2
h=0.25
Sol. Analitica
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4
x
>> 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
4.5
3.5
2.5
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4