Introducci N Al M Todo De Diferencias Finitas Y Su Implementaci N Computacional
su Implementación Computacional
Antonio Carrillo Ledesma y Omar Mendoza Bernal
Facultad de Ciencias, UNAM
http://www.mmc.geofisica.unam.mx/acl/
Una copia de este trabajo se puede descargar de
http://www.mmc.geofisica.unam.mx/acl/Textos/
Invierno 2015, Versión 1.0α
Introducción al Método de Diferencias Finitas y su Implementación
ComputacionalÍndice
1 Expansión en Series de Taylor
1.1 Aproximación de la Primera Derivada
1.1.1 Diferencias Progresivas . . . . .
1.1.2 Diferencias Regresivas . . . . .
1.1.3 Diferencias Centradas . . . . .
1.2 Derivadas de Ordenes Mayores . . . .
1.2.1 Derivada de Orden Dos . . . .
1.2.2 Derivadas de Ordenes Mayores
1.3 Derivadas en Dos Dimensiones . . . .
1.4 Derivadas en Tres Dimensiones . . . .
.
.
.
.
.
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
3
3
4
5
5
6
7
2 Método de Diferencias Finitas en Una Dimensión
10
2.1 Problema con Condiciones de Frontera Dirichlet . .. . . . . . . . 10
2.2 Problema con Condiciones de Frontera Neumann . . . . . . . . . 16
2.3 Problema con Condiciones de Frontera Robin . . . . . . . . . . . 17
2.4 Discretización del Tiempo . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1 Ecuación con Primera Derivada Temporal . . . . . . . . . 23
2.4.2 Ecuación con Segunda Derivada Temporal . . . . . . . . . 27
2.5 Consistencia,Estabilidad, Convergencia y Error del Método de
Diferencias Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 Consideraciones Sobre la Implementación de Métodos de Solución de Grandes Sistemas de Ecuaciones Lineales
3.1 Métodos Directos . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Factorización LU . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Factorización Cholesky . . . .. . . . . . . . . . . . . . . .
3.1.3 Factorización LU para Matrices Tridiagonales . . . . . . .
3.2 Métodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Método de Gradiente Conjugado . . . . . . . . . . . . . .
3.2.2 Método Residual Mínimo Generalizado . . . . . . . . . . .
3.3 Estructura Óptima de las Matrices en su Implementación Computacional . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .
3.3.1 Matrices Bandadas . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Matrices Dispersas . . . . . . . . . . . . . . . . . . . . . .
3.3.3 Multiplicación Matriz-Vector . . . . . . . . . . . . . . . .
33
33
33
35
35
36
38
40
41
43
44
45
4 Implementación Computacional del Método de Diferencias Finitas para la Resolución de Ecuaciones Diferenciales Parciales47
4.1 Implementación en SciLab . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Implementación en Octave (MatLab) . . . . . . . . . . . . . . . . 49
4.3 Implementación en C++ . . . . . . . . . . . . . . . . . . . . . . . 51
4.4 Implementación en Python . . . . . . . . . . . . . . . . . . . . . 53
5 Bibliografía
antoniocarrillo@ciencias.unam.mx
56
1
Antonio Carrillo Ledesma
Introducción alMétodo de Diferencias Finitas y su Implementación
Computacional
1
Expansión en Series de Taylor
Sea f(x) una función definida en (a, b) que tiene hasta la k−ésima derivada,
entonces la expansión de f(x) usando series de Taylor alrededor del punto xi
contenido en el intervalo (a, b) será
f (x) = f(xi ) +
(x − xi ) df
1!
dx
+
xi
(x − xi )2 d2 f
2!
dx2
+ ... +
xi
(x − xi )k dk f
k!
dxk(1.1)
ε
donde ε = xi + θ(x − xi ) y 0 < θ < 1.
1.1
Aproximación de la Primera Derivada
Existen distintas formas de generar la aproximación a la primera derivada, nos
interesa, una que nos de la mejor precisión posible con el menor esfuerzo computacional.
1.1.1
Diferencias Progresivas
Considerando la Ec.(1.1) con k = 2 y x = xi + ∆x, tenemos
f(xi + ∆x) = f(xi ) + ∆x
df
dx
+
xi
∆x2 d2 f
2!...
Regístrate para leer el documento completo.