Escolar Documentos
Profissional Documentos
Cultura Documentos
Grupo 7
Simulacion
www.nitropdf.com
Mtodos numricos para la solucin de EDO
TABLA DE CONTENIDO
1. Introduccin........................................................................................1
1.1 Planteamiento del problema....................................................................1
2. Mtodos del tipo Runge-Kutta..........................................................3
2.1 Mtodo de Euler (Runge-Kutta de 1er orden).......................................3
2.2 Mtodo de Euler modificado (Runge-Kutta de 2 orden).....................5
2.3 Mtodo de Euler-Cauchy modificado (Runge-Kutta de 2 orden).......6
2.4 Mtodo de la regla de Simpson (Runge-Kutta de 3er orden)...............7
2.5 Mtodo de Heun (Runge-Kutta de 3er orden).......................................7
2.6 Runge-Kutta de 4 orden (clsico).......................................................8
2.7 Runge-Kutta-Simpson de 4 orden..........................................................9
2.8 Mtodos RungeKutta de paso variable.................................................9
2.8.1 Runge-Kutta-Fehlberg de 2 orden 10
2.8.2 Runge-Kutta-Fehlberg de 4 orden 11
2.9 Error por truncamiento y error por redondeo....................................12
2.10 Sistemas rgidos.....................................................................................12
2.11 Efecto del paso de integracin sobre la exactitud de la solucin......13
3. Mtodos de integracin numrica...................................................15
3.1 Frmulas directas, Mtodos de Adams-Bashforth..............................15
3.1.1 Mtodo de segundo orden 16
3.1.2 Mtodo de cuarto orden 16
3.2 Frmulas implcitas, Mtodos de Adams-Moulton..............................16
3.2.1 Mtodo de segundo orden 16
3.2.2 Mtodo de cuarto orden 16
3.3 Mtodos predictor - corrector...............................................................16
3.3.1 Mtodo trapezoidal modificado (2 orden) 17
3.3.2 Mtodo de Adams-Bashforth-Moulton de 4 orden 17
www.nitropdf.com
Mtodos numricos para la solucin de EDO
www.nitropdf.com
Mtodos numricos para la solucin de EDO 1
1. Introduccin
El estudio de los procesos dinmicos y sus sistemas de control, debe iniciarse con la obtencin de
una representacin matemtica de las relaciones existentes entre las diferentes variables involu-
cradas en el proceso a controlar, a la que usualmente se denomina modelo del sistema.
El proceso de modelado de un sistema dinmico, puede llevar a la obtencin de una representa-
cin para el mismo por medio de una ecuacin diferencial de orden alto, o por un conjunto de
ecuaciones diferenciales de primer orden no lineales, cuya solucin se debe obtener para conocer
la respuesta temporal del sistema, a partir un conjunto de condiciones iniciales y una entrada
dada.
La solucin analtica de una ecuacin diferencial lineal puede ser fcil, de varias ya presenta difi-
cultades y de muchas es prcticamente imposible. Si las ecuaciones diferenciales son no lineales,
el resolver una sola es muy difcil y varias o muchas es imposible por medios analticos.
Como es normal que el modelo obtenido para el sistema que se desea analizar, est constituido
por varias ecuaciones diferenciales no lineales, este solamente puede resolverse con la ayuda de
un programa de simulacin digital.
Para el desarrollo de un programa de simulacin de sistemas dinmicos, es necesario entonces
contar con un mtodo de solucin de ecuaciones diferenciales.
Se presentarn adelante en forma breve, algunos de los mtodos numricos de solucin de ecua-
ciones diferenciales ordinarias (EDO), ms empleados en la simulacin digital de los sistemas
dinmicos.
www.nitropdf.com
Mtodos numricos para la solucin de EDO 2
Si se define a Y(t) como la solucin exacta de (1) y a y(t) como la solucin calculada, entonces
Y n =Y t n , Yn =
dY
dt t=t n
= f Y n , t n (2)
www.nitropdf.com
Mtodos numricos para la solucin de EDO 3
i1
ki= t f y n ij k j , t ni t (6)
j=1
www.nitropdf.com
Mtodos numricos para la solucin de EDO 4
y(t)
k1 = t f(fn, tn)
yn+1 = yn + k1
1
yn+1
y(t)
f(yn, tn)
k1
0
yn
t
tn tn+1 t
Fig. 2.1 - Integracin rectangular
www.nitropdf.com
Mtodos numricos para la solucin de EDO 5
1 1
k2= t f yn k1 , t n t (11)
2 2
y n1= yn k 2
Este mtodo coincide con la serie de Taylor (8) hasta el trmino t 2 por lo que su error por
truncamiento ser O t 3 .
El mtodo de Euler modificado utiliza el valor de la ecuacin diferencial al centro del paso de in-
tegracin, extendindolo a todo su ancho segn se aprecia en la Figura 2.2.
k1 = t f(yn, tn)
y(t)
k2 = t f(yn+k1/2, tn+t/2)
yn+1 = yn + k2
y(t)
f(yn+k1/2, tn+t/2)
1
2
yn+1
f(yn, tn)
k2
0
yn
tn tn+t/2 tn+1 t
Fig. 2.2 - Mtodo de Euler modificado
www.nitropdf.com
Mtodos numricos para la solucin de EDO 6
k2= t f ynk1 , t n t
(12)
1
yn1= y n [k1k 2]
2
El mtodo de integracin trapezoidal utiliza un promedio del valor de la ecuacin diferencial al
inicio (n) y final (n+1) del paso de integracin, como se indica en la Figura 2.3.
k1 = f(yn, tn)
k2 = f(yn+k1, tn+t)
y(t) yn+1 = yn + [k1+k2]/2
f(y'n+1, tn+1)
1
y'n+1
y(t)
f(yn, tn) 2
yn+1
(k1+k2)/2
0
yn
{f(yn, tn) + f(y'n+1, tn+1)}/2
tn tn+1 t
Fig. 2.3 - Integracin trapezoidal
www.nitropdf.com
Mtodos numricos para la solucin de EDO 7
1 1
k 2= t f y n k1 , t n t
2 2
(13)
k3= t f ynk12 k 2 , t n t
1
y n1= yn [k14 k 2k 3]
6
con un error por truncamiento O t 4 .
1 1
k2= t f yn k1 , t n t
3 3
(14)
2 2
k3= t f yn k2 , t n t
3 3
1
y n1= y n [k13 k3]
4
con un error por truncamiento O t 4
www.nitropdf.com
Mtodos numricos para la solucin de EDO 8
1 1
k2= t f y n k1 , t n t
2 2
1 1
k 3= t f y n k2 , t n t (15)
2 2
k 4= t f y nk3 , t n t
1
yn1=y n [k12 k22 k3k4 ]
6
El error por truncamiento de este mtodo es O t 5 , siendo adems mucho ms estable que
los anteriores.
Existen varios mtodos Runge-Kutta de 4 orden. Adems del anterior, cuyos coeficientes se atri-
buyen a Kutta, existe el Runge-Kutta-Gill en que se minimiza la memoria utilizada, el Runge-Ku-
tta-Ralston en el que se minimiza el error por truncamiento, el Runge-Kutta-Merson que es una
extensin para hacerlo de paso variable, esto a costa de una evaluacin adicional de las ecuacio-
nes del sistema para poder estimar el error y tomar decisiones sobre el tamao del paso y otros
ms.
www.nitropdf.com
Mtodos numricos para la solucin de EDO 9
1 1
k 2= t f y n k1 , t n t
3 3
1 2
k3= t f yn k1k 2 , t n t (16)
3 3
k4= t f yn k1k2k 3 , t n t
1
y n1= yn [k13 k23 k 3k 4]
8
www.nitropdf.com
Mtodos numricos para la solucin de EDO 10
1
2
1
k 2= t ' f y n k1 , t n t '
2
(17)
k3= t ' f
yn
1
256
k1
255
k , t t '
256 2 n
1 255 1
yn1=y n k1 k 2 k
512 256 512 3
donde t' es el paso de integracin variable, el cual debe dividirse a la mitad si el
ErrorErrAbsErrRely n1 (18)
y puede duplicarse si el
ErrorErrAbsErrRelyn1/100 (19)
donde
Error=
k1k3
512 (20)
es el error por truncamiento estimado y ErrAbs y ErrRel son el error absoluto y relativo utilizados
para controlar el paso de integracin.
www.nitropdf.com
Mtodos numricos para la solucin de EDO 11
1
4
1
k 2= t ' f y n k1 , t n t '
4
k 3= t' f y n
3
32
9 3
k1 k2 , t n t'
32 8
(21)
k4= t ' f yn
1932
2197
k1
7200
2197
k 2
7296
2197
12
k3, t n t '
13
k5= t ' f yn
439
216
k18 k 2
3680
513
k 3
845
k t t '
4104 4, n
k6= t' f yn
8
27
k12 k 2
3544
2565
k3
1859
4104
11 1
k4 k 5, t n t'
40 2
donde t' es el paso de integracin variable.
Se calcula
R=
1 1
t' 360
k1
128
4275
k 3
2197
75240
1 2
k4 k5 k 6
50 55 (22)
siendo este
t'
R=
2
y n1 5 yn1 4 (23)
1/4
y =0.84TolE/R (24)
Si RTolE , donde TolE es la tolerancia o error permitido en la solucin, se calcula el nuevo
punto de la solucin
25 1408 2197 1
yn1=y n k1 k3 k4 k 5 (25)
216 2565 4104 5
y el nuevo paso de integracin como t'= t ' , si 4 el paso solo se cuadruplica
t ' =4 t ' , y se continua con la solucin a partir del punto n+1.
www.nitropdf.com
Mtodos numricos para la solucin de EDO 12
Si RTolE , se calcula el nuevo paso de integracin como t'= t' , si 0.1 el paso
se reduce solo a su dcima parte t' =0.1 t ' , y se parte del punto n anterior.
1.5
1
y(x)
0.5
exacta
-0.5
paso = 0,5
paso = 1,0
paso = 2,0
-1
0 2 4 6 8 10 12 14 16 18
x
Aunque el mtodo de Simpson requiere realizar tres veces ms evaluaciones de la ecuacin dife-
rencial en cada paso de integracin que el mtodo de Euler, normalmente permite emplear pasos
de integracin bastante mayores, reducindose incluso el tiempo total requerido para la solucin.
El tamao del paso de integracin necesario para obtener una solucin satisfactoria depende en-
tonces de la exactitud del mtodo de integracin y de la ecuacin diferencial a resolver. Entre
ms preciso, mayor orden, sea el mtodo de integracin utilizado, se pueden emplear paso mayo-
res, sin embargo debe tenerse tambin en cuenta que, en los casos en que se desea mostrar la solu-
cin de la ecuacin diferencial en forma grfica, el tamao mximo del paso estar determinado
usualmente por la resolucin deseado de este grfico.
0.8
0.6
0.4
0.2
y(x)
-0.2
-0.4
exacta
paso = 0,5
-0.6
paso = 1,0
paso = 2,0
-0.8
-1
0 2 4 6 8 10 12 14 16 18
x
www.nitropdf.com
Mtodos numricos para la solucin de EDO 15
en donde el ltimo valor de t en que se calcul y es tn y el nmero de valores pasados usados para
calcular yn+1 es p+1.
Se considerar que en (26) algunos de los ai y bi pueden ser cero, pero se supondr que ap o bp no
son cero.
Si en (26) b1=0 , yn+1 est expresado como una combinacin lineal de los valores conocidos
de y y y y es fcil de calcular. Las frmulas con b1=0 se denominan frmulas de integra-
cin directa o abiertas
Si b1 0 , la ecuacin (26) es una funcin implcita de yn+1 porque y n1= f y n1 , t n1 y se
puede resolver solamente por procedimientos iterativos. Las frmulas con b1 0 se denomi-
nan frmulas de integracin implcitas o cerradas.
Como regla general, para frmulas del mismo orden, las frmulas implcitas son sustancialmente
ms exactas que las frmulas directas.
En comparacin con los mtodos de integracin del tipo Runge-Kutta, los mtodos de integracin
numrica se caracterizan entonces por:
1. no ser autoiniciables
2. requerir aparte de la informacin del punto n, informacin de uno o ms puntos anteriores para
calcular la solucin en el punto n+1
3. evaluar la funcin (derivada) una sola vez por cada aplicacin de la frmula (el nmero de
evaluaciones de la derivada en el caso de los mtodos predictor - corrector depender del n-
mero de veces que sea necesario aplicar la frmula correctora) y
4. por que el uso combinado de frmulas explcitas e implcitas permite estimar y corregir los
errores por truncamiento locales. Esta estimacin del error se puede utilizar para variar el ta-
mao del paso de integracin.
diferencial debe iniciarse con un procedimiento del tipo Runge-Kutta del mismo orden para
obtener la informacin inicial requerida por el mtodo de Adams.
3.1.1 Mtodo de segundo orden
Este mtodo est dado por la ecuacin
1
yn1=y n t[3 y n y n 1] (27)
2
cuyo error por truncamiento es O t 3 .
3.1.2 Mtodo de cuarto orden
Esta frmula directa est dada por la ecuacin
1
yn1=y n t[55 y n59 y n137 yn 29 y n3] (28)
24
con un error por truncamiento O t 5 .
Se debe entonces predecir primero el valor de yn+1 utilizando una frmula de integracin directa y
luego corregir el valor predicho con una frmula de integracin implcita, crendose as los mto-
dos del tipo predictor corrector, los cuales emplean una frmula directa como predictor y una
frmula implcita como corrector, ambas con errores por truncamiento del mismo orden.
3.3.1 Mtodo trapezoidal modificado (2 orden)
Uno de los mtodos ms sencillos del tipo predictor - corrector se obtiene utilizando los mtodos
de Adams de 2 orden (el de Adams-Bashforth como predictor y el de Adams Moulton, integra-
cin trapezoidal cerrada, como corrector). En su versin ms simple el corrector se utilizara una
sola vez en cada iteracin, haciendo del mismo un mtodo de paso fijo cuyas ecuaciones estn da-
das por
Predictor
1
y0
n1=y n t[3 y
n yn 1]
2
(31a)
y 0 0
n1= f yn1 , t n t
Corrector
1 0
yn1=y n t[ y n1 y n ] (31b)
2
0.9
0.8
0.7
0.6
y(t)
0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
tiempo
%Ejemplo 4.1
%Solucin de una ecuacin diferencial utilizando
%el mtodo de Simpson (Runge-Kuta de 3er orden)
%Ecuacin de ejemplo: p y = f(y,t) = -y + 1
%
Mtodos numricos para la solucin de EDO 21
clear
%definir la ecuacin diferencial a resolver
f=inline('-y+1','y','t');
%
%condicin inicial y tiempos
yo=0.;to=0;dt=0.25;tu=5;
y(1)=yo;t(1)=to;
n=0;
%
%solucin numrica
while t(n+1) < tu
n=n+1;
k1=dt*f(y(n),t(n));
k2=dt*f(y(n)+k1/2,t(n)+dt/2);
k3=dt*f(y(n)-k1+2*k2,t(n)+dt);
y(n+1)=y(n)+(k1+4*k2+k3)/6;
t(n+1)=t(n)+dt;
end
%
%graficar la solucin
plot(t,y,'+b')
grid on
title('Solucin de p y= -y + 1 por el Mtodo de Simpson')
xlabel('tiempo'),ylabel('y(t)')
//Ejemplo 4.2
//Solucin de una ecuacin diferencial utilizando
//el mtodo de Adams-Bashforth de 2 orden
//Ecuacin de ejemplo: p y = f(y,t) = -0.025 y + t
//
clear,xset('default'),xbasc()
//definir la ecuacin diferencial a resolver
function py=f(y,t)
py=-0.025*y+t;
endfunction
//
//condicin inicial y tiempos
yo=0.;to=0;dt=0.25;tu=10;
y(1)=yo;t(1)=to;
n=0;
//solucin numrica
//arranque con integracin trapezoidal
n=n+1;
k1=dt*f(y(n),t(n));
Mtodos numricos para la solucin de EDO 22
k2=dt*f(y(n)+k1,t(n)+dt);
y(n+1)=y(n)+(k1+k2)/2;
t(n+1)=t(n)+dt;
//cambio al mtodo de Adams-Bashforth
while t(n+1) < tu
n=n+1;
y(n+1)=y(n)+dt*(3*f(y(n),t(n))-f(y(n-1),t(n-1)))/2;
t(n+1)=t(n)+dt;
end
//
//graficar la solucin
xname('Solucin numrica de una ecuacin diferencial')
xset('color',2),xset('mark size',1,18)
plot2d(t,y,style=-1)
xgrid(4)
xset('color',1),xset('font',2,3)
xtitle('Solucin de p y= -0.025 y + t por el mtodo de Adams-Bash-
forth de 2 orden','tiempo','y(t)')
50
45
40
35
30
25
20
15
10
0 tiempo
0 1 2 3 4 5 6 7 8 9 10
Mtodos numricos para la solucin de EDO 23
Para el caso de una ecuacin diferencial lineal de orden alto (n) dada por
n n 1
d y d y dy
an 1 n 1 a1 a 0 yt=b 0 ut (38)
dt n
dt dt
definiendo
n1
dy d y
x1 t= yt , x2 t= ,, xn = n1 (39)
dt dt
se puede convertir en un conjunto de n ecuaciones diferenciales de primer orden dado por
x1=x2
x2=x 3
(40)
xn=a0 x1a1 x2an 1 xn b 0 ut
En el caso general de un conjunto de n ecuaciones diferenciales de primer orden no lineales se
tendra
x 1 t= f 1 x1 , x 2 , , x n ; u ; t
x 2 t= f 2 x1 , x2 , , xn ; u ; t
(41)
x n t= f n x1 , x 2 , , x n ; u ; t
las cuales deben ser resueltas en forma simultnea.
Mtodos numricos para la solucin de EDO 24
%Ejemplo 4.3
%Solucin de una ecuacin diferencial de segundo orden
%utilizando el mtodo de Euler (Runge-Kutta de 1er orden)
%Ecuacin de ejemplo: (p^2+1.5*p+3) y(t) = 3
%
clear
%definir la ecuacin diferencial
%como dos ecuaciones diferenciales de 1er orden)
f1=inline('x2','x1','x2','t');
f2=inline('-1.5*x2-3*x1+3','x1','x2','t');
%
%condiciones iniciales y tiempos
x1o=0.;x2o=0;to=0;dt=0.0625;tu=8.0;
x1(1)=x1o;x2(1)=x2o;t(1)=to;
n=0;
%
%solucin numrica
while t(n+1) < tu
n=n+1;
k11=dt*f1(x1(n),x2(n),t(n));
k12=dt*f2(x1(n),x2(n),t(n));
x1(n+1)=x1(n)+k11;
x2(n+1)=x2(n)+k12;
t(n+1)=t(n)+dt;
end
%
%graficar la solucin
plot(t,x1,'b')
grid on
title('Solucin de (p^2 + 1.5 * p + 3) y(t) = 3 por el mtodo de
Euler')
xlabel('tiempo'),ylabel('y(t)')
Mtodos numricos para la solucin de EDO 25
1.2
0.8
y(t)
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8
tiempo
%Ejemplo 4.4
%Utilizacin de la rutina ode45 (Runge-Kutta 4/5)
%las ecuaciones diferenciales (modelo) estn contenidas
%en el archivo modelo_44.m
%
clear
%
%Intervalo de solucin
to=0;tu=20;
%
%llamado al "ode solver"
[t,y]=ode45('modelo_44',[to tu],[0 0]);
%
%graficar la solucin
plot(t,y(:,1))
grid on
title('Ejemplo del uso de la rutina ODE45')
xlabel('tiempo, seg'),ylabel('y(t)')
function px=modelo(t,x)
%Ejemplo 4.4
%Archivo modelo_44.m con definicin del modelo
%(conjunto de ecuaciones diferenciales)
%la funcin debe devolver un vector columna
%
%Modelo de ejemplo - control P de una planta de segundo orden
r=1;Kc=1.5;
%realimentacin
Mtodos numricos para la solucin de EDO 27
e=r-x(1);
%controlador P
u=Kc*e;
%planta
px1=x(2);
px2=-x(1)-0.5*x(2)+u;
px=[px1; px2];
0.9
0.8
0.7
0.6
y(t)
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
tiempo, seg
x2
0 x1
-4 -3 -2 -1 0 1 2 3 4 5 6
-2
-4
-6
-8
//Ejemplo 4.5
//Utilizacin de la instruccin ode de Scilab
//Dibujo del movimiento en el plano de fase
//de los estados de un sistema de segundo orden
//Funcin de ejemplo: (p^2+0.5*p+3) x(t) = 0
//
clear
t=0:0.05:20;
//definir el sistema como una funcin
//dos ecuaciones diferenciales de primer orden
function px=modelo(t,x)
px(1)=x(2)
px(2)=-3*x(1)-0.5*x(2)
endfunction
//
Mtodos numricos para la solucin de EDO 29
Y(t)
"Exacta"
Euler
dt (0.800):
0
0 10 t(s)
Y(t)
"Exacta"
Runge-Kutta
dt (0.800):
0
0 10 t(s)
www.nitropdf.com
Mtodos numricos para la solucin de EDO 32
Bibliografa