Está en la página 1de 22

Tema 6: Ecuaciones diferenciales ordinarias e integracin

TEMA 6.
ECUACIONES DIFERENCIALES

ORDINARIAS E INTEGRACIN

NUMRICA

1. Introduccin 2. Nomenclatura 3. Ecuaciones diferenciales ordinarias 4. Mtodos explcitos de resolucin de ecuaciones diferenciales 5. Mtodos implcitos de resolucin de ecuaciones diferenciales 6. Mtodos predictor-corrector 7. Sistemas de ecuaciones diferenciales acoplados 8. Conversin de una ecuacin diferencial de orden n en un sistema de n ecuaciones diferenciales ordinarias 9. Estabilidad 10. Evaluacin de integrales 11. RESUMEN 12. Programacin en Matlab

Clculo numrico en Ingeniera

Tema 6: Ecuaciones diferenciales ordinarias e integracin

1. Introduccin
Una ecuacin diferencial es una ecuacin en la que intervienen derivadas de una o ms funciones. Dependiendo del nmero de variables independientes respecto de las que se deriva, las ecuaciones diferenciales se dividen en:

Ecuaciones diferenciales ordinarias: aquellas que contienen derivadas respecto a una sola variable independiente. Ecuaciones en derivadas parciales: aquellas que contienen derivadas respecto a dos o ms variables. En este tema se vern los mtodos numricos ms importantes de resolucin de ecuaciones diferenciales ordinarias, y de sistemas de ecuaciones diferenciales ordinarias, a la vez que se tratar otro tema muy relacionado: los mtodos de integracin numrica de valores discretos.

2. Nomenclatura
fx(x,y) fy(x,y) h=x i j x y y derivada parcial de f(x,y) respecto x derivada parcial de f(x,y) respecto y incremento de la variable independiente subndice- punto en el que se calcula subndice- ecuacin del sistema de ecuaciones variable independiente variable dependiente derivada respecto de la variable independiente (dy/dx)

3. Ecuaciones diferenciales ordinarias


Un sistema de ecuaciones diferenciales puede venir dado por una serie de expresiones de la forma:
dy dy F x, y, = 0, en su forma mas habitual = f ( x, y ) dx dx

EDO.(1)

Donde tanto F como f son vectores de n funciones; y es un vector de n variables dependientes y x es la variable independiente. Para encontrar una solucin para este sistema necesitamos un valor para y para un cierto valor dado de la variable x. y = y0 para x = x 0

En este caso tenemos un problema de valor inicial. Nos centraremos en este tema en la resolucin de ecuaciones diferenciales de condicin o valor inicial.

Clculo numrico en Ingeniera

Un ejemplo de este tipo de problemas es el descrito por las reacciones de primer orden, con el tiempo como variable independiente:
1 2 A B C

dC A = k1C A dt dC B = k1C A k 2 C A dt dC C = k 2C B dt

Valores iniciales tpicos son : C A0 = 1, C B0 = 0, C C0 = 0

Trabajando con un mtodo numrico no se obtiene una funcin continua como solucin, sino una serie de valores discretos yi separados en un cierto intervalo de la variable independiente x. Este intervalo de variacin de la variable independiente h se suele llamar tambin paso de integracin. Se debe tener en cuenta que los valores de yi nunca sern totalmente exactos sino solamente una aproximacin al verdadero valor. Si llamamos y(xi) al verdadero valor de y para x=xi la diferencia entre:

i = y i y ( xi )

es el llamado error de truncamiento local.

El objetivo de los diferentes mtodos es mantener el error de truncamiento local en un valor lo ms pequeo posible.

4. Mtodos explcitos de resolucin de ecuaciones diferenciales


Los mtodos explcitos son aquellos que utilizan informacin de puntos anteriores para calcular el valor en un nuevo punto. Por ejemplo, usan informacin del punto (xk,yk) para calcular el punto (xk+1,yk+1)

4.1. Mtodo de Euler Explcito


El mtodo de Euler explcito es el ms simple para integrar numricamente una ecuacin diferencial de primer orden. En l, la condicin inicial se usa para calcular la pendiente de la funcin en ese mismo punto.
dy dx = f (x0 , y 0 )
x = x0

EDO.(2)

Tema 6: Ecuaciones diferenciales ordinarias e integracin

Posteriormente, suponiendo que la pendiente de funcin permanece constante una pequea distancia, se estima el valor de la funcin en ese punto de acuerdo con (3).
f ( x 0 + h, y 0 ) = f ( x 0 , y 0 ) + h f ( x 0 , y 0 )

