Sie sind auf Seite 1von 35

Simulacin de Sistemas

Mtodos numricos para la


solucin de ecuaciones diferenciales
ordinarias (EDO)

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

3.3.3 Mtodo de Milne de 4 orden 18


3.3.4 Mtodo de Milne de 6 orden 18
3.4 Algoritmo de solucin.............................................................................18
4. Ejemplos del uso de algunos mtodos.............................................20
4.1 Mtodo de la regla de Simpson en MATLAB......................................20
4.2 Mtodo de Adams-Bashforth de 2 orden en Scilab............................21
4.3 Solucin de una ecuacin diferencial de segundo orden.....................23
4.4 ODE Solvers en MATLAB y Simulink.............................................25
4.4.1 Mtodos de paso variable 25
4.4.2 Mtodos de paso fijo (solo en Simulink) 26
4.4.3 Ejemplo 26
4.5 ODE Solvers en Scilab........................................................................27
4.6 Mtodos de integracin en VisSim........................................................29
5. Comparacin de los mtodos de solucin de EDO........................30
Bibliografa.............................................................................................32

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.

1.1 Planteamiento del problema


Se requiere solucionar la ecuacin diferencial de primer orden
dy
= f y , t , yt 0= y0 (1)
dt
para encontrar y en una secuencia de valores de la variable independiente t {ti} dentro de un in-
tervalo de solucin [t0, tf], donde f y , t es una funcin no lineal cualquiera.
La obtencin de la solucin de (1) es conocida como el problema del valor inicial en la solucin
de ecuaciones diferenciales y para esto, se dispone de dos tipos de mtodos de solucin:
1. Mtodos en los cuales f y , t ser evaluada solamente en los puntos (yi, ti), donde yi es el
valor de y en t = ti y que se denominan Mtodos de integracin numrica
2. Mtodos en los cuales f y , t ser evaluada adems, en puntos distintos de (yi, ti) y que se
denominarn Mtodos del tipo Runge-Kutta.

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)

yn= y t n , yn= f yn , t n (3)


t=t n1t n (4)
Como Y es la solucin verdadera, f(Yn, tn) es igual a dY/dt|t=tn, sin embargo y(t) solamente existe en
los instantes n = 1, 2, 3, ...
El intervalo de tiempo entre dos instantes consecutivos de la solucin, denominado usualmente
paso de integracin t , puede permanecer constante sobre un determinado nmero de interva-
los de la solucin, o variarse cuando consideraciones de error lo hagan deseable.
En la obtencin de los mtodos numricos para la solucin de de las ecuaciones es importante
considerar entonces:
1. cuanto error se comete en cada paso del clculo y como afecta este los pasos siguientes, esto
es, cmo se propaga el error
2. la habilidad del mtodo para estimar el error en una etapa de clculo, en funcin de los resulta-
dos obtenidos
3. la iniciacin del mtodo (se conoce la condicin inicial y0 pero como se ver, algunos mtodos
numricos requieren conocer adems, los valores de y en ms de un punto anterior para calcu-
lar el siguiente) y
4. la velocidad del mtodo.
En la presentacin siguiente de los diferentes mtodos de solucin de ecuaciones diferenciales, se
considerar la solucin de una sola ecuacin diferencial no lineal de primer orden, sin embargo
todos ellos son fcilmente extensibles al caso de un conjunto de ecuaciones diferenciales de pri-
mer orden no lineales simultneas, considerando a todas las variables y ecuaciones como vecto-
res. Si el modelo est representado por una ecuacin diferencial de orden alto, es necesario
convertirla primero en un conjunto de ecuaciones diferenciales de primer orden simultneas para
su solucin.

www.nitropdf.com
Mtodos numricos para la solucin de EDO 3

2. Mtodos del tipo Runge-Kutta


La base de todos los mtodos del tipo Runge-Kutta es expresar la diferencia entre los valores de y
en tn+1 y tn como
m
yn1y n= i k i (5)
i=1

donde los i son constantes y los


i1
ki= t f y n ij k j , t ni t (6)
j=1

con 1=0 . Dadas las constantes i , i y ij , la solucin es directa.


