You are on page 1of 42

Ecuaciones diferenciales

APLICACIN DE METODOS NUMERICOS


CAPITULO VI
ECUACIONES DIFERENCIALES ORDINARIAS Y PARCIALES
1. REVISION DE MATEMATICA SIMBOLICA
DIFERENCIACION
Matlab permite ejecutar operaciones simblicas entre funciones
Por ejemplo
La raiz cuadrada de 2, se puede reportar con su valor real que es 1.4142;
Pero tambien se puede dejar indicado el valor tanto en notacin de matlab como en
notacin de matemticas
En los siguientes ejemplos notamos algunas funciones de Matemtica Simblica
Symbolic Math
>> sqrt(2)
ans =
1.4142
Valor real

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

MatLab utilize la funcin diff, para diferenciar funciones


Sintaxis:
diff(S) : diferencia la expression simblica S, respeto a la variable independiente
determinada por syms
diff(S,'v') : diferencia la expresin simblica S con respecto a v
diff(S,n) : diferenciacin de S, n veces
diff(S,'v',n): diferenciacin de S, respecto a v, n veces
>> syms x
>> h=x.^3
h=
x^3

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

Ing. Hctor G. Bolaos Sosa

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)

Reemplazando (5) y (6) en (3); se tiene


  + 
=



 

=



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

C: coeficiente de resistencia del aire;


Kg/s
M ASA

m: masa; Kg
g: aceleracin de la gravedad; m/s2
v: velocidad de cada; m/s

Fd

Esta ecuacin (7), es conocida como ecuacin diferencial


La velocidad (v), es una cantidad a ser diferenciada y constituye una variable
dependiente.
El tiempo (t), constituye una variable independiente
Cuando la funcin involucra una variable independiente, la ecuacin se llama
ecuacin diferencial ordinaria (EDO).

Ing. Hctor G. Bolaos Sosa

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

 =  

 


Considerando, v=0 y t=0, la solucin analtica es:

t
gm
v(t ) =
1 e m
c

Muchas de la soluciones exactas para la EDOs de importancia en ingeniera no


estn disponibles; es entonces que los mtodos numricos ofrecen una nica
alternativa de solucin y por lo general requieren de los ordenadores.
2.2. ECUACIONES DIFERENCIALES Y LA INGENIERIA
Las leyes fundamentales de la fsica, electricidad, termodinmica se pueden
expresar en trminos de la razn de cambio:

% = &
* = +

 !  "#$



