Вы находитесь на странице: 1из 46

DIFERENCIAS FINITAS Y ECUACIONES DIFERENCIALES PARCIALES L. Hctor Jurez V. e a Departamento de Matemticas, UAM-I, Mxico, D. F.

a e Guanajuato, Gto, Junio 2006

Introduccin o

Este minicurso constituye una introduccin a la solucin numrica de ecuaciones diferenciales o o e parciales del tipo parablico. Se discuten los aspectos bsicos fundamentales como son: o a derivacin de los esquemas de diferencias nitas, estudio del error, de la convergencia y de la o estabilidad de los mtodos. Adems se incluyen programas en el ambiente MATLAB para e a ilustrar algunos resultados numricos con los diferentes esquemas. e

Ejemplo Clsico Sencillo a

Comezamos con el estudio del modelo ms sencillo de una ecuacin diferencial parcial del a o tipo parablico, a saber la ecuacin que modela el ujo propagacin de calor en una barra o o o o homogenea de longitud nita sin fuentes de calor. La ecuacin es la siguiente: o k 2u u = , en 0 < x < L, t > 0 t Cp x2 u(0, t) = u(L, t) = 0, t > 0, u(x, 0) = u0 (x) , 0 x L , (2.1) (2.2) (2.3)

donde u = u(x, t) es la temperatura de la barra en la posicin x al tiempo t, k es el coeciente o de conductividad trmica, es la densidad de la barra, Cp es el calor espec e co, y L es la longitud de la barra. Suponemos que los parametros k, y Cp son constantes. Adimensionalizacin. Con el objeto de simplicar la ecuacin diferencial anterior se ino o x u troducen las siguientes variables adimensionales: x = , u = , donde U = max u0 (x) L U u u con 0 x L. Con lo anterior se obtienen las siguientes relaciones = U y t t 2u U 2u = 2 . Sustituyendo estas ultimas expresiones en la ecuacin (2.1) se obtiene o x2 L x 2

Diferencias Finitas y E.D.P.

L2 Cp u 2u 2 = o 2 . Si se toma t = t k/L Cp , entonces las ecuacines (2.1) k t x (2.3) se tranforman, despus de quitar la comilla de las variables x y u, en la ecuacin ms e o a la ecuacin o sencilla: ut (x, t) = uxx (x, t) en 0 < x < 1, t > 0 u(0, t) = u(1, t) = 0, t > 0, u(x, 0) = u0 (x), 0 x 1, (2.4) (2.5) (2.6)

en donde ut y uxx representan derivadas de u respecto a t y x, respectivamente. En las

u(x,t)

1 0 Figura 1. Distribucin de temperatura en una barra uniforme o

secciones siguientes consideraremos la ecuacin adimensional (2.4)(2.6), a menos que se o especique lo contrario. La Figura 1 ilustra el problema modelo.

Mtodo de separacin de variables e o

La ecuacin anterior tiene una solucin en forma de series de Fourier que se puede calcular o o por medio del mtodo de separacin de variables. El mtodo de separcin de variables es un e o e o mtodo con limitaciones ya que no es aplicable a casos un poco ms generales. Sin embargo, e a proporciona soluciones utiles para propsitos de comparacin, adems de que proporciona o o a un medio para el anlisis de la estabilidad de los mtodos de diferencias nitas. En el mtodo a e e de separcin de variables se buscan soluciones de la forma u(x, t) = X(x) T (t). Sustituyendo o en la ecuacin (2.4), obtenemos X T = X T , en donde el punto indica derivacin respecto al o o X T = tiempo y las comillas derivacin respecto a la posicin. De lo anterior se tiene que o o T X debe ser igual a una constante k 2 , debido a que el lado izquierdo depende slo de t y el lado o derecho depende slo de x. Nombramos k 2 a esta constante para enfatizar que debe ser o negativa. Luego entonces, se tiene X(x) = sen kx, y T (t) = ek t . Por lo tanto, la solucin o debe de ser de la forma u(x, t) = ek t sen kx.
2 2

(3.1)

Diferencias Finitas y E.D.P.

Ahora es claro que el valor negativo k 2 se toma porqu no es posible obtener soluciones e con crecimiento exponencial en el problema f sico. En ausencia de fuentes de calor, y debido a las condiciones de frontera u = 0 en los extremos de la barra, el fenmeno de difusin o o presente en el problema provoca que la temperatura disminuya a partir del valor inicial. Condiciones de frontera. Las condiciones de frontera sirven para deteminar los valores que puede tomar la constante k. La primera condicin de frontera u(0, t) = 0 es satisfecha o automticamente por (3.1). La segunda condicin de frontera a o u(1, t) = ek t sen k = 0, es satisfecha por (3.1) si k = m para m = 1, 2 . . .. Modos de Fourier. De acuerdo a lo anterior, el problema (2.4)(2.5) tiene una innidad de soluciones denominadas modos de Fourier, y stas son de la forma e um (x, t) = em
2 2 t 2

sen mx .

(3.2)

Por lo tanto, la solucin general de la ecuacin diferencial (2.4), y que satisface las condiciones o o de frontera (2.5), es una superposicin de estos modos de Fourier. Es decir o

u(x, t) =
m=1

am em

2 2 t

sen mx

(3.3)

en donde las constantes am se encuentran de las condiciones iniciales (2.6) y de las condiciones de ortogonalidad de las funciones propias sen mx. Ortogonalidad. Las funciones sen mx, m = 1, 2, . . . son ortogonales bajo el producto escalar de funciones f, g =
1 0

f g dx. Adems a

1 0

sen2 mx dx = 1/2. La condicin inicial o

(2.6) debe ser satisfecha por (3.3): u(x, 0) =


m=1

am sen mx = u0 (x).

Multiplicando por sen nx sta ultima ecuacin e integrando se obtiene e o


1

an = 2
0

u0 (x) sen(nx) dx, n = 1, 2, . . .

(3.4)

Por lo tanto la solucin del problema (2.4)(2.6) en terminos de series de Fourier es o

u(x, t) =
m=1

am e(m) t sen(mx),

am = 2
0

u0 (x) sen(mx) dx.

(3.5)

Esta solucin puede considerarse como una solucin anal o o tica del problema, pero tiene el inconveniente que debemos calcular una innidad de integrales para encontrar los coecientes

Diferencias Finitas y E.D.P.

am y despues sumar un nmero innito de trminos, lo cual no es posible en la prctica. Para u e a encontrar una solucin concreta se deben evaluar slo un nmero nito de trminos de la o o u e serie, lo cual la convierte en una solucin aproximada desde el punto de vista prctico. Una o a de las principales limitacin del mtodo es que no es generalizable a ecuaciones diferenciales o e parciales ligeramente ms complicadas. a

Esquema expl cito de diferencias nitas

Los mtodos de aproximacin constituyen una alternativa cada vez ms viable para encontrar e o a soluciones de ecuaciones diferenciales. De entre los mtodos ms populares se encuentran e a los mtodos de diferencias nitas debido a su simplicidad. El esquema ms sencillo para e a el problema parbolico unidimensional es el esquema expl a cito de diferencias nitas. A continuacin presentamos como se encuentra el esquema: o 1. Construccin de la malla Se divide el intervalo (0, 1) en J subintervalos y el intervalo o de tiempo (0, tf ), donde tf es el tiempo nal, en N subintervalos x = 1/J xj = j x, j = 0, 1, ..., J. tf t = tn = n t, n = 0, 1, ..., N. N El conjunto de puntos (xj , tn ) as construidos constituyen una malla latice en donde o

1111 0000

t n+1 tn

1 0 1 0 11111111 00000000 1 0 1 0 1 0 1 0 1 0 1 0

11 00

11 00

xj1 x j x j+1

Figura 2. Malla y molcula computacional para el esquema expl e cito o queremos encontrar los valores aproximados Ujn de la solucin exacta u(xj , tn ) 2. Aproximacin de las derivadas por medio de diferencias nitas. Para encontrar o una aproximacin de las derivadas que aparecen en la ecuacin diferencial, en el punto o o

Diferencias Finitas y E.D.P.

(xj , tn ), utilizamos las siguientes expansiones en serie de Taylor (suponiendo que la solucin o es sucientemente suave): (t)2 (t)3 utt (x, t) + uttt (x, t) + ... 2! 3! (x)2 (x)3 u(x + x, t) = u(x, t) + x ux (x, t) + uxx (x, t) + uxxx (x, t) + ... 2! 3! (x)2 (x)3 u(x x, t) = u(x, t) x ux (x, t) + uxx (x, t) uxxx (x, t) + ... 2! 3! u(x, t + t) = u(x, t) + t ut (x, t) + (x)2 utt (xj , ), (tn , tn+1 ) , 2! y posteriormente despejando ut (xj , tn ), para obtener u(xj , tn+1 ) = u(xj , tn ) + t ut (xj , tn ) + ut (xj , tn ) = Por lo tanto, podemos escribir: ut (xj , tn ) Ujn+1 Ujn con error O(t). t (4.5) u(xj , tn+1 ) u(xj , tn ) t utt (xj , ). t 2 (4.4) (4.1) (4.2) (4.3)

Aproximacin de ut en el punto (xj , tn ). Se obtiene evaluando (4.1) en dicho punto: o

Aproximacin de uxx en el punto (xj , tn ). Se obtiene evaluando (4.2)(4.3) en dicho o punto y sumando para obtener: u(xj+1 , tn ) + u(xj1 , tn ) = 2 ut (xj , tn ) + (x)2 uxx (xj , tn ) + con (xj1 , xj+1 ). Despejando uxx (xj , tn ), se obtiene: uxx (xj , tn ) u(xj+1 , tn ) 2 ut (xj , tn ) + u(xj1 , tn ) (x)2 uxxxx (, tn ). (x)2 12
n n Uj+1 2 Ujn + Uj1 con error O((x)2 ). (x)2

(x)4 uxxxx (, tn ) 12

(4.6)

Por lo tanto, podemos escribir: uxx (xj , tn ) (4.7)

3. Aproximacin de la ecuacin diferencial o o De acuerdo a (4.5) y (4.7) el problema (2.4)(2.6) se puede sustituir por el problema aproximado
n n Ujn+1 Ujn Uj+1 2Ujn + Uj1 = , t (x)2 n n U0 = UJ = 0, 1 n N,

(Ecuacin en diferencias) o (Condiciones de frontera) (Condiciones iniciales)

(4.8) (4.9) (4.10)

Uj0 = u0 (xj ), 0 j J.

Diferencias Finitas y E.D.P. La ecuacin en diferencias (4.8) puede escribirse como o


n n Ujn+1 = Ujn + (Uj+1 2Ujn + Uj1 ), donde =

t , (x)2