Los mtodos del tipo Runge-Kutta se caracterizan por
1. ser auto-iniciables
2. requerir solamente informacin del punto n para calcular la solucin en el punto n+1
3. evaluar en cada iteracin la funcin (derivada) tantas veces como el orden del mtodo, y
4. por no poseer forma de estimar en error cometido, a menos que se utilicen simultneamente
dos mtodos de distinto orden.
En los mtodos del tipo Runge-Kutta el nmero de veces que es necesario evaluar la ecuacin di-
ferencial es igual al orden del mtodo, lo cual repercute directamente sobre su velocidad. Sin
embargo a medida que aumenta el orden del mtodo, este tiene una mayor exactitud para un paso
de integracin dado, por lo que ser posible utilizar un paso de integracin mayor para un grado
de exactitud deseado.

2.1 Mtodo de Euler (Runge-Kutta de 1er orden)


Integracin rectangular
Se puede calcular el valor de la integral de y en el instante t n1=t n t , mediante la expansin
de la ecuacin (1) en una serie de Taylor
2 3 p
dy t d 2 y t d 3 y t dp y
yn1=y n t (7)
dt 2 ! dt 2 3 ! dt3 p! dtp
Sustituyendo (1) en (7) se obtiene que
t2 d f t3 d 2 f t p d p1 f
yn1=y n t f yn , t n (8)
2 ! dt 3 ! dt 2 p! dt p1

www.nitropdf.com
Mtodos numricos para la solucin de EDO 4

Si se reduce sustancialmente el valor del paso de integracin t , se pueden despreciar los


trminos con t 2 y superiores con lo que se obtiene que
yn1=y n t f yn , t n (9)
el cual es el conocido mtodo de integracin rectangular o mtodo de Euler.
La ecuacin (9) se puede reescribir para expresarla en la forma general de los mtodos del tipo
Runge-Kutta dada por (5) y (6) quedando esta entonces como
k1= t f y n , t n
(10)
yn1= ynk1
Este mtodo se dir que es de primer orden por haberse truncado los trminos que contenan ms
all de la primera potencia de t . La omisin de estos trminos dar el error por truncamiento
inherente del mtodo, el cual se dir en este caso que es O t 2 o del orden de t 2 .
El mtodo de Euler estima el valor de la solucin en el instante n + 1 a partir de la extrapolacin
del valor de la ecuacin diferencial en el instante n, tangente de la solucin, por un paso de inte-
gracin t como se muestra en la Figura 2.1.

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

2.2 Mtodo de Euler modificado (Runge-Kutta de 2 orden)


El mtodo de Euler es un mtodo de un paso y el ms simple de los mtodos del tipo Runge-Kut-
ta. Un mtodo de segundo orden o de dos pasos, est dado por las siguientes ecuaciones
k1= t f yn , t n

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

2.3 Mtodo de Euler-Cauchy modificado (Runge-Kutta de 2 orden)


Integracin trapezoidal
Este es otro mtodo de segundo orden y sus ecuaciones son
k1= t f yn , t n

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

2.4 Mtodo de la regla de Simpson (Runge-Kutta de 3er orden)


Este es un mtodo de tres pasos dado por
k1= t f y n , t n

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 .

2.5 Mtodo de Heun (Runge-Kutta de 3er orden)


Este es otro mtodo de tres pasos y est dado por
k1= t f yn , t n

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

2.6 Runge-Kutta de 4 orden (clsico)


El mtodo de Runge-Kutta de cuarto orden, es el utilizado con ms frecuencia en la simulacin de
los sistemas dinmicos y sus ecuaciones son
k1= t f yn , t n

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

2.7 Runge-Kutta-Simpson de 4 orden


Este es otro mtodo de cuarto orden con un error por truncamiento O t 5 , cuyas ecuaciones
son
k1= t f y n , t n

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

2.8 Mtodos RungeKutta de paso variable


Los mtodos del tipo Runge-Kutta no tienen forma de evaluar el error cometido en cada iteracin,
sin embargo es posible combinar dos mtodos orden diferente o utilizar un mtodo con dos pasos
de integracin diferentes, para estimar el error y en base a este, decidir si es necesario o no
cambiar el tamao del paso de integracin (reducirlo o incrementarlo), tenindose entonces un
mtodo de paso variable.
Por ejemplo, los mtodos Runge-Kutta-Fehlberg son mtodos del tipo Runge-Kutta en los cuales
se combinan dos mtodos de diferente orden, para poder estimar el error cometido en cada itera-
cin de la solucin.

