P. 1
diferencias-finitas

diferencias-finitas

|Views: 11|Likes:

More info:

Published by: Boris Rosales Jimenez on May 15, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/23/2014

pdf

text

original

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

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

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

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

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->