Anda di halaman 1dari 32

Departamento de Automtica

IE 431 Sistemas de Control

Mtodos numricos para la solucin de ecuaciones diferenciales ordinarias (EDO)

Prof. Ing. Vctor M. Alfaro

Febrero de 2002 Rev. Febrero de 2003

IE-431

Mtodos numricos para la solucin de EDO

TABLA DE CONTENIDO 1.0 Introduccin.......................................................................................1


1.1 Planteamiento del problema....................................................................1

2.0 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 2.8.2 Runge-Kutta-Fehlberg de 4 orden 10 11

2.9 Error por truncamiento y error por redondeo....................................12 2.10 Sistemas rgidos.....................................................................................12

3.0 Mtodos de integracin numrica..................................................14


3.1 Frmulas directas, Mtodos de Adams-Bashforth..............................14
3.1.1 Mtodo de segundo orden 3.1.2 Mtodo de cuarto orden 15 15

3.2 Frmulas implcitas, Mtodos de Adams-Moulton..............................15


3.2.1 Mtodo de segundo orden 3.2.2 Mtodo de cuarto orden 15 15

3.3 Mtodos predictor - corrector...............................................................15


3.3.1 Mtodo trapezoidal modificado (2 orden) 3.3.2 Mtodo de Adams-Bashforth-Moulton de 4 orden 3.3.3 Mtodo de Milne de 4 orden 16 16 17

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

3.3.4 Mtodo de Milne de 6 orden

17

3.4 Algoritmo de solucin.............................................................................17

4.0 Ejemplos del uso de algunos mtodos............................................19


4.1 Mtodo de la regla de Simpson en MATLAB......................................19 4.2 Mtodo de Adams-Bashforth de 2 orden en Scilab............................20 4.3 Solucin de una ecuacin diferencial de segundo orden.....................21 4.4 ODE Solvers en MATLAB y Simulink.............................................24
4.4.1 Mtodos de paso variable 4.4.2 Mtodos de paso fijo 4.4.3 Ejemplo 24 24 24

4.5 ODE Solvers en Scilab........................................................................27 4.6 Mtodos de integracin en VisSim........................................................27

5.0 Bibliografa.......................................................................................28

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

1.0 Introduccin
El estudio de los procesos dinmicos y sus sistemas de control, se inicia con la obtencin de una representacin matemtica de las relaciones existentes entre las diferentes variables involucradas en el proceso a controlar, a la que usualmente llamamos modelo del sistema. El proceso de modelado de un sistema dinmico nos puede llevar a obtener una representacin 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 debe obtenerse 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 dificultades 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 ecuaciones 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 , y t0  y0 dt (1)

para encontrar y en una secuencia de valores de la variable independiente t {ti} dentro de un intervalo 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.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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 , Y n  t  t n 1 t n dY dt
t t n

 f Y n , tn

(2) (3) (4)

y n y t n , y n f y n , t n

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 intervalos de la solucin, o cambiarse 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 resultados 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 calcular el siguiente, y 4. la velocidad del mtodo. En la presentacin 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 primer orden no lineales simultneas, considerando a todas las variables y ecuaciones como vectores. Si el modelo est representado por una ecuacin diferencial de orden alto, esta debe convertirse primero en un conjunto de ecuaciones diferenciales de primer orden simultneas para su solucin.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

2.0 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 y n 1 y n 
m i 1 i

ki

(5)

donde los i son constantes y los k i t f y n U


i 1 j 1 ij

k j , tnU

(6)

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 diferencial 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 n 1 t n t , mediante la expansin de la ecuacin (1) en una serie de Taylor
 2  3  p p  dy  t d 2 y  t d 3 y  t d y   y n 1  y n  t 2 3 2 ! dt 3 ! dt dt p ! dtp 

(7)

Sustituyendo (1) en (7) se obtiene que


y n 1  y n  t f  y n , t n 
 

t d f t d2 f t p d p 1 f  2 ! d t  3 ! d t 2   p ! d t p 1 
2 3

(8)

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

Si se reduce sustancialmente el valor del paso de integracin, los trminos con t 2 y superiores con lo que se obtiene que y n 1 y n U t f y n , t n