www.nitropdf.com
Mtodos numricos para la solucin de EDO 10

2.8.1 Runge-Kutta-Fehlberg de 2 orden


Este mtodo est dado por las siguientes ecuaciones
k1= t ' f y n , t n

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

2.8.2 Runge-Kutta-Fehlberg de 4 orden


En este mtodo se utiliza un mtodo de quinto orden para estimar el error cometido por un mto-
do de cuarto orden y tomar decisiones sobre el tamao del paso de integracin y est dado por las
siguientes ecuaciones
k1= t ' f yn , t n

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.

2.9 Error por truncamiento y error por redondeo


Se indic anteriormente que el error producido cuando el paso de integracin t no es sufi-
cientemente pequeo para representar la solucin de la ecuacin diferencial en forma exacta, se
denomina error por truncamiento, al haber truncado la serie de Taylor y no incluir trminos ms
all de un cierto t k . Sin embargo, por otra parte consideraciones numricas as como el
tiempo total de solucin, requieren que el t no se haga demasiado pequeo. La razn para
esto es que el error por redondeo es mayor para pasos de integracin pequeos debido al gran n-
mero de iteraciones requeridas para obtener la solucin. El error por redondeo es el error re-
sultante de la imposibilidad del computador digital de representar un nmero con ms de un
nmero de cifras significativas y esto depender del largo de palabra utilizado para la represen-
tacin numrica.
Cuando el paso de integracin es grande el error dominante es el error por truncamiento, mientras
que para pasos pequeos, es ms importante el error por redondeo.

2.10 Sistemas rgidos


Se dice que un sistema es rgido cuando presenta caractersticas dinmicas lentas y rpidas en
forma simultnea, esto es que contiene unos elementos dinmicos con constantes de tiempo pe-
queas y otros con constantes de tiempo grandes, como podra ser el caso de un sistema electro-
mecnico en donde las constantes de tiempo de los componentes elctricos, pueden ser muy
pequeas en comparacin con las constantes de tiempo de los componentes mecnicos.
La presencia de dinmicas lentas y rpidas dentro del mismo sistema de ecuaciones diferenciales,
introduce dificultades al momento de obtener su solucin numrica.
Para garantizar la estabilidad y exactitud de la solucin de las ecuaciones de la parte dinmica r-
pida, se puede requerir un paso de integracin pequeo, el cual puede ser demasiado pequeo
para la solucin de la parte dinmica lenta, extendiendo innecesariamente la obtencin de la solu-
cin en todo el intervalo de solucin deseado, si el paso se mantiene constante.
Una posible solucin al problema planteado por la presencia de constantes de tiempo muy dife-
rentes, puede ser la utilizacin de mtodos de paso variable, los cuales pueden ajustar el paso de
integracin de acuerdo a los requerimientos del sistema, utilizando pasos pequeos inicialmente y
luego que la parte de dinmica rpida haya desaparecido, utilizando entonces paso de integracin
mayor, sin embargo esto tiene un costo extra por la necesidad de efectuar evaluaciones adiciona-
les de las ecuaciones diferenciales y comparaciones para determinar el ajuste del paso.
Para la solucin de los sistema rgidos son usualmente preferidos los mtodos numricos de solu-
cin de ecuaciones diferenciales basados en las frmulas de diferencias retrgradas implcitas.
Mtodos numricos para la solucin de EDO 13

2.11 Efecto del paso de integracin sobre la exactitud de la solucin


El tamao del paso de integracin utilizado para la solucin de la ecuacin diferencial, afecta di-
rectamente la exactitud de la misma. Normalmente se desea emplear el paso de integracin ma-
yor posible para obtener una solucin rpida, pero no tan grande que introduzca errores
apreciables en esta. Al utilizar los mtodos de integracin de paso fijo, es responsabilidad del
usuario la seleccin del paso de integracin adecuado.
dy
En la Figura 2.11-1 se muestra la solucin de la ecuacin diferencial =cosx; y0=0 utili-
dx
zando el mtodo de Euler (Runge-Kutta de primer orden), con cuatro pasos de integracin dife-
rentes, uno lo suficientemente pequeo para considerar la solucin como exacta. Se puede
apreciar fcilmente como se deteriora la solucin a medida que se aumenta el paso de integracin
y la necesidad de utilizar pasos suficientemente pequeos para tener una solucin con un error
mnimo.