(4.11)

para j = 1, ..., J 1, y n = 0, ..., N 1. Claramente cada valor en el nivel tn+1 puede calcularse independientemente de los dems en el mismo nivel, y solo evaluando valores en el a nivel tn . De ah el nombre de esquema expl cito. Las condiciones de frontera (4.9) e iniciales (4.10) son valores conocidos, y por tanto es posible calcular la solucin aproximada en todos o los puntos interiores para valores sucesivos de n a partir de la frmula (4.11) (ver Figura 2). o Ejemplo 1 Para ilustrar el comportamineto del esquema se escoge la distribucin inicial de o temperaturas dada por u0 (x) = 2x 2 2x si 0 x 1/2, si 1/2 x 1 .

Se utiliza el siguiente parmetro de discretizacin: x = 0.05, el cual corresponde a J = 20. a o Adems se consideran dos casos t = 0.0012 y t = 0.0013, es decir = 0.48 y = 0.52. a Para los clculos se utiliz el programa expllicito1.m escrito para el ambiente MATLAB y a o que se incluye al nal de este trabajo. Los resulltados se muestran en la Figura 3. Despus de realizar los experimentos numricos, se observa que con t = 0.0012 se obe e tienen resultados numricos aceptables. Por otro lado, con t = 0.0013 la solucin numrica e o e muestra oscilaciones que crecen rpidamente conforme t aumenta. Esto muestra que no a es posible escoger x y t de manera arbitraria. Es sorpredente la diferencia entre las soluciones a pesar de la diminuta diferencia entre los dos valores de t. Este fnomeno e es un resultado t pico de estabilidad inestabilidad que aparece frecuentemente cuando o se utilizan esquemas expl citos para resolver numricamente ecuaciones diferenciales. Ms e a adelante estudiaremos detenidamente el fenmeno de estabilidad y veremos su dependencia o respecto de la razn de mallas de los parmetors de discretizacin por medio de . o a o

Error de truncamiento

El error de truncamiento es un concepto util para estudiar el error de los mtodos de aprox e imacin as como la convergencia de los mismos. o El error de truncamiento T (x, t) para el esquema (4.8) se obtiene cuando la aproximacin o

Diferencias Finitas y E.D.P.


1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

7
n=0
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

n = 10

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

n = 30

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

n = 50

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

t = 0.0012

t = 0.0013

Figura 3. Solucin del problema por medio del mtodo expl o e cito.

Ujn se reemplaza por la solucin exacta de la ecuacin diferencial: o o T (x, t) := u(x, t + t) u(x, t) u(x + x, t) 2u(x, t) + u(x x, t) t (x)2 (5.1)

Sustituyendo u(x, t+t), u(x+x, t), y u(xx, t) por sus expansiones en series de Taylor (4.1), (4.2), y (4.3), respectivamente, y simplicando posteriormente, se obtiene T (x, t) = ut uxx + 1 1 utt (x, t) t uxxxx (x, t) (x)2 + . . . 2 12 1 1 uxxxx (x, t) (x)2 + T OA, = utt (x, t) t 2 12 (5.2) (5.3)

Diferencias Finitas y E.D.P.

donde T OA indica trminos de orden alto. Frecuentemente es conveniente truncar la serie e innita introduciendo un trmino de residuo: e 1 1 T (x, t) = utt (x, ) t uxxxx (, t) (x)2 2 12 donde (x x, x + x), (t, t + t). Consistencia del esquema. Para el esquema expl cito vemos que T (x, t) 0 cuando t, x 0, (x, t) ,

(5.4)

independientemente de la relacin entre t y x. Gracias a sta propiedad se dice que el o e esquema es consistente con la ecuacin diferencial. o Orden del esquema. Tambin podemos observar que e 1 1 t Mxxxx Mtt t + Mxxxx (x)2 = (Mtt + ), 2 12 2 6 donde Mtt es una cota superior para |utt |, y Mxxxx es una cota superior para |uxxxx |. Por |T (x, t)| lo tanto, para valores jos de observamos que |T (x, t)| se comporta asintticamente como o O(t). Con la excepcin de ciertos valores especiales de , sta ser la mayor potencia de t o e a para la cual se satisface esta propiedad. Por lo tanto, se dice que el esquema tiene precisin o de primer orden en t, y se escribe T (x, t) O(t). Subiendo el orden del esquema. Si u es sucientemente suave, entonces ut = uxx implica utt = uxxxx . En este caso la relacin (5.4) se puede escribir como o 1 1 T (x, t) = (1 ) uxxxx t + O(t2 ) 2 6 Por lo tanto, si tomamos = 1/6 se obtiene que el esquema es de segundo orden en t. Es decir, en este caso se tiene T (x, t) Sin embargo, la condicin o O(t2 ) t 1 = es muy severa, pues el paso del tiempo debe tomarse 2 (x) 6 muy pequeo. Por ejemplo n x = 0.1 = t = 1.67 103 , x = 0.01 = t = 1.67 105 .

Convergencia del mtodo expl e cito

Sin entrar en detalles tcnicos, podemos decir que el esquema expl e cito de diferencias nitas es convergente si para algn valor jo de la solucin aproximada Ujn tiende al valor u o

Diferencias Finitas y E.D.P.

exacto de la solucin cuando ambos t y x tienden a cero. Probaremos que el esquema es o convergente si 1/2. Denimos en+1 := Ujn+1 u(xj , tn+1 ) . j Evaluando (5.1) en (xj , tn ) y despejando u(xj , tn+1 ), obtenemos u(xj , tn+1 ) = u(xj , tn ) + {u(xj+1 , tn )2u(xj , tn )+u(xj1 , tn )}+t T (xj , tn ). Sustituyendo (6.2) y (4.11) en (6.1), y simplicando, se obtiene en+1 = (1 2) en + en + en t Tjn . j j+1 j1 j (6.3) (6.2) (6.1)

1 Si , entonces los primeros tres coecientes del lado derecho de esta igualdad son no 2 negativos y suman 1. Por lo tanto |en+1 | = (1 2) |en | + |en | + |en | + t |Tjn | . j j+1 j1 j Deniendo E n := max{ |en |, j = 0, 1, ..., J } , j y T = se obtiene E n+1 E n + t T . Si adems suponemos E 0 = 0 (valores iniciales exactos), entonces a E n N t T tf T 0 si t 0. (6.6) t Mxxxx (Mtt + ) 2 6 cota superior de |T (x, t)| , (6.5) (6.4)

Para lograr lo anterior se ha supuesto que Mtt y Mxxxx se satisfacen uniformemente sobre toda la regin. Esto slo es posible si suponemos que los datos iniciales y de frontera son o o consistentes, y si los datos inciales son sucientemente suaves. De otra manera debemos se debe depender del efecto suavizador del operador de difusin para asegurar cotas de esta o forma para todo tiempo t > 0 Ejemplo2. En el siguiente ejemplo donde u(0, t) = u(1, t) = 0 y u(x, 0) = 0.9, es un caso donde las condiciones inciales no son consistentes con las condiciones de frontera, pues es las esquinas x = 0 y x = 1 hay una discontinuidad. La Figura 4 muestra como el operador de disusin casi inmediatamente suviza la solucin o o

Diferencias Finitas y E.D.P.

10

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6

n=0

0.5 0.4 0.3 0.2 0.1 0 0 0.2

n=1

0.4

0.6

0.8

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6 0.5

n=5

0.4 0.3 0.2 0.1 0 0 0.2

n = 15

0.4

0.6

0.8

Figura 4. Efecto suavizador del operador de difusin o

La propiedad de convergencia de la solucin aproximada a la solucin exacta cuando los o o parametros de discretizacin t y x tienden a cero es fundamental para cualquier esquema o de aproximacin. Muestra que puede obtenerse la precisin deseada con el uso de una malla o o lo sicientemente na. Sin embargo, no es conveniente hacer un renamiento excesivo pues, aparte que el volumen de clculos aumenta dramticamente, tambin se acumula el error a a e de redondeo. Es bin sabido que a partir de cierto renamiento el error de redondeo puede e dominar al error de truncamiento.

Anlisis de Fourier del error a

Hemos expresado la solucin exacta de la ecuacin diferencial como una serie de Fourier, o o la cual es una suma innita de modos como la expresada en la ecuacin (3.5). En forma o compleja esta serie se puede escribir como
1

u(x, t) =

am e(m) t eimx ;

am = 2
0
2

u0 (x)eimx dx.
2

(7.1)

En este caso los modos de Fourier son um (x, t) = e(m) t eimx = ek t eikx .

Diferencias Finitas y E.D.P.

11

N mero de onda. Al nmero k := m se le denomina el nmero de onda del modo. Si el u u u nmero de onda k es grande se dice que el modo es de alta frecuencia. En un punto de la u malla xj = jt, tn = nt, se tiene um (xj , tn ) = (ek
2 t

)n eik(jx) .

(7.2)

La amplitud de cada modo es el primer trmino del lado derecho, y este tiende a cero con el e tiempo: (ek
2 t

)n 0 cuando n .

Veremos que un modo similar de Fourier es la solucin exacta de la ecuacin en diferencias. o o


n n Caso Discreto. La ecuacin en diferencias Ujn+1 = Ujn + (Uj+1 2Ujn + Uj1 ) tiene un o

modo de fourier discreto de la forma Ujn (k) := n eik(jx) . (7.3)

Factor de amplicacin del modo: Al trmino = (k) se le demonima el factor de o e amplicacin del modo de Fourier discreto con nmero de onda k, y sustituye al trmino o u e exponencial ek obtiene n+1 eik(jx) = n eik(jx) + (n eik(j+1)x 2n eik(jx) + n eik(j1)x ) . Simplicando esta expresin, se obtiene o (k) = 1 + ( eikx 2 + eikx ) = 1 4 sen2 (kx/2), = t . (x)2
2 t

Sustituyendo el modo de Fourier discreto (7.3) en la ecuacin en diferencias (4.11), se o

Por lo tanto, la solucin de la ecuacin en diferencias solucin aproximada del problema o o o o se puede escribir como la serie (al poner k = m) Ujn =
mZ

Am (m)n eim(jx)

(7.4)

con (m) = 1 4 sen2 (mx/2). Comparacin entre la solucin exacta y la solucin discreta. Para efectuar una o o o comparacin entre las soluciones exacta y discreta solo comparamos el factor de ampliicacin o o (k) con el termino exponencial ek t , debido a que esta es la unica diferencia entre las expresiones para los modos de Fourier dicretos y los modos de Fourier continuos. Haciendo
2

Diferencias Finitas y E.D.P. una expansin en series de Taylor de ambos, encontramos que o

12