' 
!$(  $()(


,
'  +)-.)  )
&


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:

Ing. Hctor G. Bolaos Sosa

Pag .5

Ecuaciones diferenciales
  7 2 4  12  20  8.59  7119

Aplicando las reglas de integracin, para cada trmino; se obtiene la ecuacin


solucin:
  0.5 2  4 4 10   8.5  , 7129
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

dy

C=+3
C=+1

C=0
-5

C=-3

-10

-15

0.5

1.5

2
dx

2.5

3.5

En la figura observamos 4 posibles soluciones para la integral; pudiendo ser infinitas


soluciones.
Por lo tanto para especificar la solucin por completo, la ecuacin diferencial
comnmente se encuentra acompaada de una condicin auxiliar llamada valor
inicial que es requerida para determinar la constante C.
Luego en el ejemplo tendramos:
  0.5 2  4 4 10   8.5  ,
Reemplazando x=0 y y=1; como valores iniciales; se tiene:
1  0.57092  47094 10709  8.5709  ,
Resolviendo para C, se tiene:
C=1
Finalmente la solucin nica queda as:
;  <. =>?  ?>@ A<>B  C. =>  A 7A@9
Donde esta ecuacin (13), resulta ser idntica que la funcin inicial (9)
Usando Matlab

Ing. Hctor G. Bolaos Sosa

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

Para efectuar el grfico de la


diferenciacin:

1.5

2
x

2.5

3.5

2
dx

2.5

3.5

10
8
6
4
2
0
-2
-4
-6
-8

>> y1=inline('- 2*x^3 +


12*x^2 - 20*x + 17/2')
>> fplot(y1,[0,4]),grid

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

Observamos que el valor cero de las derivadas, corresponde al punto en el cual la


funcin original es plana; es decir; la pendiente cero.

Ing. Hctor G. Bolaos Sosa

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

ECUACIONES DIFERENCIALES USANDO MATLAB


dsolve: retorna una solucin simblica de una ecuacin diferencial ordinaria
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 4  12  10  8.5

a) Resolver analticamente
b) Resolver con la condicin inicial x=0, y=1:
Solucin:

  0.5 2  4 4 10   8.5  ,

Solucin analtica:

Con valor inicial x=0; y=1

>>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.-

Ing. Hctor G. Bolaos Sosa

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

Ejemplo N 05.Sea la siguiente ecuacin diferencial:


 
=
 
Solucin
 = 
Ing. Hctor G. Bolaos Sosa

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

Ejemplo N 06.Sea la siguiente ecuacin diferencial:



 

Condicin inicial: x=0; y=2
Solucin
Solucin general
>> S=dsolve('Dy=x-y','x')
S=
x + C3/exp(x) - 1

Solucin particular:
x=0; y=2;
>> S=dsolve('Dy=x-y','y(0)=2','x')
S=
x + 3/exp(x) - 1

Ejemplo N 07.Sea la siguiente ecuacin diferencial:


  H



Condicin inicial: x=0; y=4
Solucin
Solucin General:
>> S=dsolve('Dy=exp(x)/y','x')
S=
2^(1/2)*(C9 + exp(x))^(1/2)
-2^(1/2)*(C9 + exp(x))^(1/2)

Ing. Hctor G. Bolaos Sosa

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


Mtodo de forma general:

Nuevo valorvalor anterior  pendiente x tamao de paso


;[\A  ;[  ^ 7A9
Par el caso del paracaidista, se tiene:
_[\A  _[  `a

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

4.1. METODO DE EULER


Predice un nuevo valor de Y, por medio de la pendiente (igual a la primera
derivada en el valor original de x) que habr de extrapolarse en forma lineal sobre el
tamao del paso h
 -7f , f 9 Estimacin de la pendiente en xi (primera derivada)
Entonces la ecuacin (1) ser:
;[\A  ;[  g7>[ ;[ 9^ 7B9
Esta ecuacin es conocida como:
El mtodo de Euler; mtodo Euler-Cauchy; mtodo de Punto medio

Ing. Hctor G. Bolaos Sosa

Pag .11

Ecuaciones diferenciales

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

  7 2 4  12  20  8.59 

  0.5 2  4 4 10   8.5  ,

Solucin General

Reemplazando x=0; y=1; como valores iniciales; se tiene:


1  0.57092  47094 10709  8.5709  ,
;  <. =>?  ?>@ A<>B  C. =>  A Solucin particular
5
4.5
4
3.5
y

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

Para el tercer valor:


X2=0.5; y2=5.2500
f(x1,y1)=
-71, 19  270.5094  1270.59 2070.59  8.5
 1.2500
;[\A  ;[  g7>[ ;[ 9^
;[\A  =. B=<<  A. B=7<. =9  =. Co=<
j( j k($
%i 
100 
j(
3.0000 5.8750
%i 
100  95.83%
3.0000
Para el cuarto valor:
X3=1.0; y3=5.8750
f(x1,y1)=
-71, 19  271.094  1271.09 2071.09  8.5
 1.5000
;[\A  ;[  g7>[ ;[ 9^
;[\A  =. Co=< A. =<<7<. =9  =. AB=<

Asi, seguimos evaluando los diferentes valores


Tabla resumen
x
Yverdadero
YEULER
0
1.0000
1.0000
0.5
3.2188
5.2500
1.0
3.0000
5.8750
1.5
2.2188
5.1250
2.0
2.0000
4.5000
2.5
2.7188
4.7500
Ing. Hctor G. Bolaos Sosa

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

4.2. METODO DE HEUN


Un error del mtodo de Euler, es que la derivada al inicio del intervalo
supuestamente se aplica a todo el intervalo.
El mtodo de Heun; involucra la determinacin de dos derivadas para el intervalo.
En el punto inicial y en el punto final.
Las dos derivadas luego se promedian para una mejor estimacin.

Ing. Hctor G. Bolaos Sosa

Pag .14

Ecuaciones diferenciales

Luego se tienen las siguientes ecuaciones:

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

Estimacin de la pendiente al final del intervalo:

w
y
9
f\F
 -7f\F , f\F

Luego, se tiene el promedio de las dos pendientes:

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

4.3. METODOS DE RUNGE-KUTTA


Los mtodos de un paso se pueden expresar:
;[\A  ;[  ^

;[\A  ;[  g7>[ ;[ 9^

 -7f , f 9 Estimacin de la pendiente en xi (primera derivada)

Ing. Hctor G. Bolaos Sosa

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  @ @    

Donde a, p y q son constantes y los valores de k son:


&F  -7f , f 9
&  -7 f  kF x, f  %FF &F x9
&4  -7 f  k x, f  %F &F x  % & x9 (3)
En general:
&  -{ f  kF x, f  %F,F &F x  %F, & x   %F,F &F x}
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
4.3.1. Mtodos de Runge-Kuta de segundo orden
La ecuacin de RK, general es:
;[\A  ;[  7>[ , ;[ , ^9

 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

Ing. Hctor G. Bolaos Sosa

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 

a) Mtodo de Heun con un solo corrector (B  B)


F

Suponemos que:   ;

Entonces:
F 1 
1 A
F 1 
2 B

kF  %FF 

1
1
 A
1
2 2 1

Luego reemplazando en la ecuacin (4), queda as:


;[\A  ;[  7A A  B B 9^

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


Luego reemplazando en la ecuacin (4), queda as:


;[\A  ;[  7A A  B B 9^

;[\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

Ing. Hctor G. Bolaos Sosa


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

Luego reemplazando en la ecuacin (4), queda as:


;[\A  ;[  7A A  B B 9^

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


f  70.59  0  70.59  0.25

&  270.2594  1270.259 2070.259  8.5  4.21875

;[\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


&  270.2594  1270.259 2070.259  8.5  0.5937

;[\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


&  271.2594  1271.259 2071.259  8.5  1.65625

;[\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

&  270.37594  1270.3759 2070.3759  8.5  2.58203


A
B
;[\A  ;[  A  B ^
@
@
A
B
;[\A  <  7C. =9  7B. =CB<@9 <. =  @. Boo@?@
@
@

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

&  270.87594  1270.8759 2070.8759  8.5  1.1523


A
B
;[\A  ;[  A  B ^
@
@
A
B
;[\A  @. Boo@?@  7A. B=9  7 A. A=B@9 <. =  @. A<A=@
@
@
d) Cuarto valor
&F  -7f , f 9
&F  27194  12719 20719  8.5  1.50
4
4
4
&  -  f  x, f  &F x
Incrementos: 1.0 70.59  1.375

&  271.37594  1271.3759 2071.3759  8.5  1.5117


A
B
;[\A  ;[  A  B ^
@
@
A
B
;[\A  @. A<A=@  7 A. =<9  7 A. =AAo9 <. =  B. @?o@
@
@
X=0.5
X=1.0
>> fx=inline('-2*x^3+12*x^2>> x=x+h
x = 0.5000
20*x+8.5')
>> 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
>> y=y+((1/3)*k1+(2/3)*k2)*h
k2 = 2.5820
>> 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
>> k1=feval(fx,x)
>> k1=feval(fx,x)
k1 = 0.5000
k1 = 2.2500
>> k2=feval(fx,x+(3/4)*h)
>> k2=feval(fx,x+(3/4)*h)
k2 = 1.8945
k2 = 2.6602
>> y=y+((1/3)*k1+(2/3)*k2)*h
>> y=y+((1/3)*k1+(2/3)*k2)*h
y = 2.8555
y = 4.1172
X=3.5
X=4.0
>> x=x+h
>> x=x+h
Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

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

&4  x. - f  x, f  & 




&2  x. -7f  x, f  &4 9

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

>> dy=dsolve('Dy = 2*x*y','x')


dy =
C7*exp(x^2)
>> dy=dsolve('Dy = 2*x*y','y(0)=1','x')
dy =exp(x^2)
>> x=[0:0.1:0.5]'

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

4.3.4. Funciones de Matlab

Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

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

Para el rango de: 0<x<3


Condicin inicial: y(0)=1
Tamao del paso: h= 1; h=0.5; h=0.25
function E=euler(f,a,b,ya,M)
%Funcin
%a y b:extremos el intervalo
%ya: condicin inicial y(a)
%M: nmero de pasos
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]';
y=t-2+3*exp(-1/2*t);
plot(T,Y,t,y),grid
Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

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

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)
clc;
%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));
Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

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

Ing. Hctor G. Bolaos Sosa

1.5

2.5

3.5

Pag .42

You might also like