Solucin de py(x)=cos(x) por el mtodo de Euler (RK-1)


2

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

Figura 2.11-1 Efecto del paso de integracin mtodo de Euler


En la Figura 2.11-2 se muestra la solucin de la misma ecuacin diferencial anterior pero
utilizando ahora el mtodo de Simpson (Runge-Kutta de tercer orden) y los mismos pasos de
integracin empleados anteriormente. En este caso se puede apreciar que para un mismo tamao
de paso, la solucin con el mtodo de Simpson es mucho ms exacta que la obtenida con el
mtodo de Euler.
Mtodos numricos para la solucin de EDO 14

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.

Solucin de py(x)=cos(x) por el mtodo de Simpson (RK-3)


1

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

Figura 2.11-1 Efecto del paso de integracin mtodo de Simpson

www.nitropdf.com
Mtodos numricos para la solucin de EDO 15

3. Mtodos de integracin numrica


La expresin general de los mtodos de integracin numrica est dada por
p p
yn1= a i yn i t b i yn i (26)
i=0 i=1

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.

3.1 Frmulas directas, Mtodos de Adams-Bashforth


Las frmulas directas (abiertas) pueden utilizarse solas. Al uso de las frmulas directas de Ada-
ms solas, se les llama mtodos o predictores de AdamsBashforth.
Los mtodos de Adams-Bashforth ms utilizados son los de segundo y cuarto orden. Como se
podr apreciar en sus ecuaciones, estas requieren del conocimiento de la derivada evaluada en
uno o hasta tres instantes anteriores respectivamente, por lo que la solucin de la ecuacin
Mtodos numricos para la solucin de EDO 16

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 .

3.2 Frmulas implcitas, Mtodos de Adams-Moulton


Las frmulas implcitas (cerradas) no pueden utilizarse solas y se les llamar mtodos o co-
rrectores de Adams-Moulton.
3.2.1 Mtodo de segundo orden
Este mtodo est dado por la ecuacin
1
yn1=y n t[ yn1 y n ] (29)
2
el cual es comnmente llamado mtodo trapezoidal cerrado.
3.2.2 Mtodo de cuarto orden
Esta frmula est dada por la ecuacin
1
yn1=y n t [9 y n119 y n5 yn 1 y n2] (30)
24

3.3 Mtodos predictor - corrector


Si bien las frmulas directas se pueden utilizar solas, proveyndoles la informacin de arranque
necesaria, las frmulas implcitas no pueden emplearse solas.
Para poder hacer uso de las frmulas de integracin numrica para el clculo de yn+1 cuando
b1 0 , se debe obtener primero una estimacin del valor de yn+1 denominado y0
n1
, calcular
luego f y0
n1 , t n1
y utilizar (26) paras calcular y1
n1
.
Mtodos numricos para la solucin de EDO 17

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

3.3.2 Mtodo de Adams-Bashforth-Moulton de 4 orden


Al uso de una frmula de Adams abierta (predictor) junto con una frmula de Adams cerrada (co-
rrector) se le conoce como mtodo de Adams-BashforthMoulton, siendo el de 4 orden
Predictor
0 1
yn1=y n t [55 y n59 y n137 yn 29 y n3]
24
(32a)
0 0
yn1= f y n1 , t n t
Corrector
j1 1 j
yn1 = yn t [9 y n119 yn5 yn 1 yn 2] (32b)
24
Mtodos numricos para la solucin de EDO 18

3.3.3 Mtodo de Milne de 4 orden


Este es otro mtodo predictor corrector con un error O t 5 cuyas ecuaciones son
Predictor
4
yn1
0
=y n3 t[2 y n y n12 y n2]
3
(33a)
0 0
yn1= f y n1 , tn t
Corrector
1
yn1
j1
= yn 1 t [ yn1
j
4 yn yn 1] (33b)
3
3.3.4 Mtodo de Milne de 6 orden
Este es un mtodo predictor corrector con un error O t 7 cuyas ecuaciones son
Predictor
0 3
yn1=y n5 t[11 yn14 yn 126 y n214 yn 311 y n4]
10
(34a)
0 0
yn1= f y n1 , t n t
Corrector
j1 2 j
yn1 = yn 3 t[7 yn132 yn 12 yn 132 y n27 yn 3 ] (34b)
45

