Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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)
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.
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
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 )
El objetivo de los diferentes mtodos es mantener el error de truncamiento local en un valor lo ms pequeo posible.
EDO.(2)
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
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!
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
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)
EDO.
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:
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
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
EDO. (19)
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)
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
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 +
EDO. (23)
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
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.
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.
EDO. (26)
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.
EDO. (27)
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)
EDO. (29)
y (x0 ) = a dy dx =b
x0
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
EDO. (31)
Si escribiramos la ecuacin como la suma de una solucin exacta ms un error, la ecuacin debe cumplirse tambin para el error.
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
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.
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.
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.
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
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
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.
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.
I
i =1
x ( f (xi ) + f ( xi1 )) 2
diferencia=(Ianterior-I) 2 Numerointervalos=Numerointervalos+1
SI
diferencia>precision
NO FIN
11. RESUMEN
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
dC 300 2 = 10 exp C dt t