EDO.(3)

Despus, este nuevo punto se usa para calcular la pendiente de la funcin en ese punto. La frmula de recursin quedara:
yi +1 = y i + h f ( xi , y i

EDO.(4)

Esta relacin de recursin tambin puede ser deducida del desarrollo de las series de Taylor. Si lo hiciramos as, podramos comprobar que el error de truncamiento depender de x2, o lo que es lo mismo h2, correspondiente a la omisin de trminos de orden 2 o superior. Sin embargo, si bien el error de truncamiento local es proporcional a h2 el error global es proporcional a h. Un ejemplo de la aplicacin de este mtodo se puede observar en la Figura 1.
Solucin exacta y4 y3 y2 y1 y0 Solucin Euler

x0

x1

x2

x3

x4

x5

x6

Figura 1. Ejemplo de solucin numrica usando el mtodo de Euler.

4.2. Mtodos de Runge-Kutta


4.2.1. Mtodo de Runge-Kutta de orden 2 Aunque el mtodo ms utilizado de los denominados mtodos de Runge Kutta es el de cuarto orden (RK4), los principios en que se basa el mtodo se ilustran mejor presentando el mtodo de Runge Kutta de 2 orden.

Clculo numrico en Ingeniera

El desarrollo en serie de una funcin f(x) en las cercanas de un punto x=a viene dado por:
f ( x) = f (a) + ( x a) f ' (a) f ' ' (a) + ( x a) 2 + ... 1! 2!

De esta forma, si se desarrolla el valor de yi+1 en las proximidades de yi se obtiene:


yi +1 = y i + h y ' i + 12 h 2 y"i + CT h 3 + ...

EDO.(5)

donde CT es un trmino que incluye las terceras derivadas y potencias de h superiores a 3. Las derivadas yi y las segundas derivadas yi se deben expresar en funcin de f(x,y) y de sus derivadas parciales con respecto a y y a x. Recordando que:
y' = dy = f ( x, y ) dx

EDO.(6)

Utilizando la regla de la cadena para derivar una funcin de dos variables, podemos diferenciar la ecuacin EDO.(6) con respecto a t, para obtener:
y" = f ( x, y ) dy f ( x, y ) dy ' d = f ( x, y ) = f ( x, y ) + = f ( x, y ) + f ( x, y ) dx dx x y dx x y

EDO.(7) Sustituyendo las expresiones EDO.(6) y EDO.(7) en el desarrollo en serie anterior EDO.(5), obtenemos:

yi +1 = y i + h f ( x, y ) +
EDO.(8) donde f x ( x, y ) =
f ( x, y ) , x

h 2 f x ( x, y ) + 1 2 h 2 f y ( x, y ) f ( x , y ) + C T h 3

f y ( x, y ) =

f ( x, y ) y

Por otra parte el mtodo de Runge Kutta de 2 orden, propone expresar yi+1 como una combinacin lineal de dos valores de la funcin:
y i +1 = y i + A h f 0 + B h f 1

EDO.(9)

donde

Tema 6: Ecuaciones diferenciales ordinarias e integracin

f 0 = f (x, y )

f 1 = f ( x + Ph , y + Q h f 0 )

EDO.(10)

en estas ecuaciones, A, B, P, Q son constantes que debemos determinar. Si desarrollamos en serie la expresin obtenida para f1 en EDO.(10):
f 1 = f ( x, y ) + P h f x ( x, y ) + Qhf y ( x, y ) f ( x, y ) + ...

EDO. (11)

sustituyendo ahora en EDO.(9) nos queda:

y i +1 = y i + ( A +B) h f ( x, y ) + BPh 2 f x ( x, y ) + BQ h 2 f y ( x, y ) f ( x, y ) + ....


(12)

EDO.

Comparando trminos de las ecuaciones EDO.(12) y EDO.(8) llegamos a que:

A + B =1;

B P = 12 ;

B Q = 12

EDO. (13)

Dado que slo tenemos 3 ecuaciones y 4 incgnitas el sistema planteado en la ecuacin EDO.(13) no est determinado, lo que nos permite escoger uno de los coeficientes. Existen diferentes opciones, pero las ms conocidas y utilizadas son las siguientes: CASO 1: A=1/2 . Esta eleccin lleva a que B=1/2; P=1; Q=1; y por lo tanto:
h [ f ( x, y ) + f ( x + h , y + h f ( x, y ) 2 el resultado es el mtodo de Heun y i +1 y i +

)]

EDO.(14)

CASO 2: A=0. Esta eleccin lleva a B=1; P=1/2; y Q=1/2. y por lo tanto:
h h y i +1 = y i + h f x + , y + f ( x, y ) 2 2

EDO. (15)

el resultado es el mtodo modificado de Euler-Cauchy 4.2.2. Mtodo de Runge Kutta de 4 orden El procedimiento para establecer el mtodo de Runge Kutta de 4 orden es similar al visto anteriormente. Sin embargo no vamos a entrar en detalles. En este caso el desarrollo en serie se realiza hasta el trmino de 4 orden. Anlogamente a RK2 se plantea la resolucin como:

Clculo numrico en Ingeniera

yi +1 = y i + w1 k1 + w2 k 2 + w3 k 3 + w4 k 4

EDO.(16)

donde:

k1 = h f ( x i , y i ) k 2 = h f ( xi + a1 h , y i + b1 k1 ) k 3 = h f ( xi + a 2 h , y i + b2 k1 + b3 k 2 ) k 4 = h f ( xi + a 3 h , y i + b4 k1 + b5 k 2 + b6 k 3 )

EDO. (17)

Procediendo como en el caso anterior aparecera un sistema de 11 ecuaciones con 13 variables desconocidas. Fijando a1=1/2, y b2=0; se obtiene finalmente que: h yi +1 = y i + (k1 + 2 k 2 + 2k 3 + k 4 ) 6 donde k1 = f ( x i , y i )
hk h k 2 = f xi + , y i + 1 2 2 hk h k 3 = f xi + , y i + 2 2 2 k 4 = f ( xi + h , y i + h k 3 )

EDO. (18)

Este mtodo de cuarto orden presenta un error de truncamiento proporcional a x5, mucho menor que el correspondiente al mtodo de Euler que era proporcional a x2. Un ejemplo grfico de la resolucin de un problema se representa en la Figura 2.
Y K1 =f(X0,Y0 )
Y0 Y K1 =f(X0,Y0 )

Y0

K2=f(X0 +X/2,Y0 +K1 X/2)


X/2

X0

X0
Y

X
Y K4=f(X0 +X,Y0+K3X)

Y0

K2
X/2

K3 =f(X0+X/2,Y0+K2X/2)

Y0
X

X0

K3
X/2 X/2

X0

Figura 2. Ilustracin grfica del mtodo de Runge Kutta de 4 orden.

Tema 6: Ecuaciones diferenciales ordinarias e integracin

5. Mtodos implcitos de resolucin de ecuaciones diferenciales


En los dos apartados anteriores, se han usado mtodos explcitos, es decir, para el clculo del nuevo punto de la funcin no se usaban datos correspondientes a este nuevo punto. Existe una familia de mtodos de resolucin basados en la utilizacin del valor de la funcin en el nuevo punto que queremos conocer, con lo cual debe ser resuelta una ecuacin implcita, por algunos de los mtodos ya vistos. Los dos mtodos mas extendidos son el de Euler implcito y el mtodo trapezoidal. En el Mtodo de Euler Implcito, la formula de recursin vendra dada por:
yi +1 = y i + f (xi +1 , y i +1 )x

EDO. (19)

Esto nos lleva a resolver la ecuacin


yi +1 y i f ( xi +1 , y i +1 )x = 0

en cada incremento. Esta ecuacin en principio ser no lineal, y ser resuelta por un mtodo apropiado. El mtodo trapezoidal se basa en la aplicacin del mtodo de los trapecios (ver apartado 10.2 de este mismo tema) entre los puntos (xi, yi) y (xi+1, yi+1). La frmula de recursin que aparece es pues:
yi +1 = y i + x [ f (xi , yi ) + f (xi +1 , yi +1 )] 2

EDO. (20)

que tambin deber resolverse en cada incremento.

6. Mtodos predictorredictor-corrector
Los mtodos de Euler, Heun, o Runge-Kutta, son mtodos de paso simple, porque slo usan informacin de un punto para calcular el siguiente. Por ejemplo, slo se usa informacin del punto (x0, y0) para calcular el punto (x1,y1). Despus de haber calculado varios puntos, sera sin embargo interesante utilizar informacin de varios puntos anteriores para calcular el siguiente. Como ejemplo presentaremos las lneas generales del mtodo de AdamsBashforth-Moulton de cuarto orden. El mtodo necesita yi-3, yi-2, yi-1, yi para

Clculo numrico en Ingeniera

calcular yi+1. Por supuesto, para comenzar el clculo necesitamos algn mtodo auxiliar para calcular (x0,y0), (x1,y1), (x2,y2), (x3,y3). Una ventaja de este tipo de mtodos es que el error de truncamiento local se puede determinar en cada paso y aadir un trmino de correccin que mejore la precisin del sistema en cada paso. Tambin es posible determinar si el tamao de paso es lo suficientemente pequeo para la precisin deseada o bien se puede aumentar para acelerar la velocidad de clculo. Debemos pues resolver la ecuacin diferencial: dy = f ( x, y ) dx Entre los puntos xi y xi+1 conociendo el valor de yi en el punto xi, o lo que es lo mismo:
yi +1 = yi +

xi +1

xi

f (xi , yi ) dx

EDO. (21)

La primera etapa del mtodo usa la aproximacin polinmica de Lagrange utilizando los puntos (xi-3, fi-3), (xi-2, fi-2), (xi-1, fi-1), (xi, fi). Si lo integramos sobre el intervalo [xi, xi+1] obtenemos el predictor de Adams-Bashforth:
h ( 9 f i3 + 37 f i2 59 f i1 + 55 f i ) EDO. (22) 24 El corrector se desarrolla de forma similar. El valor pi+1 que se acaba de obtener se puede utilizar para construir un segundo polinomio de Lagrange utilizando los puntos (xi-2, fi-2), (xi-1, fi-1), (xi, fi) y el nuevo punto que se acaba de obtener ( xi +1 , f i +1 ) = ( xi +1 , f ( xi +1 , pi +1 ) ) . Si lo integramos nuevamente sobre el pi +1 = yi +

intervalo [tk,tk+1] obtenemos el corrector de Adams Moulton:


yi +1 = yi + h ( f i2 5 f i1 + 19 f i + 9 f i+1 ) 24

EDO. (23)

El error de truncamiento local viene dado aproximadamente por:

i = y ( xi +1 ) y i +1

19 ( yi +1 pi +1 ) 270

EDO. (24)

La ecuacin (24) se puede utilizar para cambiar el tamao del paso de integracin h. Aunque existen criterios ms elaborados un mtodo sencillo podra ser el siguiente:
Si Si 19 yi +1 pi +1 > Err Re l 270 yi+1 + Small 19 yi +1 pi +1 Err Re l < 270 yi+1 + Small 100 entonces hacer entonces hacer h= h 2

h = 2h

Tema 6: Ecuaciones diferenciales ordinarias e integracin

Donde los valores Small y ErrRel (error relativo) se fijarn dependiendo de la precisin deseada. Por ejemplo si Small=10-5 y ErrRel=510-6 si el resultado no se parece en 5 cifras significativas entonces se disminuye a la mitad el intervalo de paso y si se parecen en ms de 7 entonces se aumenta. Sealar que si disminuimos el intervalo de paso debemos obtener los puntos para el polinomio de Lagrange para la siguiente etapa por interpolacin, con objeto de que estn separados la nueva distancia h.

7. Sistemas de ecuaciones diferenciales diferenciales acoplados


El problema general de un sistema de n ecuaciones diferenciales de primer orden acopladas vendra dado por EDO. (11).
dy1 = f 1 ( x, y ) dx dy 2 = f 2 ( x, y ) dx

EDO. (25)
dy n = f n ( x, y ) dx

Siendo conocido el valor de todas las funciones para un punto inicial. Ejemplos de estos problemas, incluyen reactores de flujo de pistn no isotermos, reactores discontinuos con mltiples reacciones, sistemas de control multivariables, etc. En este apartado veremos las extensiones de los mtodos vistos para la resolucin de una nica ecuacin diferencial.

7.1. Mtodo de Euler explcito


Este mtodo puede ser rpidamente extendido al caso de un sistema de n ecuaciones diferenciales. El algoritmo de clculo queda:
y 2, j +1 = y 2, j + f 2 (x j , y j )t y n , j +1 = y n, j + f n (x j , y j )t y1, j +1 = y1, j + f 1 (x j , y j )t

EDO. (26)

Clculo numrico en Ingeniera

donde yj corresponde a un vector que engloba todos los trminos de y (y1,j, y2,j,.,yn,j). Puesto que esta basado en el mtodo de Euler, este ser un mtodo de primer orden, con lo cual el error ser proporcional a x2. Debemos especificar que la variable que ms rpidamente cambie, ser la que limite la longitud de exploracin utilizada para mantener la estabilidad.

7.2. Mtodo de Runge-Kutta


De igual forma que para el mtodo explcito de Euler, la extensin del mtodo de Runge-Kutta puede ser utilizada directamente para la resolucin de sistema de n ecuaciones diferenciales acopladas. Consideremos el mtodo de RungeKutta de cuarto orden. La formula de recursin para este mtodo de Runge-Kutta vendra dado por:
y i , j +1 = y i , j + t k1, i, j + 2k 2, i, j + 2k 3, i, j + k 4, i, j 6

EDO. (27)

donde yi,j es el valor de la i variable dependiente despus de j pasos en t y:

k1,i , j = f i (x, y1, j , y 2, j , y 3, j ,....., y n , j ) h h h k 2,i , j = f i x + , y1, j + k1,i , j ,....., y n , j + k1, n, j 2 2 2 h h h k 3,i , j = f i x + , y1, j + k 2,i , j ,....., y n, j + k 2,n, j 2 2 2 k 4,i , j = f i (x + h, y1, j + hk1,i , j ,....., y n , j + hk1,n , j )

EDO. (28)

De forma anloga se pueden modificar los mtodos implcitos y los predictorcorrector.

8. Conversin de una ecuacin diferencial de orden n en un sistema de n ecuaciones diferenciales ordinarias


Consideremos el caso de la siguiente ecuacin diferencial de segundo orden:
d2y dy + A( x ) + B( x ) y + C ( x ) = 0 2 dx dx

EDO. (29)

sujeta a las siguientes condiciones iniciales:

Tema 6: Ecuaciones diferenciales ordinarias e integracin

y (x0 ) = a dy dx =b
x0

Haciendo el cambio de variable z = queda:


dz = A( x )z B(x ) y C ( x ) dx dy =z dx

dy y reordenando, la ecuacin diferencial dx

Con lo cual la ecuacin diferencial de segundo orden que tenamos se ha reducido a un sistema de 2 ecuaciones diferenciales de orden 1 que pueden ser resultas por cualquiera de los mtodos vistos en el apartado anterior. La extensin al caso general de una ecuacin diferencial de orden n es evidente, considerando los siguientes cambios de variables.
dy dx dz d 2 y z2 = = dx dx 2 z1 = dz n 2 d n 1 y = = n 1 dx dx

EDO. (30)

z n 1

9. Estabilidad
A parte de la precisin en los clculos, los diferentes algoritmos necesitan adems ser estables. Es decir, que el error disminuya a medida que procedemos en el clculo y que la solucin numrica no presente oscilaciones alrededor de la solucin correcta. Ilustraremos el fenmeno a partir de la siguiente ecuacin diferencial:
dy = y dx

y(0)=1

donde es real y positivo.

EDO. (31)

Si escribiramos la ecuacin como la suma de una solucin exacta ms un error, la ecuacin debe cumplirse tambin para el error.

Clculo numrico en Ingeniera

d = dx

EDO. (32)

Si se examina el error en sucesivos pasos, un mtodo ser estable si el error decae en cada paso sucesivo, y ser inestable si el error crece en cada iteracin. Por ejemplo aplicando el mtodo de Euler para tn, tn+1

n +1 n
h

= n

; n+1 = n ( 1- h)

La estabilidad requiere

n +1 n

por lo tanto el mtodo de Euler requiere 1 h 1 ; 0 h 2 . As el mtodo 2 de Euler es inestable para incrementos de tiempo mayores que

Si lo aplicamos a la regla del trapecio: 1 h 2 n + 1 = n ; EDO. (33) 1+ h 2 Se puede observar que es estable independientemente del valor de (h>0) Sin embargo presenta el inconveniente de que a valores altos de h ( por ejemplo h) n+1= - n presenta oscilaciones alrededor de la solucin. Finalmente utilizando el mtodo de Euler implcito:

n +1 =

n 1+ h

que es estable y no oscila.

El mtodo elegido depender de la dificultad para resolver las ecuaciones algebraicas y de cuan pequeo sea el valor de h a utilizar. El valor del parmetro corresponde al valor propio de la ecuacin diferencial En general para un sistema de ecuaciones diferenciales
dy = Ay dx det A - I = 0

EDO. (34)

me permite calcular los valores propios asociados a la matriz de coeficiente del sistema.

Tema 6: Ecuaciones diferenciales ordinarias e integracin

Se dice que un sistema es stiff (se puede traducir por rgido o tendente a no estable) utilizando un parmetro stiffness ratio.
SR= max Re i min Re i

El mayor de los valores propios del sistema va a gobernar lo no estable que es el sistema (el tamao del paso de integracin) y el menor de los valores propios (generalmente) el tiempo final de integracin. Valores tpicos: SR=20 sistema no stiff SR=103 sistema no stiff SR=106 sistema muy stiff. El sistema de Ec. es no lineal, para estudiar el grado de estabilidad del sistema podemos linealizar la ecuacin:
n dy i df = f i ( y ( x n )) + i ( y i y i ( x n )) dx j = i dy i

Aij =

df i dyi

Si calculamos los valores propios de la matriz A podemos ver el grado de estabilidad del sistema

En este ltimo caso el carcter de stiff del sistema vara con el tiempo y se debe recalcular a cada paso de integracin. Para sistemas estables no hay que mantener ninguna precaucin especial. Para sistemas no-estables debemos elegir un mtodo estable y que no oscile. As el mtodo implcito de Euler es estable y no oscila, pero es muy poco preciso. El mtodo del trapecio oscila a valores elevados de . Y todos los mtodos explcitos fallan por las limitaciones en . En casos difciles se pueden utilizar los mtodos implcitos de Runge Kutta.

10. Evaluacin de integrales


En este apartado analizaremos la integracin numrica de valores discretos y funciones analticas. Se vern dos mtodos para la integracin numrica: la regla de los trapecios y la regla de Simpson. Estos mtodos proporcionan formulas de integracin que pueden usarse para funciones de valores discretos igualmente espaciados o para funciones analticas usando valores de las funciones igualmente espaciados. La regla de los trapecios necesita dos evaluaciones de la funcin y

Clculo numrico en Ingeniera

la regla de Simpson, tres valores de funcin con el fin de aproximar el valor de la integral. Existen otras tcnicas diseadas especficamente para integrar funciones pero no funciones de valores discretos. El mtodo de integracin de Romberg usa una aplicacin sucesiva de la regla de los trapecios hasta conseguir un valor de la integral con una precisin preestablecida.

10.2. La regla de los trapecios


Si consideramos la aproximacin lineal (primer orden) de las series de Taylor para una funcin dada en el intervalo [a,b], tenemos: f (b ) f (a ) f (x ) = f (a ) + (x a ) ba EDO. (35)

integrando esta funcin entre los limites [a,b] obtenemos la evaluacin de la integral para la aproximacin lineal:
b f (a ) + f (b ) (b a ) I = f ( x )dx = a 2

EDO. (36)

Esta ecuacin es conocida como la regla de los trapecios. En ella se asume que la funcin f(x) varia linealmente en el rango de x=a hasta x=b. Una representacin de esta integracin se muestra en la Figura 3. El rea entre la aproximacin lineal y f(x) es el error de la aproximacin.

f(x)

Aprox. lineal

Figura 3. Aproximacin considerada en la regla de los trapecios.

Tema 6: Ecuaciones diferenciales ordinarias e integracin

El error de la aproximacin se puede reducir subdividiendo el intervalo [a,b] y aplicando secuencialmente la regla de los trapecios. Para el caso de la divisin en n subintervalos, la formula quedara como se indica en EDO. (37).

xn

x0

f (x )dx
i =1

f (x i ) + f (x i 1 ) (x i x i1 ) 2

EDO. (37)

La ecuacin EDO.(3) es valida en para el caso de puntos no igualmente espaciados. Si todos los puntos estn igualmente espaciados:

i =1

n f ( xi ) + f ( xi 1 ) (xi xi 1 ) = x [ f (xi ) + f (xi 1 )] 2 2 i =1

con lo que la regla de los trapecios se reduce a la ecuacin:

xn

x0

f (x )dx

n 1 x f ( x ) + 2 f (x i ) +f (x n ) 0 2 i =1

EDO. (38)

En el caso de utilizar la regla de los trapecios, el error de la aproximacin, para un rango fijo, vara de forma inversamente proporcional al cuadrado de n, siendo n el nmero de subintervalos igualmente espaciados utilizados.

10.3. La regla de Simpson


La regla de Simpson se deriva de la expansin de las series de Taylor usando la evaluacin de la funcin en 3 puntos para minimizar el error de la aproximacin. La expresin que se obtendra vendra dada por EDO. (39).
x f (x )dx 3 [f (x ) + 4f (x ) + f (x )]
xc xa a b c

EDO. (39)

La ecuacin (40) representara el caso de la aplicacin sucesiva de la regla de Simpson para la divisin en n subintervalos.

xn

x0

f (x )dx

n 1 n 2 x ( ) ( ) f x + 4 f x + 2 f (x i ) +f (x n ) 0 i 3 i =1, 3, 5 i = 2 , 4, 6

EDO. (40)

Esta expresin esta restringida al caso en el espaciado entre puntos es igual y el nmero de puntos es impar. El error global de esta aproximacin para un intervalo fijo vara de forma inversamente proporcional a n4.

10.4. 10.4. Mtodo de Romberg para integracin integracin numrica de funciones


El mtodo de integracin numrico de Romberg es solo aplicable a la integracin de funciones, no siendo aplicable a la integracin de funciones

Clculo numrico en Ingeniera


definidas por puntos discretos. Su utilizacin y formulacin es muy sencilla y se resume en los siguientes puntos. 1. 2. 3. 4. 5. 6. Se define la precisin con la que se desea conocer el valor de la integral. Se define el intervalo de calculo como todo el rea [a,b] Se calcula el valor de la integral utilizando la regla de integracin de los trapecios. Se divide el intervalo de anlisis en 2. Se calcula el rea de cada subintervalo utilizando la regla de los trapecios. Se compara este valor de la integral con el obtenido anteriormente. Si la diferencia en valor absoluto es menor que la precisin deseada, se detiene el clculo y ya tenemos el valor de la integral. Si es mayor, se divide en 2 cada uno de los subintervalos y se vuelven a repetir los pasos desde el punto 5, hasta que se alcance la precisin deseada.

En forma de diagrama de flujo para la programacin tendramos:


Definir la funcin 'f', precision, xinicial, xfinal

Numerointervalos=1 I=0 diferencia=1000 x=(xinicial-xfinal)/Numerointervalos Ianterior=I I=0

I
i =1

x ( f (xi ) + f ( xi1 )) 2

diferencia=(Ianterior-I) 2 Numerointervalos=Numerointervalos+1

SI

diferencia>precision

NO FIN

11. RESUMEN

Tema 6: Ecuaciones diferenciales ordinarias e integracin


En el tema se han descrito los mtodos explcitos e implcitos de resolucin de sistemas de ecuaciones diferenciales. Son de destacar: - El mtodo de Euler explcito: yi +1 = y i + h f ( xi , y i ) - Los mtodos RK2 explticos, tal como el de Heun: h y i +1 y i + [ f ( x, y ) + f ( x + h , y + h f ( x, y ) ) ] 2 - El mtodo de RK4 explcito - El mtodo de Euler implcito: yi +1 y i f ( xi +1 , y i +1 )x = 0 Se ha abordado cmo convertir una ecuacin de orden n en un sistema de ecuaciones. Se han repasado los mtodos de integracin numrica de valores discretos, destacando el mtodo de los trapecios: n 1 xn x f ( x ) dx f ( x ) + 2 f (x i ) +f (x n ) 0 x 0 2 i =1 y el de Romberg, aplicable a una funcin expresada de forma analtica.

12. Programacin en en Matlab Matlab


12.1 Mtodo de Euler explcito (una ecuacin diferencial)
function [x,y]=eulerex(funcion,x0,xf,y0,ninc) % Integra por el metodo de Euler explicito % Valores de entrada:(funcion,x0,xf,y0,ninc) % 'Funcion' es el fichero con la funcion a integrar % 'x0' es el punto inicial del calculo % 'xf' es el punto final % 'y0' es el valor de y en 'x0' % 'ninc' es el numero de intervalos en los que se divide xf-x0 % 'SALIDAS' [variable indep, variable integrada] h=(xf-x0)/ninc;% Paso de integracion y(1)=y0; %Primer valor de y x(1)=x0; for i=1:ninc-1 y(i+1)=y(i)+h*feval(funcion,y(i),x(i)); %Precaucin: La funcin que contiene la ecuacin diferencial debe contener como primera % variable la variable dependiente y, y como segunda la x para que funcione tal como se ha % escrito. Tambin se podra poner feval(funcion,x(i),y(i)) y habra que definir en la funcin % primero la variable dependiente x. x(i+1)=x(i)+h; end

Clculo numrico en Ingeniera

12.2 Mtodo de Euler explcito (sistemas de ecuaciones diferenciales o una sola ecuacin)
function [x,y]=eulersist(F,x0,xf,y0,nint) % Integra por el metodo de Euler explicito % 'F' es el fichero con la funcion a integrar % 'x0' es el punto inicial de calculo % 'xf' es el punto final % 'y0' es el valor de la funcion en x0 % 'nint' es el numero de incrementos h=(xf-x0)/nint; % Paso de integracion x(1)=x0; y(:,1)=y0; for i=1:nint y(:,i+1)=y(:,i)+h*feval(F,x(i),y(:,i)); %Precaucin: La funcin que contiene la ecuacin diferencial debe contener como primera % variable la variable dependiente y, y como segunda la x para que funcione tal como se ha % escrito. Tambin se podra poner feval(funcion,x(i),y(:,i)) y habra que definir en la funcin % primero la variable dependiente x. x(i+1)=x(i)+h; end

12.3 Mtodo de Heun (sistemas):


function [x,y]=heun(F,x0,xf,y0,nint) % Integra por el metodo de HEUN % 'F' es el fichero con la funcion a integrar % 'x0' es el punto inicial de calculo % 'xf' es el punto final % 'y0' es el valor de la funcion en x0 % 'nint' es el numero de incrementos h=(xf-x0)/nint; % Paso de integracion x(1)=x0; y(:,1)=y0; for i=1:nint f=feval(F,x(i),y(:,i)); y(:,i+1)=y(:,i)+h/2*(f+feval(F,x(i)+h,y(:,i)+h*f)); %Precaucin: La funcin que contiene la ecuacin diferencial debe contener como primera % variable la variable dependiente y, y como segunda la x para que funcione tal como se ha % escrito. Tambin se podra poner feval(funcion,x(i),y(:,i)) y habra que definir en la funcin % primero la variable dependiente x. x(i+1)=x(i)+h; end

12.4 Mtodo de Euler-Cauchy (una sola ecuacin):


function [x,y]=eulercauchy(funcion,ptoinicial,ptofinal,condinicial,numincr) h=(ptofinal-ptoinicial)/(numincr); y(1)=condinicial; x(1)=ptoinicial; for i=1:numincr-1 x(i+1)=x(i)+h/2; ynueva=y(i)+(h/2)*feval(funcion,y(i)); y(i+1)=y(i)+h*(feval(funcion,ynueva)); end

Tema 6: Ecuaciones diferenciales ordinarias e integracin

12.5 Mtodo de Euler implcito:


function [x,y]=eulerimp(F,x0,xf,y0,nint) % Integra por el metodo de Euler IMPLICITO % 'F' es el fichero con la funcion MODIFICADA % La funcin MODIFICADA es una funcin de Matlab que contiene la ecuacin % o sistema que debe igualarse a cero durante el mtodo de Euler implcito % 'x0' es el punto inicial de calculo % 'xf' es el punto final % 'y0' es el valor de la funcion en x0 % 'nint' es el numero de incrementos global ysupuesto h xn % debe hacerse variables globales para traspasarla a la funcin MODIFICADA h=(xf-x0)/nint; % Paso de integracion x(1)=x0; y(1)=y0; for i=1:nint ysupuesto=y(i); % Valor supuesto de la solucin xn=x(i); y(i+1)=fsolve(F,ysupuesto); %La solucin viene dada cuando la funcin MODIFICADA se hace cero x(i+1)=x(i)+h; end Ejemplo de funcin MODIFICADA: Si se debe resolver la ecuacin diferencial

dC 300 2 = 10 exp C dt t

la funcin MODIFICADA sera:

function z=cinetica2imp(C) global ysupuesto h xn t=xn; f=-10*exp(-300/t)*C^2; z=C-ysupuesto-f*h;

12.6 Mtodo de los trapecios:


function I=trapecios(X) % Integra por el mtodo de los trapecios % Matriz X con valores [x f(x)] % Disintos datos en distintas filas [npuntos,nvar]=size(X); %numero de puntos y variables x=X(:,1); %Valores de x y=X(:,2); % Vlaores de la funcin I=0; for i=1:npuntos-1 I=I+(y(i)+y(i+1))/2*(x(i+1)-x(i)); end

12.7 Mtodo de Simpson:


function I=simpson(X,incrx) % Integra por el mtodo de simpson % Matriz X con valores [x f(x)] % Disintos datos en distintas filas [npuntos,nvar]=size(X);

Clculo numrico en Ingeniera


x=X(:,1); y=X(:,2); y0=y(1); yn=y(npuntos); sumapares=0; sumaimpares=0; for i=2:2:npuntos-1 sumaimpares=sumaimpares+ y(i); end for i=3:2:npuntos-2 sumapares=sumapares +y(i); end I=(incrx/3)*(y0+4*sumaimpares+2*sumapares+yn);

12.8 Mtodo de Romberg:


function I=romberg(F,x0,xn,precision) % F debe contener la forma analtica de la expresin a integrar numerointerval=2; I=0; diferencia=100; while diferencia>precision incrx=(xn-x0)/numerointerval; Integralanterior=I; I=0; x=x0:incrx:xn; n=length(x); for i=1:n-1 I=I+incrx/2*(feval(F,x(i))+feval(F,x(i+1))); end diferencia=(I-Integralanterior)^2; numerointerval=numerointerval+2; end

También podría gustarte