3.4 Algoritmo de solucin


La utilizacin combinada de los mtodos de integracin del tipo Runge-Kutta con los mtodos
numricos predictor corrector, permite desarrollar un algoritmo de solucin de ecuaciones dife-
renciales de paso variable el cual en trminos generales comprendera:
1. Utilizar un algoritmo RungeKutta para iniciar la solucin y obtener la informacin requerida
por el mtodo predictor corrector
2. En cada iteracin
Predecir el valor de yn1
0

Corregir para obtener y1


n1

3. Si la diferencia porcentual ente el valor predicho y el corregido es menor que un valor


arbitrariamente pequeo, pero mayor que un valor dado, entonces continuar
Mtodos numricos para la solucin de EDO 19

4. Si la diferencia anterior no es menor que , utilizar entonces nuevamente el corrector obte-


niendo y2n1
. Si en dos iteraciones del corrector no se logra la precisin deseada, entonces
el paso de integracin debe dividirse a la mitad y volver a utilizar el mtodo de RungeKutta a
partir del punto n para continuar la solucin, cambiando nuevamente al mtodo predictor co-
rrector cuando se tenga la informacin requerida por este
5. Si la diferencia ente el valor predicho y el corregido es menor que , entonces el error co-
metido es muy pequeo y se puede acelerar la solucin aumentando el paso de integracin al
doble, continuar con el mtodo RungeKutta y luego el predictor corrector nuevamente
6. El mtodo continuar doblando o dividiendo por dos el paso de integracin de manera de man-
tener el error por truncamiento local dentro de los lmites establecidos y tratando en todo caso
de usar el paso de integracin mayor posible para obtener una solucin rpida.
Mtodos numricos para la solucin de EDO 20

4. Ejemplos del uso de algunos mtodos


Los programas de diseo de sistemas de control asistido por computadora (CACSD) MATLAB y
Scilab, as como los de simulacin digital de sistemas dinmicos Simulink y VisSimTM,
incorporan varias rutinas para la solucin de ecuaciones diferenciales ordinarias, o ODE
Solvers por sus siglas en ingls, por lo que al utilizarlos usualmente no es necesario su
programacin a menos que se desee emplear un mtodo diferente o realizar comparaciones entre
algunos mtodos no incluidos en ellos.

4.1 Mtodo de la regla de Simpson en MATLAB


dy
=yt1 empleando el
El siguiente es el grfico de la solucin de la ecuacin diferencial
dt
mtodo de Simpson, un Runge-Kutta de 3er orden, y el correspondiente listado de las instruccio-
nes en MATLAB.

Solucin de p y= -y + 1 por el Mtodo de Simpson


1

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

4.2 Mtodo de Adams-Bashforth de 2 orden en Scilab


El siguiente es el listado de instrucciones en Scilab y el grfico de la solucin de la ecuacin dife-
dy
rencial =0.025 ytt empleando el mtodo de Adams-Bashforth de 2 orden.
dt

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

y(t) Solucin de p y= -0.025 y + t por el mtodo de Adams-Bashforth de 2 orden

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

4.3 Solucin de una ecuacin diferencial de segundo orden


Para obtener la solucin de una ecuacin diferencial de orden n, esta debe convertirse en un
conjunto de n ecuaciones diferenciales de primer orden.
Por ejemplo, la ecuacin diferencial lineal de segundo orden
2
d y dy
a1 a0 y t=b0 u t (35)
dt
2
dt
puede convertirse en dos ecuaciones diferenciales de primer orden definiendo
x1 t= yt , x2 t=dy /dt (36)
para obtener
dx1 dx2
=x 2 t , =a0 x1 ta1 x2 tb 0 u t (37)
dt dt

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

El siguiente es el grfico de la solucin de la ecuacin diferencial de segundo orden


2
d y dy
1.5 3 y t=3 empleando el mtodo de Euler, y el correspondiente listado de las
dt 2
dt
instrucciones en MATLAB.
Aunque la respuesta de y(t) se muestra en el grfico como una lnea continua, debe recordarse que
la solucin de la ecuacin diferencial solo existe en los instantes {ti} en los cuales se calcul.

%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

