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

En este documento utilizaremos Octave para la aproximacin numrica de ecuaciones en derivadas parciales mediante el mtodo de las diferencias nitas.

El mtodo de las diferenciasnitas consiste en reemplazar cada una de las derivadas parciales por aproximaciones mediante cocientes incrementales de orden uno o dos. Entre sus ventajas, se encuentra el tratarse de un mtodo intuitivo y fcil de implementar. Entre sus inconvenientes, no es sencilla su generalizacin a dominios distintos de intervaloso, en general, a cubos ndimensionales (n = 1, 2, ...).

1.

Diferencias nitas 1D

Consideremos el siguiente problema diferencial de orden 2: Calcular u : [a, b] R solucin de d2 u(x) = f (x) en [a, b], dx2 u(a) = ua , u(b) = ub , (1) (2)

donde tanto f como los datos de contorno, ua y ub son previamente conocidos. Bajo unas hiptesis mnimas de regularidad para f (bastara f L2 (a, b), pero para utilizar el mtodo de las diferencias nitas supondremos que f es contnua), se sabe que el problema de contorno anterior tiene una nica solucin.

1.1.

Aproximacin mediante el mtodo de diferencias nitas

Consideremos una particin del intervalo [a, b] en n + 1 subintervalos, todos ellos de longitud h = (b a)/(n + 1): a = x0 < x1 < < xn+1 = b. Calcularemos, en cada uno de los puntos xi , una aproximacin del valor de u(xi ), a la que llamaremos ui . Conocemos los valores u0 y un+1 (pues deben coincidir, respectivamente, con los datos ua y ub ), de forma que nuestras incgnitas son, exactamente, u1 , u2 , . . . , un . Para calcularlas, realizamos, en el sistema anterior, una aproximacin de segundo orden1 de
Que no es difcil de deducir, utilizando los desarrollos de Taylor de u en x h y en x + h. Se puede demostrar, de hecho, que si u C 4 ([a, b]), el esquema propuesto es consistente y convergente (de orden 2 en h).
1

la derivada segunda : u (x) u(x h) 2u(x) + u(x + h) . h2

Utilizando esta frumula en (6) para los puntos xi (i = 1, . . . , n), obtenemos el siguiente sistema de ecuaciones: ui1 2ui + ui+1 = fi , h2 i = 1, . . . , n.

siendo fi = f (xi ). Si las observamos cuidadosamente, concluiremos que forman un sistema lineal como el que sigue: Auh = f, para la matriz 1 A= 2 h y los vectores u1 u2 . . . f1 + ua /h2 f2 . . y f = . fn1 fn + ub /h2 2 1 0 0 1 2 1 0 0 1 2 1 .. .. . . 0 ... 1 0 ... 0 ... ... ... .. . 0 0 0 (3)

, 2 1 1 2

(4)

uh = un1 un

(5)

La matriz A es tridiagonal y denida positiva, lo que dota al sitema lieal annterior de muy buenas propiedades de cara a su implementacin y resolucin, especialmente pensando en que n sea muy grande.

1.2.

Resultados numricos con Octave

Para construir el sistema (3), podemos utilizar la funcin diag (ver la ayuda de Octave). Se propone resolver la ecuacin (6) para los siguientes parmetros: 2

[a, b] = [0, 1] n = 10; h = 1/(n + 1); Datos de contorno: ua = 0; ub = 1; Segundo miembro: f (x) =
2 4

sin(x/2)

Extensin: denir una funcin, diferencias_finitas_1d, que tome como parmetros: Los extremos del intervalo (a, b) y el tamao de la particin (n). Los datos de contorno (ua y ub ) y la funcin segundo miembro, f . La funcin debe devolver el vector solucin, u.

2.
2.1.

Diferencias nitas 2D
Aproximacin mediante el mtodo de diferencias nitas

Consideremos un dominio rectangular, = (ax , bx ) (ay , by ) R2 . Planteamos el problema: Calcular u : R solucin de 2 u(x, y ) 2 u(x, y ) = f (x, y ) en , x2 y 2 u = g sobre (6) (7)

donde es la frontera de y tanto f (x, y ) como g (x, y ) son funciones conocidas, que supondremos continuas.

2.2.

Aproximacin mediante el mtodo de diferencias nitas

Deniremos un mallado uniforme del rectngulo , a travs de una particin de [ax , bx ] con talla hx = (bx ax )/(Nx + 1) y de una particin de [ay , by ] con talla hy = (by ah )/(Ny + 1). Estas particiones denen los puntos (xi , yj ) R2 , donde xi = i hx , i = 0, 1, ..., Nx + 1 yj = j hy , j = 0, 1, ..., Ny + 1

Calcularemos, en cada uno de los puntos (xi , yj ), una aproximacin del valor de u(xi , yj ), a la que llamaremos ui,j . De forma similar al caso 1D, podemos aproximar cada una de las derivadas parciales. Sumndolas, obtendremos la siguiente aproximacin del Laplaciano: 2 u(x, y ) 2 u(x, y ) u(x hx , y ) 2u(x, y ) + u(x + hx , y ) + 2 2 x y h2 x u(x, y hy ) 2u(x, y ) + u(x, y + hy ) + h2 y Utilizando esta frmula en los puntos (xi , yj ) de la malla, obtenemos el siguiente sistema de ecuaciones: ui1,j 2ui,j + ui+1,j ui,j 1 2ui,j + ui,j +1 = fi,j , 2 hx h2 y

siendo fi,j = f (xi , yj ), i = 1, . . . , Nx , i = 1, . . . , Ny .. Para transformar las ecuaciones anteriores en un sistema lineal, debemos escribir nuestras incgnitas, ui,j en forma de vector. Para ello, basta realizar una simple renumeracin de los ndices, por ejemplo, podemos denir el vector: u = [(u1,1 , u2,1 , ..., uNx ,1 ), (u1,2 , u2,2 , ..., uNx ,2 ), ...(u1,Ny , u2,Ny , ..., uNx ,Ny ) Si las observamos cuidadosamente, concluiremos que forman un sistema lineal, Au = b, donde la matriz viene dada por: a b 0 0 ... c 0 ... 0 b a b 0 . . . 0 c . . . 0 .. 0 b a b . . . 0 . 0 0 . .. .. .. 1 . . . . . A= 2 , h c 0 . . . b a b 0 c 0 . . . b a b . . . . . . . . . 0 ... 0 b a

siendo: a= 2 2 + 2 2 hx hy 1 b= 2 hx 1 c= 2 hy

El vector diagonal (c, c, . . . , c) est separado exactamente Nx posiciones desde la diagonal de la matriz. En cuanto al segundo miembro, incluir a los valores fi,j = f (xi , yj ) (a travs de una renumeracin idntica a la realizada para el vector u) y a 2 los trminos frontera (1/h2 x )gi,j y (1/hy )gi,j , en las posiciones adecuadas. Para simplicar el problema, podemos asumir que la condicin de contorno g , es nula salvo en el lado del rectngulo correspondiente a los puntos (x0 , y0 ), (x1 , y0 ), ..., (xNx +1 , y0 ). En tal caso, debemos sumar a los Nx primeros trminos segundo miembro los valores: 1 gi,0 , h2 y i = 1, ..., Nx

2.3.

Resultados numricos con Octave

Se propone resolver la ecuacin (6) para los siguientes parmetros: = [0, 1]2 Nx = Ny = 10; f = 0, g = 1 en los puntos (x0 , y0 ), (x1 , y0 ), ..., (xNx +1 , y0 ).

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