You are on page 1of 11

Método de las Diferencias Finitas

Introducción: Hemos estudiado los tres tipos más simples de ecuaciones diferenciales parciales
(EDP) como representantes de cada una de las tres clases en las que se clasifican las EDP de
segundo orden: parabólica (calor), elíptica (Laplace) e hiperbólica (onda). Esta terminología
proviene de “comparaciones” con las ecuaciones de las secciones cónicas (Weinberger, 1965).

Hasta ahora, hemos aplicado el método de separación de variables (MSV) para obtener soluciones
explícitas de algunos problemas de valores en el borde (PVB) de interés físico. Contar con una
expresión analítica para la solución de un problema tiene la ventaja de permitir un estudio
cualitativo de su solución, como la estabilidad o decaimiento de la misma cuando el tiempo crece
(ecuación evolutiva), o el estudio de la regularidad de las soluciones para distintas condiciones de
borde y/o iniciales.

Sin embargo, si bien en muchos casos el MSV permite encontrar “soluciones exactas”, vimos que
en general, lo que se obtiene es una expresión de la solución que involucra una serie infinita y a la
hora de calcular efectivamente el valor de la solución en un punto del dominio es necesario
truncarla y aproximar el valor de la suma infinita por una suma finita. Otra desventaja del MSV es
que los dominios están restringidos a intervalos, rectángulos, círculos y regiones simples.

Con el propósito de obtener soluciones numéricas para los casos en que el MSV resulta
insatisfactorio, surgieron los métodos numéricos. Los más usados son, el Método de las
Diferencias Finitas y el Método de los Elementos Finitos, ambos proporcionan soluciones
numéricas aproximadas de problemas con EDP o EDO.

Comenzaremos con el estudio de la técnica del método de las diferencias finitas (MDF) para
discretizar un problema continuo (PVB) y obtener valores numéricos de la variable de estado en
algunos puntos del dominio:

Idea del MDF → Aproximar las derivadas por cocientes incrementales o


diferencias finitas
Para aplicar esta idea, en problemas con EDP o EDO y condiciones de borde que involucran
derivadas, se usan las Series de Taylor que permiten aproximar estas derivadas de varias formas.

= + ´ ℎ + ´´ + ´´´ + … + + , donde el error


! ! !

= < < = + ℎ.
!
de truncamiento con
Aproximaciones de la primera derivada
derivada:
Para aproximar derivadas de primer orden tenemos tres opciones según se escoja, para h
pequeño, aproximar la pendiente de la recta tangente a la curva y=f(x) en el punto (x, f(x)) por la
pendiente de la secante que pasa por dicho punto y por (x+h, f(x+h)) o por (x-h, f(x-h)) o, por la de
la secante que pasa por éstos dos últimos. Cada una de estas aproximaciones recibe el nombre de
diferencia adelantada, diferencia atrasada y diferencia centrada respectivamente, y conducen a
diferentes algoritmos.

´

Diferencia adelantada es fácil ver, a partir de la serie de Taylor para
f(x), que el error de truncamiento en esta aproximación lineal es del orden de h y lo denotamos,
denotamos
Error = O(h).

´

Diferencia atrasada: con Error = O(h)
Diferencia centrada: Una mejor aproximación se obtiene promediando las anteriores

´

con Error = O(h2) .

´ , con una diferencia centrada es O(h2) . Sugerencia: Restar las series de Taylor para
Ejercicio propuesto: Demostrar que el error que se comete al aproximar la primer derivada