Solucin de (p2 + 1.5 * p + 3) y(t) = 3 por el mtodo de Euler


1.4

1.2

0.8
y(t)

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8
tiempo

4.4 ODE Solvers en MATLAB y Simulink


MATLAB y Simulik comparten el mismo conjunto de rutinas para la solucin de ecuaciones dife-
renciales ordinarias el cual incluye los siguientes mtodos:
4.4.1 Mtodos de paso variable
Sistemas no rgidos
ode45 - frmula Runge-Kutta (4,5) explcita, Dormand-Prince, exactitud media
(mtodo utilizado por omisin)
ode23 - frmula Runge-Kutta (2,3) explcita, Bogacki-Shampine, exactitud baja
ode113 - frmula de Adams-Bashforth-Moulton (1,13), exactitud baja a alta
Sistemas rgidos
ode15s - frmula de diferencias retrgradas, Klopfenstein-Shampine (1,5),
exactitud baja a alta
ode23s - frmula de modificada de Rosenbrock (2,3), exactitud baja
ode23t - integracin trapezoidal, sistema moderadamente rgidos, exactitud baja
ode23tb - mtodo hbrido, trapezoidal diferencias retrgradas, exactitud baja
Mtodos numricos para la solucin de EDO 26

4.4.2 Mtodos de paso fijo (solo en Simulink)


ode1 - frmula de Euler
ode2 - frmula de Euler modificada
ode3 - versin de paso fijo del ode23
ode4 - frmula Runge-Kutta de 4 orden
ode5 - versin de paso fijo del ode45
4.4.3 Ejemplo
El llamado general a las rutinas de solucin de ecuaciones diferenciales en MATLAB es
[t,y] = odesolver('f',intervalo,yo)
en donde odesolver es el nombre del mtodo a utilizar, seleccionado de entre los listados en 4.4.1
o 4.4.2.
El siguiente es el listado de instrucciones y el grfico correspondiente para la solucin de un siste-
ma de control proporcional de una planta de segundo orden utilizando el ode45 de Matlab.

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

El modelo a resolver debe proporcionarse en un archivo separado.

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

Ejemplo del uso de la rutina ODE45


1

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

4.5 ODE Solvers en Scilab


Al igual que MATLAB el programa Scilab provee varias rutinas para la solucin de un conjunto
de ecuaciones diferenciales ordinarias no lineales.
El llamado general al mtodo de solucin es
y = ode([tipo],yo,to,t,f)
en donde el tipo define la rutina a utilizar tenindose disponibles las siguientes:
adams - mtodo predictor -corrector de Adams, sistemas no rgidos
stiff - mtodo de diferencias retrgradas, sistemas rgidos
rk - Runge-Kutta de 4 orden, paso variable
rkf - Runge.Kutta-Felhberg (4,5), Shampine-Watts, sistemas no rgidos o de
rigidez moderada
Mtodos numricos para la solucin de EDO 28

fix - igual a rkf, menos argumentos en la llamada


root - rutina de solucin con capacidad de encontrar races
discrete- simulacin en tiempo discreto
omisin - selecciona automticamente entre adams y stiff
El siguiente es el listado de instrucciones en Scilab y el grfico correspondiente, para la obtencin
del movimiento en el plano de fase de los estados de un sistema de segundo orden libre y con
condiciones iniciales diferentes de cero, utilizando la instruccin ode.

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

//llamado al "ode solver" con el mtodo Runge-Kutta de 4 orden


x=ode('rk',[4;6],0,t,modelo);
//
//dibujar el plano de fase
plot2d(x(1,:),x(2,:),style=5)
xgrid(4),xtitle('','x1','x2')
//
//el cambio de la posicin de los ejes coordenados
//y del tamao y color de las escalas y leyendas,
//se realiz con las facilidades de Scilab
//para la edicin de las propiedades de las figuras

4.6 Mtodos de integracin en VisSim


Este programa de simulacin digital permite seleccionar entre los siguientes mtodos de solucin
del sistema dinmico:
Euler
Trapezoidal
Runge-Kutta 2 orden (Euler modificado)
Runge-Kutta de 4 orden
Runge-Kutta de 5 orden (paso variable)
Bulirsh-Stoer (polinomios racionales)
Euler (diferencias retrgradas), para sistemas rgidos
Mtodos numricos para la solucin de EDO 30

