En este documento utilizaremos Octave para la aproximación numérica de ecuaciones en derivadas parciales mediante el método de las diferencias finitas

. El método de las diferenciasfinitas 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 método intuitivo y fácil de implementar. Entre sus inconvenientes, no es sencilla su generalización a dominios distintos de intervaloso, en general, a cubos n−dimensionales (n = 1, 2, ...).

1.

Diferencias finitas 1D

Consideremos el siguiente problema diferencial de orden 2: Calcular u : [a, b] → R solución 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 hipótesis mínimas de regularidad para f (bastaría f ∈ L2 (a, b), pero para utilizar el método de las diferencias finitas supondremos que f es contínua), se sabe que el problema de contorno anterior tiene una única solución.

1.1.

Aproximación mediante el método de diferencias finitas

Consideremos una partición 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 aproximación 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 incógnitas son, exactamente, u1 , u2 , . . . , un . Para calcularlas, realizamos, en el sistema anterior, una aproximación de segundo orden1 de
Que no es difícil 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

1

. lo que dota al sitema lieal annterior de muy buenas propiedades de cara a su implementación y resolución. y f =  . . n. . . h2 i = 1.... .la derivada segunda : u (x) ≈ u(x − h) − 2u(x) + u(x + h) . . h2 Utilizando esta fórumula en (6) para los puntos xi (i = 1... ..   2 −1  −1 2 (4)       uh =     un−1  un (5) La matriz A es tridiagonal y definida positiva. .. siendo fi = f (xi ). 0 0 0  (3)     .. . obtenemos el siguiente sistema de ecuaciones: − ui−1 − 2ui + ui+1 = fi . Resultados numéricos con Octave Para construir el sistema (3). Si las observamos cuidadosamente..2. podemos utilizar la función “diag” (ver la ayuda de Octave). . n). especialmente pensando en que n sea muy grande. concluiremos que forman un sistema lineal como el que sigue: Auh = f.. 0 .. . .. . −1 0 . . . 0 . .. Se propone resolver la ecuación (6) para los siguientes parámetros: 2 . 1. .    fn−1  fn + ub /h2  2 −1 0 0 −1 2 −1 0 0 −1 2 −1 . para la matriz    1   A= 2 h    y los vectores  u1 u2 .   f1 + ua /h2   f2     . .

1] n = 10.. 2.. 1.. Nx + 1 yj = j · hy . que tome como parámetros: Los extremos del intervalo (a. h = 1/(n + 1). by ] con talla hy = (by − ah )/(Ny + 1). . u. Aproximación mediante el método de diferencias finitas Definiremos un mallado uniforme del rectángulo Ω. y ) como g (x. Planteamos el problema: Calcular u : Ω → R solución de − ∂ 2 u(x. Datos de contorno: ua = 0. y ) ∂ 2 u(x. Ω = (ax . La función debe devolver el vector solución. Ny + 1 3 . donde xi = i · hx . Diferencias finitas 2D Aproximación mediante el método de diferencias finitas Consideremos un dominio rectangular. f . que supondremos continuas. ub = 1. a través de una partición de [ax . by ) ⊂ R2 . 2. diferencias_finitas_1d.. b) y el tamaño de la partición (n).[a. y ) − = f (x. j = 0. y ) son funciones conocidas. Segundo miembro: f (x) = π2 4 sin(xπ/2) Extensión: definir una función. 2. bx ] con talla hx = (bx − ax )/(Nx + 1) y de una partición de [ay .1. 1. . y ) en Ω. Estas particiones definen los puntos (xi . i = 0. b] = [0..2. Los datos de contorno (ua y ub ) y la función segundo miembro.. yj ) ∈ R2 . ∂x2 ∂y 2 u = g sobre ∂ Ω (6) (7) donde ∂ Ω es la frontera de Ω y tanto f (x. bx ) × (ay .

(u1. . por ejemplo. . . uNx . una aproximación del valor de u(xi . . y ) u(x − hx . .j = f (xi . .. i = 1.. u2. u2.. −b a −b     . y ) + u(x + hx . .. −b a −b    0 c 0 . y ) + u(x.Ny ... . Sumándolas. . 1    . uNx . obtenemos el siguiente sistema de ecuaciones: − ui−1... . . . . 0 c . podemos aproximar cada una de las derivadas parciales.   . a la que llamaremos ui. podemos definir el vector: u = [(u1. .2 . yj ). i = 1.. en cada uno de los puntos (xi . .(u1.. . y ) ∂ 2 u(x.1 . . donde la matriz viene dada por:   a −b 0 0 . . 0 .j −1 − 2ui. 2 hx h2 y siendo fi. yj ).  0 −b a −b . 0 −b a −b 0 . concluiremos que forman un sistema lineal. . . .Ny ) Si las observamos cuidadosamente...  h c 0 .j ui. 0     .. y + hy ) + h2 y Utilizando esta fórmula en los puntos (xi . yj ) de la malla.. ..2 . c 0 .j en forma de vector. A= 2 . . Au = b.. . . . .Ny . .2 ). y ) − 2u(x. . y − hy ) − 2u(x..j +1 − = fi..Calcularemos. uNx . 0 0    .. ui. . yj ). 0 −b a 4 . obtendremos la siguiente aproximación del Laplaciano: ∂ 2 u(x. De forma similar al caso 1D.1 ).j − 2ui.1 . u2. .j + ui+1. . 0 . y ) + ≈ 2 2 ∂x ∂y h2 x u(x. . Para ello.j .j + ui..j . . Para transformar las ecuaciones anteriores en un sistema lineal. Ny . ... . basta realizar una simple renumeración de los índices. Nx . debemos escribir nuestras incógnitas.

(x1 . . y0 ).j . En tal caso. (x1 . Resultados numéricos con Octave Se propone resolver la ecuación (6) para los siguientes parámetros: Ω = [0... h2 y i = 1.. . En cuanto al segundo miembro..0 .. Nx 2. 5 .. (xNx +1 . .siendo: a= 2 2 + 2 2 hx hy 1 b= 2 hx 1 c= 2 hy El vector diagonal (c. c. 1]2 Nx = Ny = 10. c) está separado exactamente Nx posiciones desde la diagonal de la matriz.j y (1/hy )gi.3. g = 1 en los puntos (x0 . incluirá a los valores fi. en las posiciones adecuadas. y0 ). yj ) (a través de una renumeración idéntica a la realizada para el vector u) y a 2 los términos frontera (1/h2 x )gi. y0 ).. . y0 ). (xNx +1 . y0 ). debemos sumar a los Nx primeros términos segundo miembro los valores: 1 gi.. es nula salvo en el lado del rectángulo correspondiente a los puntos (x0 . . y0 ). .. f = 0. .j = f (xi . podemos asumir que la condición de contorno g . Para simplificar el problema.

Sign up to vote on this title
UsefulNot useful