1 4 k (t)2 . . . 2 1 4 (k) = 1 k 2 t + k t (x)2 . . . 12 y observamos que ambas son iguales hasta el segundo trmino, que es un trmino de primer e e ek
2 t

= 1 k 2 t +

orden en t. Por lo tanto concluimos que la solucin aproximada es de primer orden o t t. Adems observamos que la aproximacin es de segundo orden si = a o = (x)2 Observese que hemos recobrado las mismas conclusiones que con el anlisis del error a

en 1 . 6 de

truncamiento y convergencia. Sin embargo, con el anlisis de Fourier podemos decir un poco a ms. Por ejemplo, los trminos de baja frecuencia (k pequeo) son bin aproximados a e n e pues 1 1 ) + . . . C() k 4 (t)2 . 12 2 Esto no sucede con los trminos de alta frecuencia como veremos en seguida. Por un lado, e 2 para valores grandes de k en la solucin exacta ek n t 0 rapidamente cuando n . o 1 Pero en la solucin numrica |(k)|n cuando n si > , debido a que en este o e 2 caso |(k)| > 1. En particular para m = J, k x = , y |(k) ek
2 t

| = k 4 (t)2 (

1 |(k)| = |1 4 sen2 | = 4 1 > 1 si > . 2 2

Estabilidad

Para el modelo que hemos considerado decimos que el mtodo es estable si existe K > 0, e independiente de k, tal que |(k)n | K, n, k. (8.1)

Condicin de Von Neumann. En la expresin anterior, si K > 1 entonces la funcin K s o o o es convexa en el intervalo [0, 1], de tal forma que queda por debajo del segmento de recta dado por 1 + (K 1)s como se muestra en la Figura 5. 1 Lugo entonces para s = con n = 1, 2 . . . se tiene n 1 t |(k)| K 1/n 1 + (K 1) = 1 + (K 1) . n tf Si llamamos K a la constante k1 obtenemos la celebre condicin de Von Neumann o tf

Diferencias Finitas y E.D.P.

13

K 1+(K1)s 1 K
s

0
para estabilidad:

0<s<1
s

Figura 5. Grcas de K y 1 + (K 1)s, con 0 < s < 1 a

|(k)| 1 + K t

k.

(8.2)

Esta condicin es necesaria y suciente para la convergencia de un esquema de diferencias o consistente que aproxime a una ecuacin diferencial. Como la anterior condicin debe sato o isfacerse para t > 0 arbitrario, entonces para que el esquema sea estable basta con que el factor de amplicacin de todo modo de Fourier discreto sea menor que uno, es decir o |(k)| 1, k. (8.3)

En particular, para nuestro modelo, el mtodo expl e cito de diferencias es estable si 1 |(k)| = |1 4 sen2 kx| 1 2 21 1 1 4 sen kx 1 2 21 0 4 sen kx 2. 2 Por lo tanto, el mtodo explicito es e Estable si 1/2 , Inestable si > 1/2 . Numero nito de modos discretos de Fourier. Hemos usado una serie innita para e representar Ujn en trminos de los modos de Fourier como se muestra en (7.4). Sin embargo, sobre una malla discreta solamente puede haber un nmero nito de modos distintos. De u hecho, dos modos con nmero de onda k1 y k2 son iguales si (k1 k2 )x es un multiplo de u 2. Por lo tanto, los modos distintos asociados a la malla discreta son aquellos asociados a

Diferencias Finitas y E.D.P.

14

los numero de onda k = m con m = (J 1), (J 2), . . . , 1, 0, 1, . . . , J. El modo ms a alto sobre la malla es el asociado a k = J. De acuerdo a la ecuacin (7.3) este modo es: o Ujn (J) = (J)n eiJ(jx) = (1 4)n cosj = (1 4)n (1)j De hecho, este es el modo ms inestable y es el responsable de las oscilaciones cuando a > 1/2, como se observa en el Ejemplo 1 de la Seccin 4. o

Mtodo impl e cito

La restriccin de estabilidad para el mtodo expl o e cito 1/2 es muy severa, especialmente cuando queremos resultados en tiempos grandes. Adems, si se quisiera mejorar la precisin a o de los resultados disminuyendo x = 1/J, la cantidad de trabajo aumentar proporcionala mente a J 2 , lo cual representa un gran costo computacional. Uno de los remedios ms a utilizados para remontar estos inconvenientes es utilizar un esquema de tipo impl cito, es decir, utilizar equemas de diferencias nitas de tiempo hac atrs. En nuestro modelo para a a el ujo de calor en la barra, esto se logra evalundo el lado derecho de la ecuacin (4.8) en o n + 1 en lugar de n. El esquema de diferencias impl cito es, por lo tanto
n+1 n+1 Ujn+1 Ujn Uj+1 2Ujn+1 + Uj1 = t (x)2

(9.1)

La mlecula computacional se muestra en la siguiente Figura 6. o

1111 0000

t n+1 tn

11111111 00000000 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

11 00

11 00

xj1 x j x j+1

Figura 6. Molecula computacional del esquema impl cito

Diferencias Finitas y E.D.P. La ecuacin en diferencias puede escribirse en la forma siguiente o


n+1 n+1 Uj1 + (1 + 2) Ujn+1 Uj+1 = Ujn ,

15

j = 1, . . . , J 1 ,

(9.2)

complementada por las condiciones de frontera (4.9) y las condiciones iniciales (4.10). Estabilidad. El esquema es incondicionelamente estable pues al sustituir U (k)n = j n ei k j x en la ecuacin en diferencias (9.2), simplicando y despejando , en forma anloga o a a como se hizo en el caso expl cito, se obtiene el factor de amplicacin o (k) = 1 , 1 + 4 sen2 ( 1 k x) 2 (9.3)

el cual es menor que 1 en valor absoluto para toda k y para todo valor de . Por lo tanto t y x se escogen tomando solo criterios de precisin. o Costo adicional. Sin embargo, el esquema es un poco ms complicado debido a que para a obtener la solucin en cada nivel tiempo tn+1 es necesario resolver un sistema de J 1 o ecuaciones con J 1 incgnitas. Es decir, el costo adicional, es resolver en cada nivel de o tiempo un sistema de ecuaciones de tamao (J 1) (J 1) con matriz constante n 2 1 1 2 1 . . . . . . . . . . . . . . . . . . . . . . A=I + 1 2 1 1 2 donde I indica la matiz identidad de tamao (J 1) (J 1). n Ejemplo 3. Para ilustrar el comportamiento del esquema impl cito, consideremos el problema resuelto en el Ejemplo 1 (Seccin 4). Se utilizan el mismo parmetro de discretizacin o a o x = 0.05 (J = 20). Se consideran los casos t = 0.0013 ( = 0.52) y t = 0.0125 ( = 5). Para los clculos se utiliz el programa implicito1.m escrito para el ambiente MATLAB y a o que se incluye al nal de este trabajo. Los resultados se muestran en la Figura 7. El lector puede hacer experimentos con algun valor jo de , y varios valores de J, por ejempo J = 200, 400, 1000, etc., para vericar que la memoria se agota rapidamente, y en consecuencia la eciencia del mtodo disminuye dramticamente. e a Algoritmo de Thomas. Realmente no hemos hecho gran cosa, excepto que hemos utilizado

Diferencias Finitas y E.D.P.


1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

16
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

n=0

n=0

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3

n = 10

0.2 0.1 0 0 0.2

n=1
0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3

n = 30
0.4 0.6 0.8 1

0.2 0.1 0 0 0.2

n=3
0.4 0.6 0.8 1

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2

n = 50
0.4 0.6 0.8 1

0.1 0 0 0.2 0.4

n=5
0.6 0.8 1

t = 0.0013 ( = 0.52 )

t = 0.0125 ( = 5)

Figura 6. Resultados numricos del problema modelo con el mtodo impl e e cito un esquema que es estable para todo valor de los parmetros de discretizacin. Sin embargo, a o el costo computacional es demasido alto an, debido a la utilizacin de memoria (por la u o necesidad de almacenar la matriz) como por el volumen de operaciones que hay que realizar, al tener que resolver un sistema de ecuaciones en cada iteracin de tiempo. o Afortunadamente la matriz A del sistema es una matriz rala (sparse), es decir, la inmensa mayor de su coecientes es cero. De hecho, la matriz A tiene una estructura muy a regular, debido a que es una matiz tridiagonal y adems diagonalmente dominante. a Esta estructura se puede explotar inteligentemente para ahorrar memoria y resolver el sistema de manera muy eciente. El mtodo ms eciente para el presente caso es el denominado e a algoritmo de Thomas. Este mtodo consiste en reducir el sistema tridiagonal a un sistema e

Diferencias Finitas y E.D.P. bidiagonal superior de la forma Uj ej Uj+1 = fj j = 1, 2, . . . , J 1,

17

por medio de eliminacin del trmino Uj1 en cada ecuacin de la forma o e o Uj1 + (1 + 2) Uj Uj+1 = dn , j j = 1, 2, . . . , J 1 .

en donde identicamos dn con Ujn , el lado derecho de (9.2) (obsevese que hemos suprimido j los super ndice n y n + 1 en los trminos con U para simplicar la notacin). e o Para lograr la reduccn anterior se procede como sigue: en la primera ecuacin del o o sistema tridiagonal j = 1 y Uj1 = U0 = 0, por los que esta ecuacin se transforma en o dn 1 n , f1 = . 1 + 2 1 + 2 Despejando U1 de sta ecuacin, sustituyendo en la segunda ecuacin del sistema tridiagonal, e o o
n U1 e1 U2 = f1 ,

con e1 =

y reordenando, se obtiene
n U2 e2 U3 = f2 ,

con e2 =

, 1 + 2 e1

n f2 =

n d2 + f1 . 1 + 2 e1

n n Observese que e1 y e2 no dependen de n, pero f1 y f2 s Continuando inductivamente de . esta forma, obtenemos el sistema bidiagonal

Uj ej Uj+1 = fjn ,

con ej =

, 1 + 2 ej1

fjn =

n dj + fj1 , 1 + 2 ej1

(9.4)

para j = 1, . . . , J 1, con e0 = f0 = 0. Este sistema bidiagonal resultante se puede resolver entonces de manera muy fcil por medio de sustitucin hacia atrs: a o a UJ = 0 Para j = J 1, . . . , 1, hacer Uj = fjn + ej Uj+1 nalizar La anterior metodolog es parte de los algoritmos que se conocen come como resolvedores a rapidos fast solvers por su nombre en el idioma Ingls. La tcnica de solucin es un caso o e e o particular de una tcnica denominada de reduccn c e o clica. Debido a que la matriz original es diagonalmente dominante cada coeciente ej en (9.4) es menor a uno en valor absoluto, lo cual garaniza que el uso de las relaciones de recurrencia como Uj = fj + ej Uj+1 = fj , para encontrar la solucin, es nmericamente estable. El trabajo computacional del mtodo o u e impl cito es apenas tres veces aproximadamente el del mtodo expl e cito cuando se utiliza

Diferencias Finitas y E.D.P.

18

el algoritmo de Thomas. La verdadera importancia del mtodo implicito radica en que los e pasos de tiempo pueden tomarse signicativamente mayores a los permitidos por el mtodo e expl cito, con lo cual al nal hay un ahorro real en el costo computacional. Ejemplo 4. Consideremos de nuevo el problema resuelto en el Ejemplo 1 (Seccin 4). Se o pueden utilizar los parmetros de discretizacin: x = 0.05 (J = 20) y = 1. Los resultados a o son muy semejantes a los ya obtenidos anteriormente. El progama implicito1t.m, que contiene el algorimto de Thomas para resolver los sistemas tridiagonales, se incluye al nal de las notas. El lector puede repetir el experimeto del Ejemplo 3 con varios valores de J, y vericar que con el algoritmo de Thomas hay un ahorro real en memoria y un aumento considerable en la eciencia para encontrar la solucin numrica. o e

10

Metodo (Promedios pesados)

Los mtodos expl e cito e impl cito dieren solamente en que el primero aproxima uxx por tres punto en el nivel de tiempo tn , y el segundo por tres puntos en el nivel de tiempo tn+1 . Una generalizacin natural de estos mtodos ser una aproximacin que use los seis puntos. Esto o e a o puede lograrse mediante un promedio pesado de las dos ecuaciones en diferencias:
n+1 n+1 n n Ujn+1 Ujn Uj+1 2Ujn+1 + Uj1 Uj+1 2Ujn + Uj1 = + (1 ) , t (x)2 (x)2

(10.1)

con 0 1. Con = 0 Con = 1 Obtenemos el mtodo expl e cito. Obtenemos el mtodo impl e cito.

En la siguiente gura ilustramos la molcula computacional del mtodo e e La ecuacin en diferencias constituye un sistema tridiagonal de J 1 ecuaciones con J 1 o incgnitas en cada paso del tiempo n = 1, 2, . . . o
n+1 n+1 n n Uj1 + (1 + 2)Ujn+1 Uj+1 = Ujn + (1 )(Uj1 2Ujn + Uj+1 ) ,

(10.2)

con j = 1, . . . , J 1, y complementada por las condiciones de frontera (4.9) y las condiciones iniciales (4.10). Los cocientes de ste sitema de ecuaciones satisfacen las condiciones para e poder aplicar el algoritmo de Thomas, y al hacer eliminacin obtenemos el sistema bi o

Diferencias Finitas y E.D.P.

19

1111 0000

t n+1 tn

1 0 1 0

1 0 1 0

1 0 1 0

11 00

11111111 00000000 1 0 1 0 1 0 1 0 1 0 1 0

11 00

xj1 x j x j+1
diagonal Uj ej Uj+1 = fj , ej = , 1 + (2 ej1 ) fj =

Figura 7. Molcula computacional del esquema e

dn + fj1 j , 1 + (2 ej1 )

(10.3)

j = 1, . . . , J 1, con e0 = f0 = 0 y dn es el lado derecho de (10.2) para cada j. Este sistema j se resuelve ecientemente por medio de sustitucin regresiva. o Al nal de las notas se incluye el programa teta1t.m con este esquema. Estabilidad. Sustituyendo el modo discreto Ujn = n eik(jx) en la ecuacin (10.2), y simo plicando obtenemos 1 1 = { + (1 )} eikx 2 + eikx = { + (1 )} 4 sen2 kx . 2 Despejando de la ecuacin anterior, obtenemos o
1 1 4(1 ) sen2 ( 2 kx) (k) = , 1 1 + 4 sen2 ( 2 kx)

(10.4)

la cual es siempre menor a uno debido a que > 0 y 0 1. Por lo tanto puede haber inestabilidad solo si < 1, es decir si 1 4(1 2) sen2 ( kx) > 2. 2 El modo ms inestable, con nmero de onda k = J, maximiza el trmino en el lado a u e
1 izquierdo, pues en este caso 2 kx = /2. As que la condicin de inestabilidad es 4(1 o

Diferencias Finitas y E.D.P. 2) > 2. Por lo tanto 1 = inestabilidad 2 1 (1 2) = estabilidad 2 De lo anterior se tienen dos casos: (1 2) >

20

Para 0 < < 1/2 , el mtodo es estable si (1 2) 1/2. (Estabilidad condicional). e Para 1/2 < 1 , el mtodo es estable para toda > 0 . e (Estabilidad incondicional).

Para cualquier > 0 se debe resolver un sistema tridiagonal y, a primera vista no se ve 1 ninguna ventaja de usar 0 < < , pues en estos casos el esquema es condicionalmente 2 1 estable, a menos que los resultados sean ms precisos que en los casos 1. Para esto a 2 es necesario estudiar el error de truncamiento del mtodo. e Error de truncamiento en el mtodo . Para calcular el error de truncamiento del e o esquema , que involucra seis puntos, se escoge el punto (xj , tn+ 1 ) como punto de expansin
2

en serie de Taylor. Este es el mejor punto, por simetr y porque es el que cancela el mayor a, de nmero de trminos en la expansin. Con estas consideraciones el error de truncamiento u e o es: Tj
n+ 1 2

un+1 un (un+1 2un+1 + un+1 ) + (1 (un 2un + un ) j j1 j j+1 j j1 j j+1 . t (x)2


2

(10.5)

Para expander alrededor del punto (xj , tn+ 1 ) se hace un+1 j un j 1 1 1 1 1 = u + tut + ( t)2 utt + ( t)3 uttt + . . . 2 2 2 6 2
1 n+ 2

j
1 n+ 2

1 1 1 1 1 u tut + ( t)2 utt ( t)3 uttt + . . . 2 2 2 6 2 = tut + 1 1 (t)3 uttt + (t)t uttttt . . . 24 1920
n+ 1 2 j

Diferencias Finitas y E.D.P. Por otro lado, se tiene un+1 j1 2un+1 j + un+1 j+1 1 1 (x)6 uxxxxxx + . . . = (x) uxx + (x)4 uxxxx + 12 360
2 n+1 j
1 n+ 2

21

1 1 = (x) uxx + (x)4 uxxxx + (x)6 uxxxxxx + . . . 12 360


2

j
1 n+ 2

1 1 1 + t (x)2 uxxt + (x)4 uxxxxt + (x)6 uxxxxxxt + . . . 2 12 360

j n+ 1 2 j

1 1 1 1 + ( t)2 (x)2 uxxtt + (x)4 uxxxxtt + (x)6 uxxxxxxtt + . . . 2 2 12 360 + ... Anlogamente a un j1 2un j + un j+1 1 1 = (x) uxx + (x)4 uxxxx + (x)6 uxxxxxx + . . . 12 360
2
1 n+ 2

j n+ 1 2 j n+ 1 2 j

1 1 1 t (x)2 uxxt + (x)4 uxxxxt + (x)6 uxxxxxxt + . . . 2 12 360

1 1 1 1 + ( t)2 (x)2 uxxtt + (x)4 uxxxxtt + (x)6 uxxxxxxtt + . . . 2 2 12 360 ... Entonces (un+1 2un+1 + un+1 ) + (1 )(un 2un + un ) j1 j j+1 j1 j j+1 1 1 = (x) uxx + (x)4 uxxxx + (x)6 uxxxxxx + . . . 12 360
2
1 n+ 2

j n+ 1 2 j n+ 1 2 j

1 1 1 + ( )t (x)2 uxxt + (x)4 uxxxxt + (x)6 uxxxxxxt + . . . 2 12 360

1 1 1 (x)6 uxxxxxxtt + . . . + (t)2 (x)2 (x)2 uxxtt + (x)4 uxxxxtt + 8 12 360 + ...

Diferencias Finitas y E.D.P. Por lo tanto, el error de truncamiento es


n+ 1 Tj 2

22

1 1 uxxt t uxxx (x)2 2 12

n+ 1 2 j

1 1 + uttt uxxtt 24 8
n+ 1 2 j

n+ 1 2 j

(t)2 (10.6)

1 1 2 + uxxxxt t uxxxxxx (x)2 12 2 6!

(x)2 + T OA .

Claramente el esquema es consistente para toda y para toda . Adems el error de a truncamiento muestra que normalmente se obtiene orden de convergencia lineal en t, pero 1 que en el caso simtrico especial = , el mtodo es de segundo orden tanto en t como en e e 2 x Esquema de CrankNicolson. El caso especial = CrankNicolson 1 da origen al esquema que de 2 (10.7)

n+1 n+1 n n Ujn+1 Ujn (Uj+1 2Ujn+1 + Uj1 ) + (Uj+1 2Ujn + Uj1 ) = , t 2(x)2

el cual es incondicionalmente estable y de segundo orden tanto en x como en t. El error de truncamineto de ste mtodo es e e
n+ 1 Tj 2

1 = uxxxx (x)2 + uttt (t)2 12

1 n+ 2

+ T OA .

Por lo tanto, podemos explotar las propiedades adicionales de estabilidad para tomar pasos en el tiempo mayores, como por ejemplo t = x, y seguir obteniendo precisin de segundo o orden. Convergencia del metodo . Se puede hacer un anlisis de convergencia para el mtodo a e semejante al hecho en la Seccin 6 para el mtodo expl o e cito. Como en aquel caso denimos en+1 := Ujn+1 un+1 . j j Despejando Ujn+1 de (10.1) y un+1 de (10.5) y sustituyendo en (10.8), se obtiene j
n+1 n+1 n n en+1 = Ujn + (Uj+1 2Ujn+1 + Uj1 ) + (1 )(Uj+1 2Ujn + Uj1 j

(10.8)

(un+1 2un+1 + un+1 ) + (1 )(un 2un + un ) un tTj j+1 j j1 j j1 j j+1 = en + (en+1 2en+1 + en+1 ) + (1 )(en 2en + en ) tTj j j+1 j j1 j+1 j j1
n+ 1 2

n+ 1 2

Diferencias Finitas y E.D.P. Reordenando, se obtiene (1 + 2)en+1 = (en+1 + en+1 ) + (1 )(en + en ) + [1 2(1 )]en tTj j1 j+1 j j j1 j+1 Deniendo E n como en (6.5) y T como la cota superior de Tj (xj , tn+ 1 ), se obtiene
2 1 n+ 2

23

n+ 1 2

. (10.9)

sobre todos los puntos

(1 + 2)E n+1 2E n+1 + E n + tT ,

debido a que todos los coecientes en (10.9) excepto el ultimo son no negativos. Simplicando la expresin anterior se obtiene o E n+1 E n + tT , y suponiendo que el error incial es cero, E 0 = 0, se obtiene el resultado deseado E n ntT < tf T = 0 cuando t 0 ,

1 sobre toda trayectoria de renamiento que satisfaga (1 ) . 2

11

Principio del mximo a

Si se considera otras propiedades debe tener un esquema de aproximacin de la ecuacin o o diferencial ut = uxx aparte de la convergencia, estabilidad, y orden razonable de presicin, o lo siguiente ser pedir que satisfaca un principio del mximo. Se sabe tanto desde el a a punto de vista matemtico y como f a sico que la solucin u(x, t) est acotada inferiormente y o a superiormente por los extremos de los valores iniciales y los valores de frontera. Es deseable que el esquema discretizacin tenga esta propiedad. Los valores extremos sobre la malla o computacional se muestran en la siguiente Figura 8. 1 Resultado: El mtodo con 0 1 y (1 ) e produce la sucesin {Ujn } con o 2 n Umin Uj Umax , donde
m m Umin = min { U0 , UJ , 0 m n; Uj0 0 j J }, m m Umax = max { U0 , UJ , 0 m n; Uj0 0 j J }.

Demostracin. Despejando Ujn+1 de (10.1), se obtiene o


n+1 n+1 n n Ujn+1 = Ujn + (Uj+1 2Ujn+1 + Uj1 ) + (1 ) (Uj+1 2Ujn + Uj1 ) .

Reagrupando, se obtiene
n+1 n+1 n n (1 + 2)Ujn+1 = (Uj1 + Uj+1 ) + (1 )(Uj1 + Uj+1 ) + [1 2(1 )]Ujn

Diferencias Finitas y E.D.P.

24

1111 0000

t n+1 tn

11 00

11 00

xj1 x j x j+1

Figura 8. Valores extremos sobre la malla computacional. Observese que todos los coecientes en la relacin anterior son no negativos ya que 0, o > 0, y 2(1 ) 1. Supongase ahora que U toma su mximo en un punto interno, y que a
n+1 n+1 n n este es Ujn+1 , y sea U el mayor de los cinco valores adyacentes Uj1 , Uj+1 , Uj1 , Ujn , Uj+1

en la ecuacin anterior. Entonces Ujn+1 U debido a que los coecientes en el lado derecho o suman 1 + 2. Por otro lado U Ujn+1 , pues Ujn+1 es el valor mximo por hiptesis. Se a o concluye que U = Ujn+1 . El argumento puede repetirse en cada uno de los puntos U as obtenidos, obteniendo una sucecin de puntos hasta que se toma un punto frontera. Un o argumento similar muestra que el m nimo tambin se toma en un punto frontera. e 1 La condicin del resultado anterior, (1 ) , para garantizar el principio del o 2 1 mximo es mucho ms restrictiva que la obtenida por anlisis de Fourier, (1 2) , a a a 2 1 para garantizar estabilidad. Por ejemplo, el esquema de CrankNicolson ( = ) es estable 2 para toda , pero satisface el principio del mximo slo si 1. a o El anlisis del principio del mximo puede usarse como medio alternativo para obtener a a condiciones de estabilidad. Este tipo de anlis tiene la ventaja sobre el anlisis de Fourier de a a que es fcilmente aplicable a problemas con coecientes variables, entre otros. Sin embargo, a con el principio del mximo solo pueden derivarse condiciones sucientes para estabilidad. a Ejemplo 5. Con el objeto de ilustrar el efecto de las condiciones para que se satisfaga un principio del mximo, consiremos el problema donde la distribucin incial de temperaturas a o en la barra tiene la forma de un pico, es decir u0 (x) es 1 en el punto medio de una malla con J = 20 y 0 en cualquier otro punto de la malla. Si tomamos = 1/2, enonces para

Diferencias Finitas y E.D.P.


1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1 1 0.9 0.8 0.7 0.6 0.5

25

n=0

0.4 0.3 0.2 0.1 0 0

n=0
0.2 0.4 0.6 0.8 1

0.5

n=2

0.5

n=1

0.5

0.2

0.4

0.6

0.8

0.5

0.2

0.4

0.6

0.8

0.5

n=4

0.5

n=2

0.5

0.2

0.4

0.6

0.8

0.5

0.2

0.4

0.6

0.8

0.5

0.5

n=6
0

n=3

0.5

0.5 0 0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

t = 0.0025 ( = 1 )

t = 0.005 ( = 2 )

Figura 9. Resultados con = 1/2, J = 10 y = 1 y = 2. t = 0.0025 ( = 1) se satisface la condicin para que el esquema satisfaga el principio del o mximo, mientras que para t = 0.005 ( = 2) no se satisface la condicin. Los resultados a o se muestran el la Figura 9. Como puede observarse, en el segundo caso, en el primer nivel del tiempo la solucin es negativa en el centro, despus tiende a corregirse conforme avanza o e el tiempo. Esto no sucede en el primer caso, donde si se tiene la condicin necesaria 1 o para que el esquema satisfaga el principio del mximo. Se utiliz el programa teta1t.m. a o

Diferencias Finitas y E.D.P.

26

12
12.1

Problemas ms generales a
Coecientes variables

En el modelo de la ecuacin de ujo de calor en la barra, se ha supuesto que las propiedades o del material conductor son constantes con el tiempo e independientes de x. En realidad, en muchos problemas estas propiedades no son constantes y dependen cuando menos de x. Consideremos el problema ms general a ut = a(x, t) uxx , con a = con a(x, t) > 0, x, t. (12.1)

k , donde k denota el coeciente de conductividad trmica, c el calor espec e co, y c la densidad del material. Anlogo del mtodo . En el caso de coecientes variable el esquema de promedios a e pesados es o
n+1 n+1 n n Ujn+1 Ujn Uj+1 2Ujn+1 + Uj1 Uj+1 2Ujn + Uj1 =a + (1 ) , t (x)2 (x)2

(12.2)

donde a puede escogerse de diferentes maneras. Algunas de las elecciones adecuadas son

1111 0000

t n+1 tn

1 0 1 0

1 0 1 0

1 0 1 0

11 00

11111111 00000000 1 0 1 0 1 0 1 0 1 0 1 0

11 00

xj1 x j x j+1
1 n+ 2

Figura 10. El coeciente a se evalua en el punto central. a = aj o , y a = 1 (an + an+1 ). Con la primera eleccin , a(x, t) se evalua en el punto j 2 j

intermedio de la molcula computacional (ver Figura 10), y se puede probar que el error de e

Diferencias Finitas y E.D.P. truncamiento no se altera excepto por la inclusin del extrafactor a: o
n+ 1 Tj 2

27

1 a uxxt t uxxx (x)2 2 12 +

n+ 1 2 j

1 a + uttt uxxtt 24 8
n+ 1 2 j

n+ 1 2 j

(t)2

1 1 2a uxxxxt t uxxxxxx (x)2 12 2 6!

(x)2 + T OA .

Se observa inmediatamente que el esquema es consistente, y que el orden del mismo es O(t) 1 en el caso general, y O((t)2 + (x)2 ) en el caso que = (CrankNicolson). 2 La ecuacin en diferencias (12.2) se puede escribir en la forma o
n+1 n+1 n n (1+2 a )Ujn+1 = a (Uj1 +Uj+1 )+[12 a (1) ] Ujn +a (1) (Uj+1 +Uj1 ) . (12.3)

De esta ecuacin se observa que los coecientes del lado derecho suman lo mismo que el coeo ciente del lado izquierdo, y que se satisface un principio del mximo si todos los coecientes a son no negativos. Esto ultimo se logra si 1 2 a (1 ) 0. Por lo tanto, la convergencia del mtodo se puede realizar por medio del principio del mximo, pero se debe adoptar la e a condicin de estabilidad o (1 ) a(x, t) 1/2 x, t . (12.4)

En ocasiones es conveniente usar la segunda alternativa a =

1 n (a 2 j

+ an+1 ), la cual j

produce un error de truncamiento del mismo orden. Por el contrario, el siguiente esquema
n+1 n U n+1 2Ujn+1 + Uj1 Ujn+1 Ujn U n 2Ujn + Uj1 n+1 j+1 n j+1 = aj + (1 ) aj . t (x)2 (x)2

produce un error de truncamiento O(t) independientemente del valor de . Es decir, no es posible aumentar el orden para algn valor especial de , motivo por el cual este esquema u no es recomendable.

12.2

Ecuacin parablica en forma autoadjunta o o

En las aplicaciones, muy frecuentemente la ecuacin de difusin aparece en la forma o o ut = (a ux )x , a = a(x, t) > 0 , (12.5)

Diferencias Finitas y E.D.P.

28

denominada forma autoadjunta. Es posible escribir esta ecuacin como ut = a uxx + ax ux , o y tratar de construir un esquema de aproximacin a partir de esta expresin. Sin embargo, o o es mejor construir una aproximacin de la ecuacin respetando su forma original. Para o o construir una aproximacin, hacemos la siguiente denicin o o x Uj := Uj+ 1 Uj 1 .
2 2

(12.6)

donde x es el operador de diferencias centrales con respecto a la variable de posicin x. o Entonces, el esquema expl cito para el problema en forma autoadjunta es Ujn+1 Ujn x [an x (Ujn )] j = , t (x)2 el cual, como puede observarse, respeta la simetria del problema. Desarrollando los operadores de diferencias centrales x obtenemos el esquema expl cito
n n an 1 (Uj+1 Ujn ) + an 1 (Ujn Uj1 ) Ujn+1 Ujn j+ 2 j 2 = . t (x)2

(12.7)

La molcula computacional de este esquema se muestra en la Figura 11, donde se han e dibujado simbolos para indicar los puntos donde se evalua la funcin a(x, t). o

1111 0000

t n+1 tn
11111111 00000000 1 0 1 0 1 0 1 0 1 0 1 0

11 00

11 00

xj1 x j x j+1

Figura 11. Molcula computacional para el problema en forma adjunta. e El error de truncamiento de ste mtodo viene dado por e e Tjn 1 = utt t 2
n j

a uxxxx ax uxxx axx uxx axxx ux + + + 12 6 8 24

(x)2 + . . .
j

(12.8)

donde, como se esperaba, el error es de primer orden en t.

Diferencias Finitas y E.D.P.

29

Para estudiar la estabilidad del mtodo reescribimos (12.7) en la forma e


n n Ujn+1 = 1 (an 1 + an 1 ) Ujn + an 1 Uj+1 + an 1 Uj1 . j+ j j+ j
2 2 2 2

Esta ecuacin satisface un principio del mximo si los coecientes son acotados y no nego a ativos. Como hemos supuesto que a(x, t) > 0 para toda x y t, entonces el principio del mximo se satisface si. a 1 donde A = max{a(x, t)} . A , 2 Esta condicin es una condicin necesaria para la estabilidad del mtodo expl o o e cito, lo cual a su vez asegura la convergencia del mtodo, gracias a la consistencia del mismo. e Un esquema anlogo al mtodo es a e Ujn+1 Ujn x [an+1 x (Ujn+1 )] x [an x (Ujn )] j j = + (1 ) . 2 t (x) (x)2 Desarrollando los operadores de diferencias centrales y reordenando el resultado, se obtiene
n+1 n+1 1 + (an+1 + an+1 ) Ujn+1 = 1 (1 )(an 1 + an 1 ) Ujn + (an+1 Uj1 + an+1 Uj+1 ) j+ j j 1 j 1 j+ 1 j+ 1
2 2 2 2 2 2

+ (1 ) 1 , 2

(an 1 j 2

n Uj1

n + an 1 Uj+1 ) . j+
2

Este esquema satisface un principio del mximo si a (1 )A donde A = max{a(x, t)} .

12.3

Problemas no lineales

Considerese la ecuacin diferencial o ut = a(u) uxx , a(u) > 0 ,

en donde el coeciente a es una funcin de la incgnita u. El coeciente a tambin podr o o e a depender de x y t directamente, pero este caso no es signicativamente ms dif a cil. El esquema ms sencillo para este problema es el siguiente esquema expl a cito
n n Ujn+1 Ujn Uj1 2Ujn + Uj+1 n = a(Uj ) . t (x)2

(12.9)

Diferencias Finitas y E.D.P. El error de truncamiento de este mtodo esta dado por e Tjn = 1 1 utt t a(Ujn ) uxxxx (x)2 + . . . 2 12
n

30

O(t) ,
j

de donde se concluye que el esquema es consistente y de primer orden en t. Despejando Ujn+1 de (12.9), se obtiene
n n Ujn+1 = 1 2 a(Ujn ) Ujn + a(Ujn ) Uj+1 + Uj1 .

(12.10)

Los coecientes en el laso derecho suman uno y son no negativos si 1 2 a(Ujn ) 0 para toda j y n. Por lo tanto de satisface un principio del mximo si a 1 donde A = max{a(Ujn )}. (12.11) 2 Sin embargo, el anlisis del error no es triival en este caso, debido a que aparece un problema a si A que no surge en el caso de ecuaciones lineales: el error se propaga de manera nolineal cuando n crece. Mostraremos brevemente las dicultades que aparecen al intentar hacer el anlisis del error. De la ecuacin (12.10) y de la denicin del error de truncamiento se a o o obtiene Ujn+1 = Ujn + a(Ujn ) x2 Ujn un+1 = un + a(un ) x2 un + t Tjn . j j j j y no pueden restarse estas ecuacione en forma directa para obtener el error en = Ujn+1 un+1 j j debido a que a(Ujn ) = a(un ). Pero se puede linealizar a(un ) por medio de su serie de Taylor j j del primer orden a(un ) = a(Ujn ) + (un+1 Ujn+1 ) j j a n = ( ) , u j n n en donde j se encuentra entre un y UJ . Por lo tanto j a(Ujn ) en j en+1 = en + a(Ujn ) x2 en + j j j a n ( ) u j (12.12)

a (x2 un ) en t Tjn j j u (12.13) a n n n n n n n n ( ) e t Tj . = 1 2 a(Uj ) ej + a(uj ) (ej1 + ej+1 ) + u j j a Para poder garantizar convergencia se debe controlar el crecimiento de . Suponiendo que u a existe K > 0 tal que | | K, y que |un 2un + un | Mxx (x)2 , donde Mxx es una j1 j j+1 u

Diferencias Finitas y E.D.P. cota superior de |uxx |, entonces E n+1 [1 + K Mxx t] E n + t T [1 + K Mxx t]n+1 E 0

31

+ {1 + [1 + K Mxx t] + [1 + K Mxx t]2 + . . . + [1 + K Mxx t]n }t T (12.14) [1 + K Mxx t]n+1 1 t T K Mxx t eK Mxx tf T 0 cuando t, x 0 . K Mxx Se observa que la estimacin del error es mucho peor que en el caso lineal, a menos que K o y Mxx sean pequeos. n Esquemas impl citos. Muchos autores preeren utilzar esquemas impl citos tambin o e esquemas semiimpl citos para aproximar problemas no lineales. El esquema impl cito ms a simple es
n+1 Ujn+1 = Ujn + a(Ujn+1 ) (Ujn+1 2 Ujn+1 + Uj1 ) .

(12.15)

Se podr hacer una aproximacin semiimpl a o cita tomando a(Ujn ) en lugar de a(Ujn+1 ) en la ecuacin anterior. El sistema resultante (12.15) es un sistema algebraico no lineal, y debe o utilizarse algn mtodo iterativo algn tipo de linealizacin para resolverlo. Dentro de los u e o u o mtodos iterativos ms comunes se encuentran los mtodos de tipo Picard ( punto jo), y el e a e o mtodo de Newton. El valor inicial para comenzar las iteraciones comunmente es la solucin e o en el paso de tiempo anterior. Por ejemplo, un mtodo tipo Picard para resolver (12.15) es e el siguiente Dado Ujn+1, 0 = Ujn Para k = 1, 2, . . . hasta convergencia
n+1, Calcular Ujn+1, k = Ujn + a(Ujn+1, k1 ) (Ujn+1, k 2 Ujn+1, k + Uj1 k )

Finalizar Se paran las iteracione con algn criterio como u numro pequeo, por ejemplo 106 e n U n+1, k U n+1, k1 , donde es un U n+1, k menor. Observese que en cada iteracin del tiempo o o en el criterio de paro.

se deben resolver kmin sistema de ecuaciones lineales, donde kmin es el numero m nimo de itreaciones para obtener la tolerancia Algunos mtodos alternativos estn basados en algoritmos tipo predictorcorrector. Por e a

Diferencias Finitas y E.D.P. ejemplo Predictor: Corrector: Uj x2 Uj Ujn = a(Ujn ) t/2 (x)2 2 n+1 Ujn+1 Ujn + Ujn ) n+1/2 x (Uj = a(Uj ) t 2 (x)2
n+1/2 n+1/2

32

(semiimpl cito) (CrankNicolson)

Se pueden utilizar otras variantes. Observese que en este caso tambin hay que resolver dos e sistemas algebraico linelaes en cada iteracin del tiempo. o

13

Problemas bidimensionales

Consideremos la caja rectangular D = 0, X] [0, Y ] y denotemos por D a su frontera. Sea a > 0 un coeciente de difusin, que consideraremos constante por el momento. El probo lema parbolico bidimensional (problema de difusin), con condiciones de frontera Dirichlet, a o consiste en calcular u = u(x, y, t) tal que ut = u = a (uxx + uyy ), en D, sobre D, t 0. en D, t > 0, (13.1) (13.2) (13.3)

u(x, y, 0) = u0 (x, y) u(x, y, t) = g(x, y, t)

Construimos una malla uniforme sobre el dominio rectangular D de la siguiente manera: Se divide [0, X] en I subintervalos y [0, Y ] en J subintervalos Sean x = X/I y y = Y /J los pasos de discretizacis. Los puntos de la malla sobre D son o xi = i x, yj = j y, i = 0, 1, . . . , I, j = 0, 1, . . . , J.

Dividimos el intervalo de tiempo [0, tf ] en N subintervalos de tal manera que los niveles de tiempo discreto son tn = n t, n = 0, 1, . . . , N.
n o o Esquema expl cito. Denotamaos por Ui,j la aproximacin a la solucin exacta u(xi , yj , tn ).

El exquema expl cito bidimensional es


n+1 n n n n n n n Ui,j Ui,j Ui1,j 2Ui,j + Ui+1,j Ui,j1 2Ui,j + Ui,j+1 =a + . t (x)2 (y)2

(13.4)

Diferencias Finitas y E.D.P.

33

1111 0000

yj+1 yj yj1

1 0 1 0 11111111 00000000 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

11 00

11 00

xi1 x i x i+1

Figura 12. Molcula computacional para el esquema expl e cito bidimensional Con el objeto de simplicar la exposicin introducimos la siguiente notacin: o o U := Ui,j
2 x U := Ui1,j 2Ui,j + Ui+1,j 2 y U := Ui,j1 2Ui,j + Ui,j+1

Con la notacin anterior el esquema expl o cito se puede escribir como


2 y U n 2 U n U n+1 U n =a x 2 + , t (x) (y)2

(13.5)

bin o e
2 2 U n+1 = U n + x x U n + y y U n ,

(13.6)

donde x = a t/(x)2 y y = a t/(y)2 . Casi todo el anlisis en una dimensin puede extenderse facilmente al caso de dos dia o mensiones. Error de truncamiento. a 1 T (x, t) = utt t uxxxx (x)2 + uyyyy (y)2 + . . . O(t) 2 12 Por tanto, el esquema es consistente y de orden t. Convergencia. Bajo la condicin x + y 1/2, se satisface o En a2 t 1 Mtt t + Mxxxx + Myyyy 2 12 tf 0 ,

(13.7)

Diferencias Finitas y E.D.P. cuando t 0.

34

Estabilidad. La estabilidad tambin puede analizarse mediante series de Fourier, suponiendo e que a es constante, e ignorando las condiciones de frontera. En este caso los modos de Fourier son de la forma U n = n ei(k1 x+k2 y) , (13.8) donde k1 y k2 son los n meros de onda en las direcciones x y y, respectivamente. Sustiu tuyendo (13.8) en (13.6), se obtiene que el factor de amplicacin es o 1 1 = (k1 , k2 ) = 1 4 x sen2 ( k1 x) + y sen2 ( k2 y) . 2 2 aqu que (13.9)

El peor modo discreto es aquel en el que k1 x = k2 y = , es decir k1 = I y k2 = J. De 1 (13.10) || 1 si x + y . 2 Esta condicin de estabilidad es ms severa que en el caso unidimensional. Por ejemplo, o a a t 1 si x = y = h, entonces = 2 . Adems, cuando a sea variable, en cualquier pico a h 4 de ella sera necesario disminuir el paso del tiempo para mantener la estabilidad. Entonces, el esquema es algo imprctico en 2D, y ms an su generalizacin a 3D. Por lo tanto, debe a a u o buscarse equemas impl citos semiimpl o citos para relajar la condicin de estabilidad. o

14

El mtodo e

Una posible alternativa para superar las limitaciones del esquema expl cito bidimensional es el metdo de promedios pesados (mtodo ): o e
2 y ( U n+1 + (1 ) U n ) U n+1 U n 2 ( U n+1 + (1 ) U n ) =a x +a . t (x)2 (y)2

(14.1)

Para el caso unidimensional hemos visto que el esquema es incodicionalmente estable para 1/2, y es de segundo orden tanto en t como en x si = 1/2. Entonces vale la pena considerar el mtodo e CrankNicolson. Haciendo = 1/2 y reordenando (14.1), obtenemos la ecuacin en o 1 1 1 1 2 2 2 2 (14.2) x x y y ) U n+1 = (1 + x x + y y ) U n . 2 2 2 2 Para vericar estabilidad, sustituimos el modo (13.8) en sta ecuacin, y despus de simplie o e (1 diferencias

Diferencias Finitas y E.D.P. car y despejar, encontramos que el factor de amplicacin en este caso es o (k1 , k2 ) = 1 2 x sen2 (k1 x/2) 2 y sen2 (k2 y/2) . 1 + 2 x sen2 (k1 x/2) + 2 y sen2 (k2 y/2)

35

(14.3)

Inmediatamente se sigue que |(k1 , k2 )| 1 para todo k1 , k2 , y para todo x, y, t. Por lo tanto, el esquema bidimensional de CrankNicolson es incondicionalmente estable. En una dimensin la gran ventaja de este esquema fu relajar la condicin de estabilidad o e o a un extra costo relativamente pequeo, debido a que se cuenta con un resolvedor rpido n a y eciente para sistemas tridiagonales, que es el algoritmo de Thomas. Sin embargo, en el caso de dos dimensiones, a pesar que el algoritmo sigue siendo incondicionalmente estable, el trabajo extra respecto al caso expl cito es considerable. En el problema bidimensional, para cada n = 1, 2, . . ., se debe resolver un sistema lineal con (I 1) (J 1) ecuaciones con el
n+1 mismo nmero de incgnitas: Ui,j . Para ilusttrar, supongamos que escogemos x = y, u o

es decir x = y , entonces la matriz del sistema es: A I 4 1 I A I 1 4 1 A = I + . . . . . . . . . . . . . . . . . . . . . . con A = . . . . . . . . . . . . . . . . . . . . . . I A I 1 4 1 I A 1 4 Como puede observarse la matriz del sistema A viene dada por bloques, y cada ecuacin o involucra cinco incgnitas, y no hay forma de permutar renglones y columnas para que los o coecientes nocero formen una banda delgada, de tal forma que podamos hacer eliminacin o y reduccn como en el caso unidimensional. En conclusin, no es posible resolver el sistema o o en forma eciente en el caso bidimensional, y el problema es todav ms severo en el caso a a tridimensional.

15

Mtodos impl e citos de direcciones alternantes (ADI)

Como los mtodos impl e citos son muy ecientes en una dimensin, es natural buscar mtodos o e bidimensionales que sean impl citos en una direccin pero no en ambas. El siguiente esquema, o es un ejemplo de este tipo de esquemas

Diferencias Finitas y E.D.P. PeacemanRachford (1955)


2 y U n U n+1/2 U n 2 U n+1/2 =a x +a t/2 (x)2 (y)2 2 y U n+1 2 U n+1/2 U n+1 U n+1/2 =a x +a t/2 (x)2 (y)2

36

IMPLICITO EN x EXPLICITO EN y EXPLICITO EN x IMPLICITO EN y

(15.1) (15.2)

n t

(n+ 1 )t 2

(n+1) t

Este esquema puede escribirse en la forma 1 1 2 2 x x ) U n+1/2 = (1 + y y ) U n , (15.3) 2 2 1 1 2 2 (1 y y ) U n+1 = (1 + x x ) U n+1/2 , (15.4) 2 2 el cual constituye un sistema de dos problemas impl citos unidimensionales. La solucin de o cada uno de estos sistemas involucra solo conjuntos de ecuaciones tridiagonales. El trabajo (1 total, en un paso del tiempo, necesita de la solucin de J 1 sistemas tridiagonales de orden o I 1, seguido de la solucin de I 1 sistemas tridiagonales de orden J 1. Este proceso o de solucin de conjuntos de sistemas tridiagonales, es mucho ms rpido que la solucin del o a a o problema completo de (I 1)(J 1) ecuaciones en el mtodo de CrankNicolson. El trabajo e requerido es aproximadamente tres veces el del mtodo expl e cito. La siguiente gura ilustra el orden en el que se pueden resolver estos sistemas tridiagonales. A ste tipo de esquemas se e les conoce comunmente como esquemas impl citos de direcciones alternantes ADI o por sus siglas en el idioma Ingls (alternating direction implicit). e Para hacer el anlisis del esquema, eliminamos U n+1/2 en las ecuaciones (15.3), (15.4). a Se obtiene la siguiente ecuacin en diferencias o 1 1 1 1 2 2 2 2 (15.5) (1 x x )(1 y y ) U n+1 = (1 + x x )(1 + y y ) U n . 2 2 2 2 Sustituyendo el modo de Fourier (13.8) en (15.5), simplicando, y despejando, se obtiene el factor de amplicacin o (1 2 x sen2 (k1 x/2)) (1 2 y sen2 (k2 y/2)) (k1 , k2 ) = . (1 + 2 x sen2 (k1 x/2)) (1 + 2 y sen2 (k2 y/2)) de donde se sigue inmediatamente la estabilidad incondicional del mtodo ADI. e (15.6)

Diferencias Finitas y E.D.P.


y

37

1111 0000

11 00

yj+1 yj yj1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

11 00

J1 sistemas tridiagonales de orden I1

xi1 x i x i+1
I1 sistemas tridiagonales de orden J1

Figura 13. Ilustracin del metodo ADI para problemas bidimensionales o Principio del mximo: En la ecuacin (15.3), al desarrollar, se obiene a o y n x n+1/2 n+1/2 n+1/2 n n (1 + x ) Ui, j = (1 y ) Ui, j + (Ui, j1 + Ui+1, j ) (Ui+1, j + Ui1, j ) . 2 2 De esta expresin vemos que si y 1, entonces Ui,j o vacinos de U y U
n n+1/2 n+1/2

es combinacin lineal de valores o

con coecientes no negativos que suman 1. Se obtiene una relacin o

anloga para la ecuacin (15.4). Por lo tanto si a o max{x , y } 1 , entonces se asegura que el esquema ADI satisface el principio del mximo. a Truncamiento. Observese que el esquema ADI (15.5) puede escribirse como 1 1 x y 2 2 n+1 1 1 1 2 2 2 2 2 (1 x x y y + x y ) U = (1 + x x + y y + x y x ty 2 ) U n . (15.7) 2 2 4 2 2 4 As que el error de truncamiento es
n+1/2 Ti,j 2 2 2 2 un+1 un ax (un+1 + un ) ay (un+1 + un ) t a2 x y (un+1 un ) + = t 2 (x)2 2 (y)2 4(x)2 (y)2 n+1/2

.
i,j

(15.8)

Diferencias Finitas y E.D.P. Se puede vericar que un+1 un (t)2 uttt = ut + + ... t 24
n+1/2

38

(15.9)
i,j n+1/2

2 x (un+1 + un ) (x)2 uxxxx (t)2 uxxtt + + ... = uxx + 2 (x)2 12 12 2 y (un+1 + un ) (y)2 uyyyy (t)2 uyytt = uyy + + + ... 2 (y)2 12 12

(15.10)
i,j n+1/2

.
i,j

(15.11)

Por otro lado, gracias a (15.9) se tiene


2 2 t x y (un+1 un ) (t)2 uttt (t)2 2 2 = x y ut + + ... (x)2 (y)2 (x)2 (y)2 24 n+1/2 i,j 2 x v = (x)2

y dado que para cualquier funcin v = v(x, y, t) sucientemente suave se satisface o vxx + (x)2 vxxxx + . . . 12
n+1/2

entonces
i,j n+1/2 i,j

2 2 t x y (un+1 un ) = (t)2 uxxyyt + O(t)2 + O(x)2 + O(y)2 (x)2 (y)2

(15.12)

Por lo tanto sustituyendo las expresiones (15.9)(15.12) en (15.8) se obtiene que el error de truncamiento es
n+1/2 Ti,j

1 = 12

1 uttt (t)2 uxxxx (x)2 uyyyy (y)2 2

n+1/2 i,j n+1/2

1 1 1 uxxtt (t)2 + uyytt (t)2 uxxyyt (t)2 4 2 2

+ T OA
i,j

(15.13)

= O (t)2 + (x)2 + (y)2 . Se concluye entonces, que el esquema implicito de direcciones alternantes es de segundo orden respecto a t, x y y. Ejemplo 6. Se considera el problema bidimensional con a = 1 y condiciones inciales dadas por la funcin peaks de MATLAB. La Figura 14 ilustra esta funcin cuando n = 0. o o Las condiciones de frontera son u = 0 sobre D. Se toman I = J = 48, y t = 0.0025. Observese que las condiciones iniciales toma valores positivos y negativos. En la misma gura se muestra la solucin para varios niveles de tiemp n. Se utiliz el programa adicn.m, que o o consiste del metodo ADI con = 1/2 (CrankNicolson).

Diferencias Finitas y E.D.P.

39

n=0
10
5

n=3

10 1 1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

5 1 1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

n=6
5 5 0 0

n = 25

5 1 1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

5 1 1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

Figura 14. Resultados numricos para un problema bidimensional obtenidos con el metodo e ADI

Ejemplo 7. En este ultimo ejemplo se toma como condicion inicial una funcin con dos o torres en forma simtrica (Ver Figura 15 con n = 0), y condiciones de frontera cero. Se e toma I = J = 40 y dos casos: t = 0.0005, y t = 0.0025. El primer caso proporciona x = y = 0.8, y satisface la condicin para el principio del mximo para el esquema ADI. o a El segundo caso, por el contrario, proporciona x = y = 4, y no se satisface el principio del mximo. Notese que, a pesar de que el mtodo es estable en ambos casos, la solucin se a e o degrada en el caso que no se satisface la condicin para el principio del mximo. o a

16

Programas

Nota. En los comentarios de estos programas no se incluyen acentos.

Diferencias Finitas y E.D.P.

40

n=0
1 0.8 0.6 0.4 0.2 0 0.2 1 1 0.5 0.4 Y 0 0.2 0 X Y 0 0.2 0 0.8 0.6 0.5 1 0.8 0.6 0.4 0.2 0 0.2 1

n=0

1 0.8 0.6 0.4 X

n=5
1 0.8 0.6 0.4 0.2 0 0.2 1 1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

1 0.8 0.6 0.4 0.2 0 0.2 1

n=1

1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

1 0.8 0.6 0.4 0.2 0 0.2 1

n = 30

1 0.8 0.6 0.4 0.2 0 0.2 1


1

n=2

1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

0.5 0.4 Y 0 0.2 0 X

0.8 0.6

1 0.8 0.6 0.4 0.2 0 0.2 1

n = 100

1 0.8 0.6 0.4 0.2 0 0.2 1


1

n=5

1 0.5 0.4 Y 0 0.2 0 X 0.8 0.6

0.5 0.4 Y 0 0.2 0 X

0.8 0.6

Figura 15. Ilustracin del principio del mximo en el mtodo ADI. Lado izquierdo: o a e t = 0.0005 (x = y = 0.8). Lado derecho t = 0.0025 (x = y = 4)

Diferencias Finitas y E.D.P.


function M = explicito1(J,dt,N) % METODO DE EULER EXPLICITO PARA EL MODELO PARABOLICO UNIDIMENSIONAL % % % % % % % ARGUMENTOS DE ENTRADA J = numero de subdivisiones de [0,1] dt = paso del tiempo N = numero de pasos del tiempo ARGUMENTO DE SALIDA M = almacena los distintas instantaneas graficas para hacer una animacion de la solucion % Paso de discretizacion del intervalo [0, 1] % Conjunto de valores x_j en la malla

41

dx = 1/J; x = 0:dx:1;

% Condiciones iniciales: u = 2x para x entre 0 y 0.5 % u = 2 2x para x entre 0.5 y 1 j = 1:J/2; u(j) = 2*x(j); j = J/2+1:J+1; u(j) = 2 2*x(j); plot(x,u,r) % Grafica de las condiciones iniciales axis([0 1 0 100]) pause nu = dt/dx^2; for n = 1:N % Iteraciones en el nivel del tiempo Unew(1) = 0; % Condicion de frontera for j = 2:J % Esquema de diferencias. Unew(j) = u(j) + nu*( u(j1)2*u(j)+u(j+1) ); end Unew(J+1) = 0; % Condicion de frontera u = Unew; % Actualizacion de la solucin plot(x,u) axis([0 1 0 100]) M(n) = getframe end

Diferencias Finitas y E.D.P.


function A = implicito1(J,dt,N) % METODO DE EULER IMPLICITO PARA EL MODELO PARABOLICO UNIDIMENSIONAL % CON CONDICIONES DE FRONTERA DIRICHLET HOMOGENENAS % % % % % % % % ARGUMENTOS DE ENTRADA J = numero de subdivisiones de [0,1] (J debe ser par) dt = paso del tiempo N = numero de pasos del tiempo ARGUMENTO DE SALIDA A = la matriz del sistema lineal en la ecuacion en diferencias Condiciones de frontera homogeneas en x = 0 y x = 1

42

dx = 1/J; % Paso de la discretizacion en el intervalo [0, 1] x = 0:dx:1; % Conjunto de valores x_j en la malla % Condiciones iniciales u = 2x para x entre 0 y 0.5 % u = 22x para x entre 0.5 y 1 u = zeros(J+1,1); j = 1:J/2+1; u(j) = 2*x(j); j = J/2+2:J+1; u(j) = 2 2*x(j); plot(x,u,r) % Grafica de las condiciones iniciales axis([0 1 0 1]) pause % CONSTRUCCION DE LA MATRIZ DEL SISTEMA nu = dt/dx^2; A = (1+2*nu)*eye(J1); A(1,2) = nu; for j = 2:J2; A(j,j1) = nu; A(j,j+1) = nu; end A(J1,J2) = nu; % Iteraciones en el tiempo unew = zeros(J+1,1); for n = 1:N, unew(1) = 0; % Condicion de frontera en x = 0 unew(2:J) = A\u(2:J); % SOLUCION DEL SISTEMA LINEAL unew(J+1) = 0; % Condicion de frontera en x = 1 u = unew; % Actualizacion para avanzar en el tiempo plot(x,u) axis([0 1 0 1]) M(n) = getframe; end

Diferencias Finitas y E.D.P.


function implicito1t(J,dt,N) % METODO DE EULER IMPLICITO PARA EL MODELO PARABOLICO UNIDIMENSIONAL % CON CONDICIONES DE FRONTERA DIRICHLET HOMOGENENAS % SE UTILIZA EL METODO DE THOMAS % % % % % % ARGUMENTOS DE J = numero de dt = paso del N = numero de ARGUMENTOS DE Nunguno ENTRADA subdivisiones de [0,1] (J debe ser par) tiempo pasos del tiempo SALIDA

43

dx = 1/J; % Paso de la discretizacion en el intervalo [0, 1] x = 0:dx:1; % Conjunto de valores x_j en la malla % Condiciones iniciales u = 2x para x entre 0 y 0.5 % u = 22x para x entre 0.5 y 1 j = 1:J/2+1; u(j) = 2*x(j); j = J/2+2:J+1; u(j) = 2 2*x(j); plot(x,u,r) % Grafica de las condiciones iniciales axis([0 1 0 1]) pause % Pausa nu = dt/dx^2; % Coeficientes e(j) del sistema normalizado e(1) = 0; for j = 2:J e(j) = nu/(1+nu*(2e(j1))); end % Iteraciones en el tiempo unew = zeros(J+1,1); for n = 1:N f(1) = 0; for j = 2:J % Lados derechos del sistema normalizado f(j) = (u(j)+nu*f(j1))/(1+nu*(2e(j1))); end unew(J+1) = 0; % Condicion de frontera homogenea en x = 1 % Solucion por sustitucion regresiva del sistema normalizado for j = J:1:2 unew(j) = f(j)+e(j)*unew(j+1); end unew(1) = 0; % CONDICION DE FRONTERA HOMOGENEA en x = 0 u = unew; % Actualizacion para avanzar en el tiempo plot(x,u) axis([0 1 0 1]) M(n) = getframe; end

Diferencias Finitas y E.D.P.


function teta1t(J, dt, N, theta) % METODO TETA PARA EL MODELO PARABOLICO UNIDIMENSIONAL % CON CONDICIONES DE FRONTERA DIRICHLET HOMOGENENAS % SE UTILIZA EL AGORITMO DE THOMAS % % % % % % % ARGUMENTOS DE J = numero de dt = paso del N = numero de theta = valor ARGUMENTOS DE Nunguno ENTRADA subdivisiones de [0,1] (J debe ser par) tiempo pasos del tiempo de teta entre 0 y 1 (CrankNicolson si theta = 0.5) SALIDA

44

dx = 1/J; x = 0:dx:1; % Condiciones iniciales u = 2x para x entre 0 y 0.5 % u = 22x para x entre 0.5 y 1 j = 1:J/2+1; u(j) = 2*x(j); j = J/2+2:J+1; u(j) = 2 2*x(j); plot(x,u,r) pause nu = dt/dx^2; nut = theta*nu; % Coeficientes e(j) del sistema normalizado e(1) = 0; for j = 2:J e(j) = nut/(1+nut*(2e(j1))); end % Iteraciones en el tiempo unew = zeros(J+1,1); for n = 1:N % Lados derechos del sistema normalizado f(1) = 0; for j = 2:J d = u(j) + (1theta)*nu*(u(j1)2*u(j)+u(j+1)); f(j) = (d + nut*f(j1))/(1+nut*(2e(j1))); end unew(J+1) = 0; % Condicion de frontera homogenea en x = 1 % Solucion por sustitucion regresiva del sistema normalizado for j = J:1:2 unew(j) = f(j)+e(j)*unew(j+1); end unew(1) = 0; % CONDICION DE FRONTERA HOMOGENEA en x = 0 u = unew; % Actualizacion para avanzar en el tiempo plot(x,u) axis([0 1 0.2 1]) M(n) = getframe; %pause end hold off

Diferencias Finitas y E.D.P.


function adicn(I,J,dt,N) % Metodo implicito de direcciones alternantes en 2D % Condiciones de frontera Dirichlet homogeneas dx = 1/I; dy = 1/J; nux = dt/dx^2; nuy = dt/dy^2; % Construccion de la malla bidimensional x = (0:dx:1); y = (0:dy:1); % Condiciones iniciales % Condicion inicial suave con valores postivos y negativos. % En este caso debera escogerse necesariamente I = J = 48 u = peaks; % Grafica de la condicion inicial surf(x,y,u) xlabel(X) ylabel(Y) pause % Calculo de los coeficientes e(i) en el algoritmo de Thomas. % ex(i) son los coef. para los sist. tridiagonales en la direccion x % ey(j) son los coef. para los sist. tridiagonales en la direccion y nuxm = 0.5*nux; ex(1) = 0; for i = 2:I ex(i) = nuxm/(1+nuxm*(2ex(i1))); end nuym = 0.5*nuy; ey(1) = 0; for j = 2:J ey(j) = nuym/(1+nuym*(2ey(j1))); end % Arreglo auxiliar para almacenar calculos intermedios unew = zeros(I+1,J+1); % ITERACIONES EN EL TIEMPO for n = 1:N % Solucion de los SISTEMAS TRIDIAGONALES EN LA DIRECCION X for j = 2:J % Se resuelve un sistema tridiagonal para cada j fx(1) = 0; for i = 2:I % Algoritmo de Thomas d = (1nuy)*u(i,j) + 0.5*nuy*(u(i,j1) + u(i,j+1)); fx(i) = (d + nuxm*fx(i1))/(1+nuxm*(2ex(i1))); end unew(I+1,j) = 0; % Condicion de frontera homogenea en x = 1 for i = I:1:2 unew(i,j) = fx(i)+ex(i)*unew(i+1,j); end unew(1,j) = 0; % Condicion de frontera homogenea en x = 0 end u = unew; % Actualizacion para ir a la otra direccion % Solucion de los SISTEMAS TRIDIAGONALES EN LA DIRECCION Y

45

Diferencias Finitas y E.D.P.


for i = 2:I % Se resuelve un sistema tridiagonal para cada i fy(1) = 0; for j = 2:J % Algoritmo de Thomas d = (1nux)*u(i,j) + 0.5*nux*( u(i1,j)+u(i+1,j) ); fy(j) = (d + nuym*fy(j1))/(1+nuym*(2ey(j1))); end unew(i,J+1) = 0; % Condicion de frontera homogenea en y = 1 for j = J:1:2 unew(i,j) = fy(j)+ey(j)*unew(i,j+1); end unew(i,1) = 0; % Condicion de frontera homogenea en y = 0 end u = unew; % Actualizacion para avanzar en el tiempo % Grafica de la solucion % contour3(x,y,u,50) surf(x,y,u); %shading flat axis([0 1 0 1 5 5]); %axis([0 1 0 1 0 1]); xlabel(X) ylabel(Y) M(n) = getframe; end

46

Вам также может понравиться