Métodos de Diferencias Finitas
Métodos de Diferencias Finitas
Métodos de Diferencias Finitas
1. Introducción
Ya sabemos por los cap´ıtulos anteriores que muchos problemas en ciencia aplicada,
fı́sica e ingenierı́a se modelan matemáticamente mediante ecuaciones en derivadas parciales.
Comenzamos con este capı́tulo los métodos de la diferencias finitas que se basan en las
fórmulas para aproximar las derivadas primera y segunda de una función.
Comenzamos clasificando -como se hizo en los capı́tulos 1 y 2 con más detalle- los tres
tipos de ecuaciones que investigaremos y resolveremos un problema f´ısico de cada clase.
En este capı́tulo estudiaremos los métodos en diferencias finitas para las ecuaciones hiperbóli- cas.
2. Ecuación de ondas
Como ejemplo de una EDP hiperbólica ya conocemos por los capı́tulos 3,4 y 5 la ecuación de
ondas
utt(x, t) = a2uxx(x, t), 0 < x < L, 0 < t < b (1)
con las C.F.
u(0, t) = 0, u(L, t) = 0, 0 ≤ t ≤ b
y las C. I.
R = {(x, t) ∈ R2, 0 ≤ x ≤ L, 0 ≤ t ≤ b}
Figura 1:
Empezamos por la fila de abajo donde t = t1 = 0, ya sabemos que la solución es f (xi ) = u(xi ,
t1 ). Ahora vamos a usar una ecuación en diferencias para calcular en las filas sucesivas, las
aproximaciones a la solución exacta, que en los puntos de la malla son u(xi , tj ). O sea, para
cada j = 2, 3, 4, . . ., calcularemos {ui,j c u(xi, tj), i = 1, 2, 3, . . .}.
La fórmulas de diferencias centradas para aproximar utt (x, t) y uxx (x, t)
u(x, t + k) − 2u(x, t) + u(x, t − k)
(x, t) = + o(k2) (3)
utt
k 2
k2 h2
que es la ecuación en diferencias que usaremos como aproximación a la ecuación diferencial
[10.1].
para mayor comprensión didáctica mostramos en la Fig. [10.2] la posición en la malla de los
cuatro valores conocidos que aparecen en el miembro derecho de la expresión [10.7], los que
se usan para determinar la aproxiamción ui,j+1 .
Nota
Hay que tener cuidado al usar la fórmula [7] si el error cometido en una etapa de los cálculos
no se amplifica en las etapas posteriores, entonces se dice que el método es estable.
Para garantizar la estabilidad de la fórmula [7] es necesario que
ak
r= ≤ 1.
h
Hay otros esquemas, llamados métodos implı́citos, que son de desarrollo más complejo
pero no imponen restricciones sobre r para que se tenga estabilidad. K
• ui,j−1
r 2 ui−•1,j • • r2u
(2 − 2r2)ui,j i+1,j
• −u
i,j−1
b. Valores iniciales
Si queremos usar la fórmula [7] para calcular las aproximaciones en los puntos de la
tercera fila de la malla, es necesario disponer de las aproximaciones en los puntos de las filas
primera y segunda.
Los valores de la 1a fila, vienen dados por la función f . Sin embargo, los valores de
la 2a fila no se suelen proporcionar, por ello se usa la función g(x), dada en el contorno
para conseguir las aproximaciones en los puntos de esta 2 a fila. Fijemos x = xi en la frontera
interior de R y apliquemos la fórmula de Taylor de orden uno para desarrollar u(x, t)
alrededor de (xi, 0); para el valor u(xi, k) se verifica
como u(xi, 0) = f (xi) = fi; ut(xi, 0) = g(xi) = gi. Usemos estos valores en [10.8] para obtener
la fórmula con que conseguimos las aproximaciones numéricas en los puntos de la
segunda fila (recordemos que t2 = k)
Normalmente ui,2 ƒ= u(xi , t2 ), ası́ que el error introducido al usar la fórmula [9] se propa- gará
a toda la malla sin atenuarse cuando usemos el esquema dado por la fórmula [7]. Por
consiguiente, para evitar que los valores ui,2 calculados por [10.9] introduzcan en el proceso
un error de tratamiento apreciable, es aconsejable que se tome un tamaño de peso k muy
pequeño.
A menudo se da el caso de que la función f (x) dada en el contorno es dos veces derivable
en el intervalo, con lo cual tenemos que uxx(x, 0) = fjj(x), igualdad que nos permite usar la
fórmula de Taylor de orden n = 2 para obtener una aproximación mejorada a los valores de
la segunda fila de la malla. Para hacer esto, volvemos a la ecuación de ondas y, usando la
relación entre las derivadas parciales segundas, obtenemos
u (x , 0) = a2u fi+1 − 2fi + fi−1
(x , 0) = a2 f jj (x) = a2 + o(h2 ). (10)
tt i xx i
h2
La solución de D’ Alembert
viene dada por las extensiones impares y periódicas de perı́odo 2L definidas para x ∈ [0, L]
f (x)
por θ (x) = θ (x) = , como se demostró en el apartado citado anteriormente.
2 1
2
La precisión de las aproximaciones numéricas mediante la fórmula [10.7] depende del error
de truncamiento de las fórmulas que se utilizan para convertir la EDP en una ecuación en
diferencias. Aunque es raro que se conozcan los valores de la solución exacta en la segunda
fila, si esto fuera posible entonces, tomando como incremento k = ah en el eje de la variable
t, el proceso generarı́a la relación exacta en todos los demás puntos de la malla.
Teorema 10.1 Supongamos que los valores en las dos primeras filas de la malla
ui,1 = u(xi , 0), ui,2 = u(xi , k) para i = 1, 2, 3, . . . , n, son los que toma la solución exacta de
h
la ecuación de ondas [10.1]. Si el tamaño del paso en el eje de la variable t es k = ,
a
entonces r = 1 y la fórmula [10.7] se transforma en
Además, en este caso, las soluciones obtenidas mediante el método de las diferencias finitas
[10.15] son exactas (¡ no tenemos en cuenta los errores de redondeo introducidos por el
ordenador !) en todos los nodos de la malla.
Nota
El teorema [10.1], anterior no da la garantı́a de que las soluciones numéricas sean exactas
cuando los cálculos se realizan usando las fórmulas
Primer ejemplo
Utilizar el método de las diferencias finitas (MDF) para resolver la ecuación de ondas de una
cuerda vibrante
Usando las fórmulas dadas en [10.18] y, sucesivamente, en [10.19] generamos las aproxima-
ciones a los valores u(x, t) que se recogen en la tabla [10.1] para 0 < xi < 1, y , 0 ≤ tj ≤ 0,5.
Los valores numéricos dados en la tabla [10.1] coinciden en más de seis cifras decimales con
los correspondientes a la solución exacta
Cuadro 10.1: Solución de la ecuación de ondas 4uxx (x, t) = utt (x, t) del ejemplo 1
Segundo ejemplo
Usar el método de las diferencias finitas para resolver la ecuación de ondas de una
cuerda vibrante
utt(x, t) = 4uxx(x, t), 0 < x < 1, 0 < t < 0,5
con las C.F.
u(0, t) = 0, u(1, t) = 0, 0 ≤ t ≤ 1
y las C.I.
3
x 0≤x≤
5
5
1,5 − 1,5x 3
≤ x ≤1
u(x, 0) = f (x) =
ut(x, 0) = g(x) = 0, 0 < x < 1.
Solución
Ejercicios propuestos
Demostrar por sustitución directa que u(x, t) = sen(nπx) cos(2nπt) es una solución de la
ecuación de ondas utt (x, t) = 4uxx (x, t) para cada n = 1, 2, 3, . . .
Demostrar por sustitución directa que u(x, t) = sen(nπx) cos(anπt) es una solución de la
ecuación de ondas utt (x, t) = a2 uxx (x, t) para cada n = 1, 2, 3, . . .
tj x2 x3 x4 x5 x6 · · · x10
0.00 0.100 0.200 0.150
0.05 0.100 0.200 0.150
··· ··· ···
··· ··· ···
. . . .
. . . .
0.45 -0.150 -0.300 -0.100
0.50 -0.150 -0.300 -0.100
Cuadro 2: Solución de la ecuación de ondas 4uxx (x, t) = utt (x, t) del ejemplo 2
Supongamos que la posición y velocidad iniciales de la cuerda son u(x, 0) = f (x); ut (x, 0) =
0, respectivamente. Demostrar que la solución de DÁlembert para este caso es
Usar el método de las diferencias finitas para calcular las tres primeras filas de la solu-
ción aproximada de la ecuación de ondas dada, realizando las operaciones a mano o con
calculadora
ut(x, 0) = g(x) = 0, 0 ≤ x ≤ 1.
En la ecuación ut (x, t) = 9uxx (x, t) ¿Qué relación debe existir entre h y k para que la
ecuación en diferencias que se obtenga venga dada por ui,j+1 = ui+1,j + ui−1,j − ui,j−1 ?
¿Qué dificultad puede aparecer cuando usemos el MDF para resolver utt (x, t) = 4uxx (x, t)
tomando k = 0,02, h = 0,003?
Soluciones a los ejercicios propuestos
a)
tj x2 x3 x4 x5
0.0 0.587785 0.951057 0.951057 0.587785
0.1 0.475528 0.769421 0.769421 0.475528
0.2 0.181636 0.293893 0.293893 0.181636
b)
tj x2 x3 x4 x5
0.0 0.500 1.000 1.500 0.750
0.1 0.500 1.000 0.875 0.800
0.2 0.500 0.375 0.300 0.125
h
(Utilizar el teorema [.1]) k =
3