t , se pueden despreciar (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 expresada entonces como k 1 t f y n , t n y n 1 y n U k 1 (10)

Este mtodo se dir 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 trunca 2 miento inherente del mtodo, el cual se dir en este caso que es O o del orden de t 2 t . El mtodo de Euler estima el valor de la solucin en el siguiente instante a partir de la extrapolacin del valor de la ecuacin diferencial por un paso de integracin t como se muestra en la Figura 2.1.

y(t)

k1 = t f(fn, tn) yn+1 = yn + k1


1

y n+1
f(y n , t n )

y(t)

k1
yn
0

t
tn t n+1

Fig. 2.1 - Integracin rectangular

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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-Kutta. Un mtodo de segundo orden o dos pasos est dado por las siguientes ecuaciones k 1 t f y n , t n

1 1 k 2 t f y n U k 1 , t n U 2 2 y n 1 y n U k 2

(11)

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 integracin extendindolo a todo su ancho segn se aprecia en la Figura 2.2.

y(t)

k1 = t f(yn, tn) k2 = t f(yn+k1/2, tn+t/2) yn+1 = yn + k2


y(t) f(yn+k1/2, tn+t/2)
1

yn+1 yn

f(yn, tn)
0

k2

tn

tn+t/2

tn+1

Fig. 2.2 - Mtodo de Euler modificado

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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 k 1 t f y n , t n

k 2 t f y n U k 1 , t n U t y n 1 y n U 1 k Uk ( 2 1 2

(12)

El mtodo de integracin trapezoidal utiliza un promedio del valor de la ecuacin diferencial al inicio y final del paso de integracin como se indica en la Figura 2.3.

y(t)
f(y'n+1, tn+1)

k1 = f(yn, tn) k2 = f(yn+k1, tn+t) yn+1 = yn + [k1+k2]/2

y'n+1 yn+1
f(yn, tn)

y(t)
2

(k1+k 2)/2

yn

{f(yn, tn) + f(y'n+1, tn+1)}/2

tn

tn+1

Fig. 2.3 - Integracin trapezoidal

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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


Este es un mtodo de tres pasos dado por k 1 t f y n , t n

1 1 k 2 t f y n U k 1 , t n U 2 2

t (13)

k 3  t f y n  k 1 U2 k 2 , t n U t y n 1 y n U 1 k U 4 k 2U k 3 ( 6 1
4 . t

con un error por truncamiento O

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


Este es otro mtodo de tres pasos y est dado por k 1 t f y n , t n

1 1 k 2 t f y n U k 1 , t n U 3 3 2 2 k 3 t f y n U k 2 , t n U 3 3 y n 1 y n U 1 k U3 k 3 ( 4 1

t (14) t

con un error por truncamiento O

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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 k 1 t f y n , t n

1 1 k 2 t f y n U k 1 , t n U 2 2 1 1 k 3 t f y n U k 2 , t n U 2 2 k 4 t f y n U k 3 , t n U t y n 1 y n U

(15)

1 k U 2 k 2 U2 k 3 U k 4 ( 6 1
5 siendo adems mucho ms estable t

El error por truncamiento de este mtodo es O que los anteriores.

Existen varios mtodos Runge-Kutta de 4 orden. Adems del anterior, cuyos coeficientes se atribuyen a Kutta, existe el Runge-Kutta-Gill en que se minimiza la memoria utilizada, el Runge-Kutta-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 ecuaciones del sistema para poder estimar el error y tomar decisiones sobre el tamao del paso y otros ms.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

2.7 Runge-Kutta-Simpson de 4 orden


Este es otro mtodo de cuarto orden con un error por truncamiento O ciones son k 1 t f y n , t n
5 , cuyas ecuat

1 1 k 2 t f y n U k 1 , t n U 3 3

1 2 k 3 t f y n  k 1U k 2 , t n U 3 3

(16)

k 4 t f y n U k 1 k 2U k 3 , t n U t y n 1 y n U 1 k U 3 k 2 U3 k 3 U k 4 ( 8 1

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 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 iteracin de la solucin.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

2.8.1 Runge-Kutta-Fehlberg de 2 orden Este mtodo est dado por las siguientes ecuaciones k 1 t ' f yn , tn 1 1 y nU k 1 , t nU 2 2 t' (17)

k 2 t ' f k 3 t ' f y n 1 y n U donde

1 255 y nU k 1U k , t U t' 256 256 2 n 1 255 1 k 1U k 2U k 512 256 512 3

Error W ErrAbs U ErrRel y n 1

t ' es el paso de integracin variable, el cual debe dividirse a la mitad si el (18)

y puede duplicarse si el

Error V ErrAbs U ErrRel y n 1 100 Error 

donde

k 1 k 3 512

(19)

(20)

es el error por truncamiento estimado y ErrAbs y ErrRel son el error absoluto y relativo utilizados para controlar el paso de integracin.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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 mtodo de cuarto orden y tomar decisiones sobre el tamao del paso de integracin y est dado por las siguientes ecuaciones k 1 t ' f yn , tn 1 1 y nU k 1 , t nU 4 4 y nU t'

k 2 t ' f k 3 t ' f k 4 t ' f k 5 t ' f k 6 t ' f donde R

3 9 3 k 1U k 2 , t n U 32 32 8

t' (21) t'

1932 7200 7296 12 y nU k 1 k 2U k 3, t n U 2197 2197 2197 13 y nU y n

439 3680 845 k 1 8 k 2 U k 3 k t U t' 216 513 4104 4, n 8 3544 1859 11 1 k 1U 2 k 2  k 3U k 4 k 5, t n U 27 2565 4104 40 2

t'

t ' es el paso de integracin variable. 1 1 128 2197 1 2 k 1 k 3 k 4 U k 5U k 6 4275 75240 50 55 t ' 360

Se calcula

(22)

siendo este

t'  y n 1 5 y n 1 4  , y 2

(23) (24)

0.84 TolE R 1
4

Si R T o lE , donde TolE es la tolerancia o error permitido en la solucin, se calcula el nuevo punto de la solucin y n 1 y n U 25 1408 2197 1 k 1U k 3U k 4 k 5 216 2565 4104 5 (25)

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.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

Si R T o lE , 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 suficientemente 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 nmero de iteraciones requeridas para obtener la solucin. El error por redondeo es el error resultante 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 representacin 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 pequeas y otros con constantes de tiempo grandes, como podra ser el caso de un sistema electromecnico 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 rpida, 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 solucin 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 diferentes 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 adicionales de las ecuaciones diferenciales y comparaciones para determinar el ajuste del paso.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

Para la solucin de los sistema rgidos son usualmente preferidos los mtodos numricos de solucin de ecuaciones diferenciales basados en las frmulas de diferencias retrgradas implcitas.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

3.0 Mtodos de integracin numrica


La expresin general de los mtodos de integracin numrica est dada por y n 1 a i y n i U t  bi y n i
p p i 0 i 1

(26)

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) b10 , yn+1 est expresado como una combinacin lineal de los valores conocidos de y y y y es fcil de calcular. Las frmulas con b 1 0 se denominan frmulas de integracin directa o abiertas

Si b1%0 , la ecuacin (26) es una funcin implcita de yn+1 porque y n 1 f y n 1 , t n 1 y se puede resolver solamente por procedimientos iterativos. Las frmulas con b
1%0 se denominan 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 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 nmero 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 tamao 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 Adams 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

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

la ecuacin 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 y n 1 y n U 1 2 t 3 y n  y n 1 (
3 . t

(27)

cuyo error por truncamiento es O 3.1.2 Mtodo de cuarto orden

Esta frmula directa est dada por la ecuacin y n 1 y n U 1 24 t 55 y n 59 y n 1U37 y n 29 y n 3 (
5 . t

(28)

con un error por truncamiento O

3.2 Frmulas implcitas, Mtodos de Adams-Moulton


Las frmulas implcitas (cerradas) no pueden utilizarse solas. 3.2.1 Mtodo de segundo orden Este mtodo est dado por la ecuacin y n 1 y n U 1 2 t y n 1 y n ( (29)

el cual es comnmente llamado mtodo trapezoidal cerrado. 3.2.2 Mtodo de cuarto orden Esta frmula est dada por la ecuacin y n 1 y n U 1 24 t 9 y n 1U19 y n 5 y n 1U y n 2 ( (30)

3.3 Mtodos predictor - corrector


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

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,

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

crendose as los mtodos 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 (integracin 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 dadas por Predictor
y n0  y nU 1

1 2

t 3 y n  y n 1 ( (31)

y n0  f y n0 , t nU t 1 1

Corrector y n 1 y n U 1 2
t y n U yn( 1
0

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 (corrector) se le conoce como mtodo de Adams-BashforthMoulton, siendo el de 4 orden Predictor
y n0  y nU 1

1 24

t 55 y n 59 y n 1U37 y n 29 y n 3 ( (32)

y n0  f y n0 , t nU t 1 1

Corrector
1 y nj  y nU 1

1 24

t 9 y nj U19 y n 5 y n 1U y n 2 ( 1

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

3.3.3 Mtodo de Milne de 4 orden Este es otro mtodo predictor corrector con un error O Predictor
y n0  y n 3 U 1 5 cuyas ecuaciones son t

4 3

t 2 y n  y n 1U2 y n 2 ( (33)

0 y n0 , t nU t  f y n 1 1

Corrector y nj11  y n 1U

1 3

t y nj U 4 y n U y n 1 ( 1 7 cuyas ecuaciones son t

3.3.4 Mtodo de Milne de 6 orden Este es un mtodo predictor corrector con un error O Predictor
y n0  y n 5 U 1

3 10

t 11 y n 14 y n 1U26 y n 214 y n 3U11 y n 4 ( (34)

y n0 , t nU t  f y n0 1 1

Corrector y nj11  y n 3U

2 45

t 7 y nj U32 y n U12 y n 1U32 y n 2U 7 y n 3 ( 1

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 diferenciales 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 y n0
1 Corregir para obtener y n1
1

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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 4. Si la diferencia anterior no es menor que , utilizar entonces nuevamente el corrector 2 obteniendo y n 1 . 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 corrector 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 cometido 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 mantener 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.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

4.0 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 VisSim, 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  y t U1 emdt pleando el mtodo de Simpson, un Runge-Kutta de 3er orden, y el correspondiente listado de las instrucciones en MATLAB. El siguiente es el grfico de la solucin de la ecuacin diferencial
Solucin de p y= -y + 1 por el mtodo de Euler 1 0.9 0.8 0.7 0.6 y(t) 0.5 0.4 0.3 0.2 0.1 0

0.5

1.5

2.5 tiempo

3.5

4.5

%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 clear; %definir la ecuacin diferencial f=inline('-y+1','y','t');

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

% yo=0.;to=0;dt=0.25;tf=5; y(1)=yo;t(1)=to; n=0; while t(n+1) < tf 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,'+k'); 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


dy 0.025 y t U t dt empleando el mtodo de Adams-Bashforth de 2 orden, y el correspondiente listado de las instrucciones en Scilab. El siguiente es el grfico de la solucin de la ecuacin diferencial

Solucin de p y= -0.025 y + t por el m todo d e Adam s-Bashforth de 2 orden y(t) 50

40

30

20

10


1 2

tiem po 4 5 6 7 8 9 10

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

//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; //definir la ecuacin diferencial deff('py=f(y,t)','py=-0.025*y+t'); // yo=0.;to=0;dt=0.25;tf=10; y(1)=yo;t(1)=to; n=0; //arranque con integracin trapezoidal n=n+1; k1=dt*f(y(n),t(n)); 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) < tf 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 los resultados xname('Solucin numrica de ecuaciones diferenciales'); xset('mark size',1,18); plot2d(t,y,style=-1); xgrid(1);xset('font',3,2); xtitle('Solucin de p y= -0.025 y + t por el mtodo de AdamsBashforth de 2do orden','tiempo','y(t)');

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 d2 y dt
2

U a1

dy U a0 y t  b0 u t dt

puede convertirse en dos ecuaciones diferenciales de primer orden definiendo x 1 t  y t , x 2 t  dy dt dx1 dt x2 t , dx2 dt

para obtener  a 0 x 1 t  a1 x 2 t U b0 u t

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

Para el caso de una ecuacin diferencial lineal de orden alto (n) dada por dn y dt
n

U a n 1

d n 1 y dt
n 1

U3U a1

dy U a0 y t  b0 u t dt

definiendo dy d n 1 y x 1 t  y t , x 2 t  , 3 , x n  n 1 dt dt se puede convertir en un conjunto de n ecuaciones diferenciales de primer orden dado por x 1 x 2 x 2 x 3 2 x n  a0 x 1 a1 x 23 an 1 x n U b 0 u t

En el caso general de un conjunto de n ecuaciones diferenciales de primer orden no lineales se tendra


x 1 t f 1 x 1 , x 2 , , x n ; u ; t
x 2 t
f 2 x 1 , x 2 , , x n ; u ; t
x n  t  f n  x 1 , x 2 ,  , x n ; u ; t 

 

las cuales deben ser resueltas en forma simultnea. El siguiente es el grfico de la solucin de la ecuacin diferencial de segundo orden d2 y dy U1.5 U3 y t 3 empleando el mtodo de Euler, y el correspondiente listado de 2 dt dt las 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=3 clear; %definir la ecuacin diferencial (2 ecu.dif. de 1er orden) f1=inline('x2','x1','x2','t'); f2=inline('-1.5*x2-3*x1+3','x1','x2','t'); % x1o=0.;x2o=0;to=0;dt=0.05;tf=8.0; x1(1)=x1o;x2(1)=x2o;t(1)=to; n=0; while t(n+1) < tf

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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,'k'); grid on; title('Solucin de (p^2 + 1.5 * p + 3) y(t) = 3 por el mtodo de Euler'); xlabel('tiempo');ylabel('y(t)');

2 Solucin de + (p 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

4 tiempo

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

4.4 ODE Solvers en MATLAB y Simulink


MATLAB y Simulik comparten el mismo conjunto de rutinas para la solucin de ecuaciones diferenciales ordinarias el cual incluye los siguientes mtodos: 4.4.1 Mtodos de paso variable

Sistemas no rgidos

ode45 ode23 -

frmula Runge-Kutta (4,5) explcita, Dormand-Prince, exactitud media (mtodo utilizado por omisin) frmula Runge-Kutta (2,3) explcita, Bogacki-Shampine, exactitud baja

ode113 - frmula de Adams-Bashforth-Moulton (1,13), exactitud baja a alta 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 ode1 ode2 ode3 ode4 ode5 frmula de Euler frmula de Euler modificada versin de paso fijo del ode23 frmula Runge-Kutta de 4 orden versin de paso fijo del ode45

Sistemas rgidos

4.4.2 Mtodos de paso fijo


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 grfico y el listado de instrucciones correspondiente para la solucin de un sistema de control proporcional de una planta de segundo orden utilizando el ode45.

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

%Ejemplo 4.4 %Utilizacin de la rutina ode45 (Runge-Kutta 4/5) %las ecuaciones diferenciales (modelo) estn contenidas %en el archivo modelo44.m % clear; %Intervalo de solucin to=0;tf=16; %llamado al "ode solver" [t,y]=ode45('modelo44',[to tf],[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 modelo44.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=3.0; %realimentacin e=r-x(1); %controlador u=Kc*e; %planta px1=x(2); px2=-x(1)-0.5*x(2)+u; px=[px1; px2];

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

Ejemplo del uso de la rutina ODE45 1.4

1.2

0.8 y(t) 0.6 0.4 0.2 0 0

8 tiempo, seg

10

12

14

16

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

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 stiff rk rkf fix root discreteomisin -

mtodo predictor -corrector de Adams, sistemas no rgidos mtodo de diferencias retrgradas, sistemas rgidos Runge-Kutta de 4 orden, paso variable Runge.Kutta-Felhberg (4,5), Shampine-Watts, sistemas no rgidos o de rigidez moderada igual a rkf, menos argumentos en la llamada rutina de solucin con capacidad de encontrar races simulacin en tiempo discreto selecciona automticamente entre adams y stiff

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

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

IE-431

Mtodos numricos para la solucin de EDO

5.0 Bibliografa
1. 2. 3. 4. 5. 6. 7. 8. 9. Burden, R.L. y J.D. Faires Anlisis Numrico, Sexta Edicn, Mxico, International Thompson Editores, 1998 Gomez, C. (Editor) - Engineering and Scientific Computing with Scilab, New York, NY, EUA, Birkhuser Boston, 1999 Guy, J.L. - Modeling process systems via digital computers, Chemical Engineering (EUA), Marzo 8 1982 INRIA Group Scilab Reference Manual, Institut National de Recherche en Informatique et en Automatique Project Meta 2, Rocquencourt, Francia, 2001 Ketter, R.L. y S.P. Prawel Modern Methods of Engineering Computation, New York, NY, EUA, McGraw-Hill, Inc., 1969 Kocehnburger, R.J. - Computer Simulation of Dynamic Systems, Englewood Cliffs, NJ, EUA, Prentice-Hall, Inc., 1972 Korn, G.A. y J.V. Wait Digital Continuos System Simulation, Englewood Cliffs, NJ, EUA, 1978 Ralston, A. - A First Course in Numerical Analysis, Tokyo, Japn, McGraw-Hill/Kogakusha Co., 1965 Shampine, L.F. y M.W. Reichelt The MATLAB ODE Suite, SIAM Journal of Scientific Computing (EUA), Vol. 18 N 1, pg. 1-22, 1997

10. The Matworks, Inc. Using Matlab - Version 5, Natick, MA, EUA, 1999 11. The Matworks, Inc. Using Simulink - Version 3, Natick, MA, EUA, 1999 12. Thomas, B. - The Runge-Kutta Methods, Byte (EUA), Abril 1986 13. Visual Solutions, Inc. - VisSim User Guide Version 3, Westford, MA, EUA, 1999

Vma.ucr.ie431.met_num.sxw

V.M. Alfaro

Anda mungkin juga menyukai