5. Comparacin de los mtodos de solucin de EDO


Como se ha indicado anteriormente, la exactitud de un mtodo numrico de solucin de ecuacio-
nes diferenciales depende de su tipo y orden, y del pasado de integracin utilizado. Es de utilidad
contar entonces con una programa o herramienta que permita comparar las caractersticas de la
solucin de una ecuacin diferencial, utilizando diferentes mtodos de solucin y diferentes pasos
de integracin.
El programa SysQuake (Calerga, Suiza), es un programa CACSD similar en cierta forma al Ma-
tlab, pero que incorpora facilidades extra para al interaccin entre el usuario y los programas de-
sarrollados en este.
dx
A continuacin se presenta la solucin de la ecuacin diferencial=0.5 x22 obtenida uti-
dt
lizando el mtodo de Euler y el Runge-Kutta de cuarto orden con un paso de integracin
t=0.80 y el programa ucr.ie431.solucin_edo.sq1 Versin 1.22 desarrollado en SysQuake
LE.
Este programa permite seleccionar entre los siguientes mtodos de solucin de ecuaciones dife-
renciales:
Euler
Euler modificado
Integracin trapezoidal
Regla de Simpson
Heun
Runge-Kuta de 4 orden
Runge-Kutta-Simpson
Se puede variar el paso de integracin t para ver su efecto en la solucin diferencial y
tambin cambiar la ecuacin diferencial que se desea resolver.
Mtodos numricos para la solucin de EDO 31

Solucin de la EDO por el mtodo de Euler Paso de integracin

Y(t)
"Exacta"
Euler
dt (0.800):

Mtodo de solucin numrica


1

Euler Euler modificado


Trapezoidal Simpson
Heun Runge-Kutta
Runge-Kutta-Simpson

0
0 10 t(s)

Solucin de la EDO por Runge-Kutta 4 orden Paso de integracin

Y(t)
"Exacta"
Runge-Kutta
dt (0.800):

1 Mtodo de solucin numrica

Euler Euler modificado


Trapezoidal Simpson
Heun Runge-Kutta
Runge-Kutta-Simpson

0
0 10 t(s)

www.nitropdf.com
Mtodos numricos para la solucin de EDO 32

Bibliografa

Aragn, M. (2003) - Desarrollo de herramientas en SysQuake para el curso Sistemas de Con-


trol, Proyecto Elctrico, Escuela de Ingeniera Elctrica, Universidad de Costa Rica
Burden, R.L. y J.D. Faires (1998) Anlisis Numrico, Sexta Edicn, Mxico, International
Thompson Editores
Calerga Sarl (2003) - SysQuake 2 User Manual, Lausana, Suiza
Gomez, C. (Editor) (1999) - Engineering and Scientific Computing with Scilab, New York,
NY, EUA, Birkhuser Boston
Guy, J.L. (1982) - Modeling process systems via digital computers, Chemical Engineering
(EUA), Marzo 8
INRIA Group (2001) Scilab Reference Manual, Institut National de Recherche en Informa-
tique et en Automatique Project Meta 2, Rocquencourt, Francia
Ketter, R.L. y S.P. Prawel (1969) Modern Methods of Engineering Computation, New York,
NY, EUA, McGraw-Hill, Inc.
Kochenburger, R.J. (1972) - Computer Simulation of Dynamic Systems, Englewood Cliffs, NJ,
EUA, Prentice-Hall, Inc.
Korn, G.A. y J.V. Wait (1978) Digital Continuos System Simulation, Englewood Cliffs, NJ,
EUA
Ralston, A. (1965) - A First Course in Numerical Analysis, Tokyo, Japn, McGraw-
Hill/Kogakusha Co.
Shampine, L.F. y M.W. Reichelt (1997) The MATLAB ODE Suite, SIAM Journal of Scienti-
fic Computing (EUA), Vol. 18 N 1, pg. 1-22
The Matworks, Inc. (2002) - Using Matlab- Version 6, Natick, MA, EUA
The Matworks, Inc. (2002) - Using Simulink- Version 5, Natick, MA, EUA
Thomas, B. (1986) - The Runge-Kutta Methods, Byte (EUA), Abril
Visual Solutions, Inc. (1999) - VisSimTM User Guide Version 3, Westford, MA, EUA