Cálculos computacionales en Ingeniería Química. Tema 6

Anuncio
Cálculos computacionales en
Ingeniería Química.
Tema 6
L. Méndez
Departamento de Quı́mica, Universidad Autónoma de Madrid
CCIQ, 2005-06, T4 – p. 1/2
Ecuaciones diferenciales
Definiciones.
Métodos de Euler y Heun.
Método de la serie de Taylor.
Métodos de Runge - Kutta.
Métodos predictor-corrector.
Sistemas de ecuaciones diferenciales.
Problemas de contorno. El método de disparo.
Método de diferencias finitas.
CCIQ, 2005-06, T4 – p. 2/2
Ecuaciones diferenciales ordinarias.
Primer orden: y ′ = f (x, y)
Segundo orden: y ′′ = f (x, y, y ′ )
Sistemas de ecuaciones diferenciales:
y1′ = f1 (x, y1 , y2 )
y2′ = f2 (x, y1 , y2 )
* Condiciones iniciales; por ejemplo: y ′′ = f (x, y, y ′ ) con
y(x0 ) = y0 ; y ′ (x0 ) = y0′
* Condiciones de contorno; por ejemplo: y ′′ = f (x, y, y ′ )
con y(x0 ) = y0 ; y(x1 ) = y1
CCIQ, 2005-06, T4 – p. 3/2
Método de Euler
Consideramos la ecuación y ′ = f (x, y) con la condición inicial y(x0 ) = y0
dy
∆y
En el método de Euler tomamos dx
≈ ∆x
. Paso fijo h:
y1
=
y0 + hf (x0 , y0 )
y2
=
y1 + hf (x1 , y1 )
y3
=
y2 + hf (x2 , y2 ) ...
Comparando con la serie de Taylor:
2
2
h d y dy y(x1 ) = y0 + h
+
+···
dx x=x0
2 dx2 x=x0
obtenemos:
y(x1 ) = y1Euler + O(h2 )
Error local de orden h2
Error global tras N pasos, N =
x−x0
,
h
error de orden N h2 ∼ h
CCIQ, 2005-06, T4 – p. 4/2
Método de Euler.y(x)
y(x)
Error in first step
Exact solution at end of
one step
h f (x0, y0)
y1
Solution given by Eq. (9.24)
at end of one step
y0
Slope
x0
x1
x
h
Figure 9.4
Geometric interpretation of Euler’s method.
© 2002 Prentice Hall, Inc.
Singiresu S. Rao
Applied Numerical Methods for Engineers and Scientists, 1E.
CCIQ, 2005-06, T4 – p. 5/2
y(x)
Método de
Heun.
Exact y(x)
Slope of y at xi
(0)
f (xi 1, yi 1)
Average slope
1
Slope of y at xi
f(xi, yi)
yi
1
(0)
yi 1
xi
xi
x
1
h
Figure 9.8
Graphical interpretation of Heun’s method
© 2002 Prentice Hall, Inc.
Singiresu S. Rao
Applied Numerical Methods for Engineers and Scientists, 1E.
CCIQ, 2005-06, T4 – p. 6/2
El método de Heun
Emplea una pendiente promediada:
h ′
y1 = y0 + [y (x0 ) + y ′ (x1 )]
2
Como no conocemos y ′ (x1 ), la aproximamos empleando el método de Euler. Se trata de un
método predictor-corrector:
Predicción:
y1p = y0 + hf (x0 , y0 )
Corrección:
y1c = y0 + h2 [f (x0 , y0 ) + f (x1 , y1p )]
Puede hacerse una segunda corrección:
c)
y1cc = y0 + h
f
(x
,
y
)
+
f
(x
,
y
0
0
1
1
2
CCIQ, 2005-06, T4 – p. 7/2
Método de la serie de Taylor
Disminuimos el error local del método de Euler añadiendo
términos siguientes:
h2 ′′
y1 = y0 + hf (x0 , y0 ) + y (x0 ) + · · ·
2
Evaluamos las derivadas de orden superior:
df (x, y) ∂f (x, y)
dy ′
y =
=
6=
dx
dx
∂x
df (x, y)
∂f (x, y)
∂f (x, y) dy
=
+
dx
∂x
∂y
dx
′′
Método lento.
Es preciso decidir a priori el número N de términos.
Cálculo complejo de derivadas de orden superior.
CCIQ, 2005-06, T4 – p. 8/2
Métodos de Runge-Kutta.
Partimos de una forma generalizada del método de Euler:
yi+1 = yi + h Φ(xi , yi , h)
donde
Φ = w1 k1 + w1 k2 + · · · + wN kN ,
Los kj se obtienen evaluando f (x, y) en puntos del intervalo [xi , xi+1 ].
El más popular es el método de Runge-Kutta de cuarto orden (N = 4):
yi+1
=
k1
=
k2
=
k3
=
k4
=
h
(k1 + 2k2 + 2k3 + k4 )
6
f (xi , yi )
1
1
f (xi + h, yi + k1 h)
2
2
1
1
f (xi + h, yi + k2 h)
2
2
f (xi + h, yi + k3 h)
yi +
Se obtiene comparando con la serie de Taylor de orden 4 e imponiendo que la diferencia
sea O(h5 )
CCIQ, 2005-06, T4 – p. 9/2
Método de Runge-Kutta-Fehlberg.
Es un método de paso variable. El paso se va adaptando
durante la integración. Para determinar el paso óptimo, se
calcula mediante RK con N = 4 y N = 5, que toman la forma:
4
yi+1
= yi + (a1 k1 + a3 k3 + a4 k4 + a5 k5 )
5
yi+1
= yi + (b1 k1 + b3 k3 + b4 k4 + b5 k5 + b6 k6 )
A continuación el paso h se convierte en sh, donde s se
4
5
− yi+1
| con una tolerancia prefijada
obtiene comparando |yi+1
τ.
CCIQ, 2005-06, T4 – p. 10/2
Métodos predictor-corrector
Son métodos multipaso
Euler, Runge-Kutta son métodos de paso simple: para
obtener yi+1 sólo necesitamos yi
Los métodos predictor-corrector (Milne,
Adams-Moulton..) son métodos de paso múltiple o
multipaso: para obtener yi+1 empleamos la información
en varios puntos anteriores xi , xi−1 , xi−2 , · · ·
En general los métodos predictor-corrector son más rápidos y
exactos que los Runge-Kutta, pero pueden ser inestables:
Los errores aumentan y van cambiando de signo al avanzar
el proceso de integración.
CCIQ, 2005-06, T4 – p. 11/2
Método de Milne.
4
4
3.5
xi+1
3.5
3
3
Construcción corrector Milne
2.5
2.5
f(x,y)
f(x,y)
Construcción predictor Milne
2
1.5
2
1.5
xi
i−3
xi−2
1
i
x
xi−1
i−2
0.5
0
x
xi−3
x
1
xi−1
0.5
0
1
2
3
4
0
0
1
x/h
Predicción:
y4p
2
3
4
x/h
= y0 +
R x4
x0
P123 (x)dx
Fórmula de integración abierta (Newton-Cotes de 3 puntos)
R x4
c
Corrección: y4 = y2 + x2 P234 (x)dx
Fórmula de integración cerrada (Simpson 1/3)
CCIQ, 2005-06, T4 – p. 12/2
3
3
2.5
2.5
2
2
Predictor ABM
f(x,y)
f(x,y)
Método de Adams-Bashforth-Moulton.
1.5
xi+1
Corrector ABM
1.5
x
i−3
xi−3
1
1
x
i−2
i−2
1
x
0.5
i−1
0
i
x
x
0.5
0
x
i
x
2
3
4
0
i−1
0
1
x/h
Predicción:
2
3
4
x/h
y4p
= y3 +
R x4
x3
P0123 (x)dx
= y3 +
R x4
P1234 (x)dx
Integración abierta
Corrección:
y4c
x3
Integración cerrada
CCIQ, 2005-06, T4 – p. 13/2
Método de Adams-Bashforth-Moulton.
Predictor:
y4p
h
= y3 + (55f3 − 59f2 + 37f1 − 9f0 )
24
Corrector
y4c
h
= y3 + (9f4 + 19f3 − 5f2 + f1 )
24
Para aplicar el método es necesario utilizar otro método de
arranque (por ejemplo Runge-Kutta) que proporcione
y1 , y2 , y3
CCIQ, 2005-06, T4 – p. 14/2
Sistemas de ecuaciones diferenciales de primer orden.
Consideramos sistemas de la forma:
dx
= f1 (t, x, y)
dt
dy
= f2 (t, x, y)
dt
con la condición inicial x(t0 ) = x0 ; y(t0 ) = y0 .
En notación matricial:
y ′ = f (t; y);
y(t0 ) = y0
CCIQ, 2005-06, T4 – p. 15/2
Sistemas de ecuaciones diferenciales de primer orden.
En general se aplican los mismos métodos numéricos que
para ecuaciones; por ejemplo:
Euler:
y1 = y0 + hf (t, y0 )
Taylor:
2
h df y1 = y0 + hf (t, y0 ) +
+···
2 dt x0
CCIQ, 2005-06, T4 – p. 16/2
Sistemas de ecuaciones diferenciales de primer orden.
Runge-Kutta (N=4)
yi+1
=
k1
=
h
(k + 2k2 + 2k3 + k4 )
6 1
f(ti , yi )
k2
=
f(ti +
k3
=
k4
=
yi +
1
1
h, yi + k1 h)
2
2
1
1
f(ti + h, yi + k2 h)
2
2
f(ti + h, yi + k3 h)
CCIQ, 2005-06, T4 – p. 17/2
Sistemas de ecuaciones diferenciales de primer orden.
ABM (lo escribo explícitamente para un sistema de 2 ecuaciones diferenciales):
Predictor:
h
[55f1 (ti , xi , yi ) − 59f1 (ti−1 , xi−1 , yi−1 ) +
24
+37f1 (ti−2 , xi−2 , yi−2 ) − 9f1 (ti−3 , xi−3 , yi−3 )]
h
= yi +
[55f2 (ti , xi , yi ) − 59f2 (ti−1 , xi−1 , yi−1 ) +
24
+37f2 (ti−2 , xi−2 , yi−2 ) − 9f2 (ti−3 , xi−3 , yi−3 )]
xpi+1 = xi +
p
yi+1
Corrector
h
p
[9f1 (ti+1 , xpi+1 , yi+1
) + 19f1 (ti , xi , yi ) −
24
−5f1 (ti−1 , xi−1 , yi−1 ) + f1 (ti−1 , xi−1 , yi−1 )]
h
p
= yi +
) + 19f2 (ti , xi , yi ) −
[9f2 (ti+1 , xpi+1 , yi+1
24
−5f2 (ti−1 , xi−1 , yi−1 ) + f2 (ti−1 , xi−1 , yi−1 )]
xci+1 = xi +
c
yi+1
CCIQ, 2005-06, T4 – p. 18/2
Problemas de contorno. Método de disparo.
Comenzamos por un ejemplo sencillo: Una barra metálica a temperatura T , superior a la del
entorno Ta . El enfriamiento de esta barra viene descrito por la ecuación:
d2 T
= k(T − Ta )
dx2
donde x es la distancia.
Condición de contorno: T (x = 0) = T0 ; T (x = l) = Tl .
Método de disparo:
Se convierte la ecuación en un sistema de ecuaciones diferenciales de primer orden:
dT
dx
dz
dx
Condición inicial:
=
z
=
k(T − Ta )
T (x = 0) = T0 . No conocemos z(x = 0).
CCIQ, 2005-06, T4 – p. 19/2
Método de disparo.
En el método de disparo se resuelve el sistema con distintos valores z(x = 0) = α y se
busca α para que T (x) cumpla la otra condición de contorno (T (α, x = l) = Tl ); es decir, α
es solución de la ecuación:
T (α, x = l) = Tl
donde T (α, x) es solución del sistema con condición inicial z(x = 0) = α.
Puede generalizarse a ecuaciones de mayor orden.
En general requiere un proceso iterativo para encontrar la condición inicial apropiada
del sistema de ecuaciones diferenciales (en nuestro el valor de α).
En general es un método lento,
CCIQ, 2005-06, T4 – p. 20/2
Método de diferencias finitas.
Consideramos el problema de contorno del ejemplo anterior:
d2 T
= k(T − Ta ) con :T (x = 0) = T0 ; T (x = l) = Tl
dx2
En este método se sustituyen las derivadas por diferencias divididas (ver tema 5, diferencias
centrales):
d2 T
dx2
≈
Ti+1 − 2Ti + Ti−1
h2
donde Tk = T (xk ) = T (kh). Obtenemos:
Ti+1 − 2Ti + Ti−1
2
2
−
k(T
−
T
)
=
0
⇒
−
T
+
T
(2
+
kh
)
−
T
=
kT
h
a
a
i
i+1
i
i−1
h2
Estas ecuaciones (para los nodos interiores), junto con las condiciones de contorno
constituyen un sistema de ecuaciones lineales, tridiagonal cuya solución es la temperatura
en los puntos xi
CCIQ, 2005-06, T4 – p. 21/2
Método de diferencias finitas.
Más en general, dado un problema de contorno:
y ′′ = p(x)y ′ (x) + q(x)y(x) + r(t); y(a) = α, y(b) = β
Se emplea el siguiente esquema:
1. Se aproxima:
y′
≈
y ′′
≈
yi+1 − yi−1
+ O(h2 )
2h
yi+1 − 2yi + yi−1
2
+
O(h
)
h2
2. Se sustituyen estas aproximaciones en la ecuación diferencial y se eliminan términos
de orden O(h2 )
3. Se resuelve el sistema de ecuaciones lineales tridiagonal con incógnitas {yk }
CCIQ, 2005-06, T4 – p. 22/2
Descargar