f( + ℎ y f( − ℎ

------------------------------

Aproximación de la segunda derivada:


% & ' ( % & % & – % & ('

Como ´´ = " ´ #´ , por lo tanto
´ – ´ ' '

+ ℎ − 2 + −ℎ
´´

Esta se llama diferencia centrada de segundo orden y se puede demostrar que el Error = O(h2).

Sugerencia para la demostración: Sumar las series de Taylor para f( + ℎ y f( −ℎ

--------------------------------

Malla de puntos en el plano y la aproximación de las derivadas parciales


Todas las aproximaciones anteriores involucran puntos separados una distancia ∆ = ℎ para la

x2, … , xN = L , donde xj = j. ∆x y es en estos puntos donde obtendremos el valor numérico de la


variable espacial . Esto da lugar a una partición del intervalo [0, L] que denotaremos 0 = x0 , x1,

solución de un problema con dominio [0, L] .

Cuando la variable de estado u sea función de dos variables, por ejemplo u = u(x,t), al aproximar

tM = T , donde tm = m. ∆, . De esta manera resulta una malla o reticulado de puntos (xj , tm) en el
las derivadas con respecto a t , se tendrá una partición para el intervalo 0 < t < T : 0 = t0 , t1, t2, … ,

plano xt definida por los “pasos” ∆x, ∆t para espacio y tiempo respectivamente.

longitud ∆x y ∆t , o sea L = 10∆x y T = 10∆t con lo cual N = 10 en el eje x (horizontal) y M =


Gráficamente, si por ejemplo dividimos los intervalos [0, L] y [0, T] en 10 subintervalos de

10 en el eje t (vertical) , tenemos la siguiente malla de 11 x 11 = 121 puntos:


Donde el primer punto rojo es (x2, t2) = (2∆x, 2 ∆t) y el último (x9, t10) = (9∆x, 10∆t)

dominio continuo - = . , , ∶ 0 ≤ ≤ 2 , 0 ≤ , ≤ 34 se subdivide en NxM rectángulos


Observación: En general dados dos enteros positivos N y M (no necesariamente iguales) el

∆ x ∆, y la malla puntos (dominio discreto) tendrá (N+1)x(M+1) puntos.

Ahora para formular el problema discreto (p) correspondiente al siguiente problema continuo (P):

7-5: 9: = ;. 9 , <=>= 0 < < 2


5 6 ?@: 9 0, , = A , ; 9 2, , = @ , ; , ≥ 0 E
?D: 9 , 0 = , <=>= 0 ≤ ≤ 2
convenimos en denotar con ujm al valor

numérico de la temperatura en cualquier punto de la malla (xj,tm) . Es decir,

9" F , ,G # ↔ 9FG , <=>= I = 0, 1, 2, … , K L M = 0, 1, 2, … , N

Si implementamos la notación anterior al aproximar la derivada parcial respecto de t, 9: F , ,G ,


por una diferencia adelantada y a 9 " F , ,G # por la diferencia centrada de orden dos, tenemos

9" F , ,G + ∆, # − 9" F , ,G # 9FG − 9FG


9: " F , ,G # =
∆, ∆,

9" + ∆ , ,G # − 29" F , ,G # + 9 − ∆ , ,G 9FG − 29FG + 9FG


9 " F , ,G # =
F F
∆ ∆

Reemplazando en la 7-5 de 5 obtenemos una ecuación algebraica que llamamos edf


(ecuación en diferencias finitas) para el problema discreto (p)

9FG − 9FG 9FG − 29FG + 9FG


OP ∶ = ;
∆, ∆
Despejando 9FG y denotando con Q = ;
∆:

resulta que el problema discreto (p) queda así:

OP : 9FG = Q. 9FG + 1 − 2Q . 9FG + Q. 9FG ; I = 1, 2, … , K − 1 L M = 0, 1, 2, … , N − 1


< R ST: 9G = A m. ∆, ; 9V G
= @ m. ∆, ; <=>= M = 1, 2, … , N E
SW: 9F = j. ∆ ; <=>= I = 0, 1, 2, … , K

Observación: Notemos que para calcular 9FG


el punto " F , ,G #, se utilizan los tres valores de u del instante anterior ,G a izquierda y derecha
, valor numérico aproximado de la temperatura en

de F y en F . Gráficamente, el esquema o átomo computacional para la ecuación del calor es

9FG

s 1- 2s s

9FG 9FG 9FG

¿Cómo saber qué tan buenas son las aproximaciones obtenidas para este tipo de (PVB)?

Estabilidad y Convergencia del método:

Denotemos con YFG = Z 9FG − 9" F , ,G #Z


es el valor aproximado y 9" F , ,G # el valor exacto de la temperatura.
al error local de discretización en cada nodo de la
malla ( 9FG

Se dice que el método de diferencias finitas usado para calcular las aproximaciones 9FG
CONVERGE, si el max ]YFG ^ → 0 cuando ∆ → 0 L ∆, = Q. ∆ → 0 ; donde el máximo se
toma sobre todos los puntos (j , m) de la grilla (malla).

Puede demostrarse que para asegurar la convergencia y estabilidad (es decir, que el error
disminuya conforme avanza el cálculo) es SUFICIENTE con que ` = a ≤ d .
∆b e
∆c d

Advertencia: Esto significa que, cuando s > ½ el método puede (aunque NO necesariamente)
volverse inestable (es decir oscilante en espacio y tiempo). VER en Ejemplo 1 (c) de página sigte.

Observación: Dado un valor para ∆ , la condición s ≤ d permite escoger ∆, de manera que “todo
e

ande bien”. VER en Ejemplo 1 (b) de página siguiente.


Teorema de estimación del error (ecuación del calor con temperatura prescripta en los bordes)

Hipótesis:

Sea (P) el problema continuo que modela la evolución de la temperatura u(x; t) en un “cilindro
unidimensional” de longitud L; homogéneo, con difusividad k; temperaturas prescritas en los
bordes dadas por A(t) y B(t) y temperatura inicial f(x). Con A, B y f “suficientemente” suaves.

Asumimos que se cumplen las condiciones laterales, A(0) = f(0) y B(0) = f(L); de manera que (P)
tiene una solución u(x; t).

Sea 9FG la solución numérica aproximada de este problema por el método explícito de diferencias
finitas en el punto (xj , tm) (o sea la solución de (p) en el nodo j,m de la malla) y Q = ; ≤ .
∆:

Tesis:

El error local de discretización en cada punto satisface para j = 0, 1, 2, … ,N y m = 0, 1, 2, … , M

i. j ∆c d
g ≤
fh k∆b + m nopnq i = rst ]|y´´ b |, |z´´ b |, Z{|} c Z^
d l u v c v w
u v b v j

Es decir, si s = k.T.N2/(L2M) ≤ ½ , el error local de discretización tiende a cero cuando M , N → ∞;


donde k es el coeficiente de difusividad de la ecuación del calor del problema original (P).

Advertencia: no confundir el coef de difusividad k (que está en s) con el K del máximo para fh
g .

-La aproximación numérica converge en forma cuadrática para ∆ → 0 y lineal para ∆, → 0 .


Observaciones:

-La convergencia empeora en el tiempo, ya que la cota para el error depende de T (no de L).

Ejemplo 1: Consideremos el sigte problema de fuga de calor (se pierde energía en los bordes)

7-5: 9: = 9 , <=>= 0 < < 5


5 6?@: 9 0, , = 2, , 9 5, , = 25 + 2, ; , ≥ 0E
?D: 9 , 0 = , <=>= 0 ≤ ≤ 5

(a) Verificar que u(x,t) = x2 +2t es solución la solución exacta del problema (P)

(b) Para una malla con ∆ = 1 elegir un valor “conveniente” de ∆, para calcular, usando el
método explícito de diferencias finitas, u(1, 0.1) y u(4, 0.2). Comparar con los valores exactos.

(c) Usar ∆ = 1 y ∆, = 2 para calcular u(1, 2) , u(2,2), u(3, 2) y u(4,2). Comparar con los valores
exactos. Qué observas? Comentar.
Solución (a)

u(x,t) = x2 +2t es la solución exacta ya que satisface TODAS las ecuaciones de (P) :

7-5: 9: = 2 = 9

?@: 9 0, , = 0 + 2, , 9 5, , = 5 + 2,

?D: 9 , 0 = +2 0

Solución (b)

0.2 O

∆, = 0.1
O O O O

∆ =1
O O O O O O
2 3 4 5=L

Como ∆ = 1 y ; = 1 (difusividad) para asegurar estabilidad: Q = 1 ≤ ⇒ ∆, ≤ 0.5


∆:

, = 0.1 y , = 0.2 , escogemos ∆, = 0.1 y luego calculamos todos los 9FG necesarios para
“alcanza para que todo ande bien”. Entonces teniendo en cuenta que se pide temperatura cuando

obtener 9 (aproximación de u(1, 0.1)) y 9€ (aproximación de u(4, 0.2) ) con Q = 1 = 0.1 .


.

todos los nodos del eje x”, para esto usamos la ?D: 9 , 0 = y calculamos 9F para j = 0,
El esquema para este problema muestra que necesitamos calcular las 6 aproximaciones “para

1, 2, …, 5 (Notar que N coincide con L=5 pues ∆c = e y por lo tanto g. ∆c = g en este problema):

9 = 0 ; 9 = 1
= 1 ; 9 = 2
= 4 ; 9 = 3
= 9 ; 9€ = 4
= 16 ; 9„ = 5
= 25

Ahora 9 = 0.1 9 + " 1 − 2 0.1 # 9 + 0.1 9 = 0.1 0 + 0.8 1 + 0.1 4 = e. d = †ee

Análogamente,

9 = 0.1 9 + 0.8 9 +0.1 9€ = 0.1 4 + 0.8 9 + 0.1 16 = 9.2

9€ = 0.1 9 + 0.8 9€ +0.1 9„ = 0.1 9 + 0.8 16 + 0.1 25 = 16.2

9„ = 25 + 2 0.1 = 25.2 (pues es condición de borde derecho)

Finalmente, con los tres valores anteriores, calculamos:

9€ = 0.1 9 + 0.8 9€ +0.1 9„ = 0.1 9.2 + 0.8 16.2 + 0.1 25.2 = el. ˆ = †d̂
9 1, 0.1 = 1 + 2 0.1 = 1.2 = †ee !
Calculamos los valores exactos usando la solución dada u(x,t) = x2 +2t :

9 4, 0.2 = 4 + 2 0.1 = 16.2 = †d̂ !

Notamos que los valores aproximados coinciden con los exactos dado que la cota que proporciona
el teorema de estimación para los errores locales es cero pues

i = rst ]|y´´ b |, |z´´ b |, Z{|} c Z^ = 0 ya que |y´´ b | = u , |z´´ b | = u , Z{|} c Z = u.


u v c v ‰
u v b v u.d

Solución (c) Acá nos piden calcular, con ∆ =1 y ∆, = 2, u(1, 2) , u(2,2) , u(3, 2) y u(4,2).

Entonces tenemos Q = 1 = 2 > ! y sabemos que el método puede volverse inestable.

malla definida por el “nuevo paso” ∆, = 2 , gráficamente


Los cuatro valores pedidos corresponden a los cuatro nodos interiores del primer renglón de la

∆, = 2 9 9 9 9€

∆ =1
O O O O O O
2 3 4 5=L

9 = 2 9 + " 1 − 2 2 # 9 + 2 9 = 2 0 + −3 1 + 2 4 = ‰ = †ee

9 = 2 9 + " 1 − 2 2 # 9 + 2 9 = 2 1 + −3 4 + 2 9 = ‹ = †ed

9 = 2 9 + " 1 − 2 2 # 9 + 2 9€ = 2 4 + −3 9 + 2 16 = eŒ = †eŒ

9€ = 2 9 + " 1 − 2 2 # 9€ + 2 9„ = 2 9 + −3 16 + 2 25 = du = †eŒ

Los valores exactos usando la solución dada u(x,t) = x2 +2t :

9 1, 2 =1 + 2 2 = 5 = †ee !
9 2, 2 =2 + 2 2 = 8 = †ed !
9 3, 2 =3 + 2 2 = 13 = †eŒ !
9 4, 2 =4 + 2 2 = 20 = †ê !

que la condición ` ≤ es suficiente pero NO NECESARIA (esto ocurrirá siempre que las
Comentario: los valores exactos también coinciden con los “aproximados”. Este ejemplo muestra

condiciones de borde sean funciones a lo sumo lineales y la condición inicial a lo sumo cúbica).
Ejemplo 2: ¿Cómo modificarías el método para resolver el siguiente problema?

7-5: 9: = ;. 9 , <=>= 0 ≤ ≤ 2 , 0 ≤ , ≤ 3
5 6?@: 9 0, , = A , ; 9 2, , = 0 ; , ≥ 0 E
?D: 9 , 0 = , <=>= 0 ≤ ≤ 2

Solución: Notamos que ahora tenemos una condición de borde aislado en el extremo derecho x =

borde. Como en x = L hay una derivada, 9 2, , = 0 , debemos aproximarla por una diferencia
L, las restantes ecuaciones son las mismas. Por lo cual sólo hay que modificar la ecuación para ese

finita (adelantada, atrasada o centrada). Aunque la “mejor” desde el punto de vista del error es la

entonces 9 2, , = 9 V , ,G = = 0 ⇒ 9V = 9V
•Ž •Ž(
centrada, vamos a escoger usar diferencia atrasada para no “salirnos” del dominio [0,L] x [0, T],
• •
G G

para m= 1, 2, …, M.

Por lo tanto el problema discreto en este caso es

OP : 9FG = Q. 9FG + 1 − 2Q . 9FG + Q. 9FG ; I = 1, 2, … , K − 1 L M = 0, 1, 2, … , N − 1


< RST: 9G = A m. ∆, ; 9V G
= 9V
G
; <=>= M = 1, 2, … , N E
SW: 9F = j. ∆ ; <=>= I = 0, 1, 2, … , K

Propuesta: Aplicando lo recién deducido, resolver el Problema 1 (c), (d), (e) y Problema 4 (c) , (d)
de la Guía de Problemas complementarios

------------------------------------------------

Ejemplo 3: Considerar el siguiente problema para una cuerda vibrante de longitud π, fija en sus
extremos y liberada desde el reposo dado por f(x) = sen(x),

7-5 ∶ 9:: = 9 ; 0 < < π ; t > 0


5 ∶ 6 ?@: 9 0, , = 0 ; 9 π , , = 0 ; , ≥ 0 E
?D: 9 , 0 = QO’ ; 9: , 0 = 0 ; 0 ≤ ≤ 2

(a) Aplicar la técnica del método de diferencias finitas para formular el problema discreto para 5

(b) Implementar el esquema anterior con ∆ = “/4 y ∆, = 0.5 para aproximar u(“/4 , 1).

(c) Comparar con el valor exacto proporcionado por la solución u(x, t) = (sen x)(cos t). Comentar.

Solución (a)

Notamos que la 7-5 de este problema de ondas tiene 2 derivadas parciales de 2do orden, por lo
cual para aproximarlas usamos las correspondientes diferencias centradas de 2do orden. Así la
edf (ecuación en diferencias finitas) para el problema discreto (p) queda
9FG − 29FG + 9FG 9FG − 29FG + 9FG
OP ∶ =
∆, ∆

Despejando 9FG y denotando con Q = (en general, es Q = S


∆: ∆:
∆ ∆
) resulta que,

OP ∶ 9FG = Q. 9FG + 2 1 − Q 9FG + Q. 9FG − 9FG

Observación: Notemos que para calcular 9FG


punto " F , ,G # se utilizan 4 “valores previos” (los tres valores “centrados” en el instante
, valor numérico aproximado de la posición en el

anterior ,G y el valor en " F , ,G # . Gráficamente, el esquema o átomo computacional para la


ecuación de onda es

9FG

s 2(1-s) s

9FG 9FG 9FG

-1

9FG

Volviendo a las ecuaciones del problema continuo (P), tenemos otra derivada por aproximar, la
velocidad inicial, lo cual hacemos con un diferencia adelantada (cuando t = 0 es m = 0) y
•• ••
tenemos, 9: , 0 = ∆:
= 0 ⇒ 9F = 9F entonces

OP : 9FG = Q. 9FG + 2 1 − Q 9FG + Q. 9FG − 9FG ; I = 1, … , K − 1 L M = 1, … , N − 1


< R ST: 9G = 0 ; 9V
G
= 0 ; <=>= M = 0, 1, 2 , … , N "S9O>P= WI= O’ —˜Q O ,>OM˜Q"
SW: 9F = QO’ j. ∆ ; 9F = 9F <=>= I = 1, 2, … , K − 1 "™O—˜SWP=P W’WSW=— SO>˜"

Finalmente este problema discreto (p) con S = 1, para L = “, cuando ∆ = “/4 y ∆, = 0.5 (o
sea con Q = S = š ) queda así:
∆: €

žOP : 9G = 4 9G + 2 Ÿ1 − 4 9G + 4 9G − 9G ; I = 1, 2, 3 L M = 1, 2
œ F
“ F “ F
“ F F
< ST: 9G = 0 ; 9G = 0 ; <=>= M = 1, 2 E
• €
œ SW: 9F = QO’ j. ∆ ; 9F = 9F <=>= I = 1, 2, 3

Solución (b)

Implementamos este algoritmo para calcular u(“/4 , 1) o sea 9 . Haciendo el esquema con
todos los puntos necesarios notamos
9

9 9 9

9 9 9

š š š
€ €

9 = 9 = 0 (por ser borde izquierdo)

9 = QO’ ¡1. € ¢ = y 9 = QO’ ¡2. € ¢ = 1 (por ser posiciones iniciales)


š √ š

9 =9 = y 9 = 9 = 1 (velocidades iniciales aproximadas con diferencia hacia adelante)


9 = š 9 + 2 ¡1 − š ¢ 9 + š 9 − 9 = 0.539 = 9
€ € €

Solución (c)

La solución exacta u(x,t) =(sen x)(cos t) puede hallarse aplicando separación de variables.

Calculamos u(“/4 , 1) = sen(“/4 cos 1 = 0.5403 = 0.382 = u “/4 , 1


Comentario: Aunque el método es estable pues se cumple S ≤ ∆: (es decir 1 < “/2 el error

es grande pues usamos diferencia adelantada para aproximar ut con ∆, = 0.5 (se ha introducido

ejemplo ∆, = 1/100 y ∆ = “/10 (VERIFICAR, resolviendo en computadora) o tomar ∆, = 1/10 y


un error = O(∆, . Para obtener una aproximación aceptable es necesario refinar la malla, por

usar diferencia centrada para ut (ver en Haberman pág 256)

numérico, ∆: , debe ser mayor o igual que la velocidad de propagación de la onda, S.



Nota: La condición de estabilidad establece que, la velocidad de propagación del método

Ejercitación propuesta: en “Problemas Complementarios”

Material elaborado por A. Frausin - Agosto 2014

BIBLIOGRAFIA:
• Bleecker D., Csordas G. “Basic Partial Differential Equations” - Ed. Internacional - 1996
• Haberman R. “Applied Partial Differential Equations” - Prentice Hall - 2004

You might also like