Está en la página 1de 18

ISSN Electrónico: 2215-3470 UNICIENCIA Vol. 33, N° 1, pp. 83-100.

Enero-Junio, 2019
DOI: http://dx.doi.org/10.15359/ru.33-1.7 URL: www.revistas.una.ac.cr/uniciencia
Correo electrónico: revistauniciencia@una.cr

Aspectos computacionales del método


de diferencias finitas para la ecuación de
calor dependiente del tiempo
Computational aspects of the finite difference method for the time-dependent
heat equation
Aspectos computacionais do método de diferenças finitas para a equação de
calor dependente do tempo

Filánder Sequeira-Chavarría Melvin Ramírez-Bogantes


filander.sequeira@una.ac.cr meramirez@itcr.ac.cr
Escuela de Matemática Escuela de Matemática
Universidad Nacional Instituto Tecnológico de Costa Rica
Heredia, Costa Rica Cartago, Costa Rica
Orcid: https://orcid.org/0000-0002-0593-3446 Orcid: https://orcid.org/0000-0001-5516-0085

Recibido-Received: 1/abr/2018 • Corregido-Corrected: 4/jun/2018.


Aceptado-Accepted: 13/ago/2018 • Publicado-Published: 31/ene/2019.

Resumen
En este artículo se describe en detalle un algoritmo para la eficiente implementación computacional del
método de diferencias finitas (MDF) en la ecuación de calor dependiente del tiempo, con condiciones de
frontera de Dirichlet no homogéneas, en dos dimensiones. Para validar el método presentado aquí se utiliza
el paquete computacional MATLAB®, sin embargo, los procesos se exponen independientes al lenguaje de
programación. Finalmente se presentan resultados numéricos que validan el algoritmo propuesto.
Palabras claves: ecuación de calor; método de diferencias finitas; implementación computacional;
MATLAB®
Abstract
In this paper we describe in detail an algorithm for the efficient computational implementation of the finite
difference method (FDM) in the two-dimensional time-dependent heat equation with non-homogeneous
Dirichlet boundary conditions. The MATLAB® software was used to validate the method mentioned here;
however, the processes are presented independently from the programming language. Finally, numerical
results are presented to validate the proposed algorithm.
Keywords: Heat equation; finite difference method; computational implementation; MATLAB®

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 83


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Resumo
Neste artigo é descrito detalhadamente um algoritmo para a eficiente implementação computacional do
método de diferenças finitas (MDF) na equação de calor dependente do tempo, com condições de fronteira

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
de Dirichlet não homogêneas, em duas dimensões. Para validar o método apresentado aqui é utilizado
o pacote computacional MATLAB®, porém, os processos são expostos independentes da linguagem de
programação. Finalmente, são apresentados os resultados numéricos que validam o algoritmo proposto.
Palavras-chaves: Equação de calor; método de diferenças finitas; implementação computacional;
MATLAB®

E
l presente artículo nace como un me- de numerosos problemas de interés como
canismo de difusión para los métodos la Ingeniería y la Física (ver, por ejemplo,
numéricos en la enseñanza superior Haberman (1998), Carslow y Jaeger (1959),
para carreras de Ingeniería, Computación y y sus referencias). A pesar de lo enriquece-
Matemática. Su principal contribución no es dor que es la teoría matemática para la re-
la teoría matemática y física que envuelve solución de EDP (ver, por ejemplo, Evans
los métodos numéricos para las Ecuaciones (2010)), lo cierto es que esta no es flexible
Diferenciales Parciales (EDP). Si no más a la hora de cambiar datos en la ecuación
bien, un documento que recopila todos aque- diferencial, ni tampoco brinda, en la ma-
llos aspectos importantes sobre una eficiente yoría de los casos, la solución explícita de
y clara implementación computacional de estas. Es debido a ello que la aplicación de
un método numérico de aproximación para métodos numéricos para obtener aproxima-
EDP. Se espera que lo detallado aquí pueda ciones se convierte, no solo en una gran he-
ser utilizado como apoyo en los cursos de rramienta, sino en general, en la única para
postgrado y por investigadores en sus res- poder resolver un problema que involucre
pectivos trabajos. Es importante aclarar que, EDP. Aunque claro, llevar los problemas de
si bien, lo presentado aquí puede ser hallado la matemática a la computación, provoca
en la literatura, al menos por el conocimiento nuevos inconvenientes. En particular, la di-
de los autores, no se cuenta con un escrito ficultad de realizar la implementación de los
que clarifique con gran detalle las técnicas a métodos, lo cual será el punto principal de
emplear a la hora de aproximar la solución discusión en este texto.
de EDP por medio del método de diferencias Para establecer una acotación de la
finitas. Adicional a esto, no se cuenta con zona en la que se enfoca este trabajo, se
mucha bibliografía en el idioma español, que debe tener en cuenta que la misma corres-
describa la implementación computacional ponde al uso del Método de Diferencias
del método de diferencias finitas. Finitas (MDF) para una EDP parabólica,
En relación con la temática principal conocida como la ecuación de calor, dado
de este artículo, se resalta que el análisis y que esta modela el flujo de temperatura en
diseño de métodos numéricos para EDP ha una región que está bajo la influencia de
sido un área de gran investigación en las una fuente de calor. Esa delimitación es de
últimas décadas, debido a que estas surgen suma importancia, no solo por la variedad

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 84


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

de EDP que se pueden abordar, sino por la en resolver una EDP deban programar, lo
cantidad de métodos numéricos existentes cual no es una tarea fácil, en la mayoría de
para una misma EDP. Para dar un ejemplo los casos en. Por tal razón, en este artículo
de esto, además del enfoque por MDF, el se discuten los aspectos más relevantes a la

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
cual consiste en reemplazar cada operador hora de realizar una eficiente implementa-
diferencial dentro de la EDP por una estima- ción computacional. Estos aspectos se ex-
ción puntual del mismo (ver, Ciarlet (1995), ponen en general para cualquier lenguaje de
LeVeque (2007), Morton y Mayers (2005), programación, pero se ejemplificarán con
Strikwerda (2004), Thomas (1995), y sus ayuda de MATLAB®.
referencias); también es posible obtener Finalmente, respecto a la organización
una aproximación al reemplazar el espacio de este artículo, se inicia con el problema
vectorial donde se ubica la solución exacta modelo a desarrollar, el cual corresponde
por uno de dimensión finita, tal y como ocu- a la ecuación de calor en dos dimensiones
rre con los Métodos de Elementos Finitos con condiciones de Dirichlet no homogé-
(MEF) (ver Ciarlet (2002)). La diferencia neas y cuya solución depende del tiempo.
más visual que se presenta entre los MDF El dominio de definición de la ecuación será
y los MEF consiste en que los MEF pueden un rectángulo por lo que la aplicación del
aproximar la solución de la EDP en dominio método de diferencias finitas es idónea en
con geometrías más complejas que los MDF. este caso. Luego, se detalla cómo la apro-
A pesar de ello, cuando la EDP depende del ximación por esquemas de diferencias fini-
tiempo (lo que es usual en los problemas de tas en los operadores diferenciales permite
aplicación), independientemente de si se uti- obtener un sistema de ecuaciones lineales,
liza MDF o MEF para las variables espacia- cuya solución corresponde a la evaluación
les, la dependencia del tiempo se discretiza de esta buscada en ciertos puntos particula-
por medio los MDF, dado que los MEF re- res. Se precisa, además, la construcción (o
quieren de una relación entre puntos vecinos ensamblaje) eficiente de este sistema lineal
que resulta inconveniente para la derivada para poder implementar la misma en cual-
temporal. Esto se puede apreciar en inves- quier lenguaje de programación. En particu-
tigaciones recientes como, por ejemplo, en lar se presenta ese ensamblaje con ayuda de
(Guzmán, Shu y Sequeira, 2017). MATLAB®. Seguidamente, se consideran
Por otro lado, basta realizar una bús- aspectos sobre los métodos a utilizar para
queda rápida en MathSciNet para notar que resolver los sistemas lineales que se ge-
muchas de las investigaciones actuales, que neran en cada paso de tiempo. Al final, se
involucran resolver EDP, utilizan el paque- muestran algunos experimentos numéricos
te computacional MATLAB® para sus im- para validar las programaciones propuestas.
plementaciones. La principal razón de esto Es decir, se comprueba el funcionamiento
obedece a la potencia y facilidad que brinda correcto del código generado. Más aún, se
este programa a la hora de emplear métodos anexa un procedimiento, por medio de vi-
numéricos en un determinado problema. Sin deos, para visualizar el comportamiento de
embargo, ningún programa computacional la solución obtenida.
cuenta con todos los métodos numéricos
que existen, sobre todo los nuevos, por lo
que se hace necesario que los interesados

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 85


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Método de diferencias finitas para se sigue de esta forma con el único fin de
la ecuación de calor simplificar los cálculos posteriores.

Por simplicidad en la descripción del Por otro lado, considere el punto (tn ,

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
modelo a trabajar, defina Ω como el cuadra- x𝑖 , yj) el cual al ser evaluado en la ecuación
do unitario en IR2, definido como: diferencial se obtiene que:

Ω∶=[0,1] × [0,1] = {(x,y) ∈ IR2 / 0 ≤ 𝑥 ≤ 1, 0 ≤ y ≤1} ut (tn ,xi ,yj) = uxx (tn ,xi ,yj) + uyy (tn , xi, yj) + f (tn ,xi ,yj),

Asimismo, sobre Ω se considera la donde, al definir las aproximaciones:


siguiente ecuación parabólica con condicio-
≈ u (𝑡n , 𝑥i, 𝑦j ) y ≈ ut (𝑡n , 𝑥i, 𝑦j),
nes de Dirichlet no homogéneas, conocida
como la ecuación de calor:

{
así como := f (tn , 𝑥i , 𝑦j), en conjun-
𝑢t = ∆𝑢 + 𝑓, para (x, y)∈ Ω, 𝑡 ∈ ]0, 𝑇], to con el esquema de 5 puntos de esténcil
u (t, x, y) = g (t, x, y), para (x, y)∈ 𝜕Ω, 𝑡 ∈ [0, 𝑇] (1) para el laplaciano (ver, por ejemplo, Morton
u (0, x, y) = u0 (x, y), para (x, y)∈ Ω,
y Mayers (2005), Strikwerda (2004) o Le-
Veque (2007)):
donde ut:= corresponde a la de-
rivada temporal, ∆𝑢 := 𝑢xx+𝑢yy= + ∆u (tn , xi , yj) ≈ ( + – + + ),
es el operador del laplaciano, f = f (t, x, y) (2)
el término fuente y T > 0. El objetivo de
este escrito es hallar una aproximación para se concluye que
la solución del sistema (1), para lo cual se
emplea el método de diferencias finitas = ( + – + + )+
(ver, por ejemplo, Morton y Mayers (2005), (3)
Strikwerda (2004) o LeVeque (2007)). Más
precisamente, dado un entero M > 0, se con-
Con respecto al espacio, este esque-
sidera una partición uniforme del intervalo
ma relaciona a cinco puntos de la malla
[0, T], dada por:
para estimar ∆𝑢 (𝑡n, 𝑥i, 𝑦j ) tal y como se
tn:= nk, para todo n = 0,1,…, M, muestra en la Figura 1. Mientras que, con
respecto al tiempo, se tiene una ecuación
diferencial ordinaria, cuya solución será
donde k = ∆t = , se conoce como el aproximada por medio del método de Eu-
paso en tiempo. Seguidamente, dado un en- ler implícito (ver, por ejemplo, Strikwerda
tero N > 0, se construye una malla cartesia- (2004)). La razón de emplear un esquema
na (o cuadrícula) uniforme para Ω, la cual implícito es para generar un método que
consiste de (N + 2)2 puntos (𝑥𝑖, 𝑦j ) , donde sea incondicionalmente estable cuando se
𝑥𝑖:= 𝑖ℎ y 𝑦j := 𝑗ℎ, con 𝑖, 𝑗 = 0, 1,…, 𝑁+1 y avanza en cada paso de tiempo. Es decir,
h= es el paso en espacio. Es importan- no hay condición CFL (Courant-Friedri-
te aclarar que esta descomposición de Ω no chs-Lewy) en este caso.
tiene por qué se ser uniforme, sin embargo,

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 86


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Figura 1. Los cinco puntos involucrados Por lo tanto, denotando μ:= , se cum-
en la aproximación del laplaciano. ple que:

– – + (4+μ) – – = +μ ,

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
(4)

para todo i, j =1 ,2,…, N y para todo


n = 1, 2,…, M. Es decir, la ecuación (4)
establece una relación entre los valores de
la solución de la ecuación de calor en dos
aproximaciones de tiempo consecutivos.
Por ende, la resolución del problema (1) re-
quiere primero aproximar los valores de u
en el primer tiempo t0 y luego emplear el
resultado obtenido para alcanzar los valores
Nota: Fuente propia de la investigación. en el tiempo siguiente. Sin embargo, nótese
de la tercera ecuación de (1) que los valores
El siguiente paso consiste en emplear de u en el primer tiempo t0 son conocidos a
el método de Euler implícito (conocido tam- priori de manera exacta, es por ello, que a
bién como “backward Euler”) para la deri- la ecuación u(0, x, y) = u0(x, y) se le cono-
vada temporal. En efecto, aproxima el valor ce como la condición inicial. Más aún, si-
de la derivada respecto del tiempo, median- guiendo la notación previa, esta condición
te el esquema de diferencias finitas: se puede reescribir de la forma:

≈ , = u0 (xi , yj), para 𝑖, 𝑗 = 0, 1,2, . . . , 𝑁, 𝑁 + 1. (5)

donde, al sustituir este en (3), se ob- Por último, de la condición de borde


tiene el esquema de aproximación: (segunda ecuación en (1)), se sabe que u(t,
x,y)=𝑔(t, x, y), con 𝑔 alguna función conoci-

da y continua en la frontera de Ω. Así, em-
= ( + + + )+ ,
pleando nuevamente la notación previa se
tiene que:
o bien,
= ( + – + )+ + . =𝑔(𝑡n ,𝑥i ,𝑦j)=:𝑔 , para 𝑖, 𝑗∈{0, 𝑁+1},
𝑡 = 0,1,…, 𝑀.
Luego, despejando a la derecha los (6)
términos de la forma: Un (es decir, los de
potencia n), se reescribe la igual previa de
la forma:
Esquema de diferencias finitas

De la aproximación por diferencias


finitas (4), en conjunto con la condición ini-
- - (
+ 4+ ) - - = + .
cial (5) y la condición de borde (6), es posi-
ble apreciar que los puntos donde se conoce

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 87


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

los valores de u, así como aquellos donde no • Para j = 1, de (4) se obtiene:


se conoce (valores a determinar o incógni- – – +(4+μ) – – = +
tas), son los ilustrados en la Figura 2.
Ahora, se debe analizar el esquema (4) – –𝑔 +(4+μ) – – = +

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
para los puntos dados por la condición de
– +(4+μ) – – = + +𝑔
borde (6), teniendo en cuenta la relación pre-
sentada en la Figura 1. Para ello, nótese que: • Para j = N, de (4) se obtiene:
• Para i = 1, de (4) se obtiene: – – +(4+μ) – – = +
– – + (4+ μ) – – = +μ
– – +(4+μ) – – = +
–𝑔 – + (4+ μ) – – = + μU
+ (4+ μ) – – = + μU +𝑔 – – +(4+μ) – = + +

Luego, para los N2 puntos en los que


• Para i = N, de (4) se obtiene: se desea aproximar la solución (para un
– – +(4+ μ) – – = + tiempo tn fijo), se pueden ordenar las incóg-
nitas, en el nivel de filas según la Figura 2,
– – +(4+μ) – –𝑔 = +
en un vector columna en el nivel de bloques,
– – +(4+μ) – = + +𝑔 de la forma:

Figura 2. Puntos dados (condición inicial y de borde) e incógnitas por calcular.

Nota: Fuente propia de la investigación.

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 88


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Y
, donde ,

(
h2f1Nn +𝑔0N
n
+ 𝑔n1, N+1
n :=
b[N]
h f2N +𝑔n2,N+1
2 n
( +µu[1] .

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
n–1


Para todo j =1, 2,…, N. De esta mane- n
h2fN-1,N +𝑔nN-1, N+1
h fNN +𝑔nN+1,N+𝑔nN,N+1
2 n
ra es posible encontrar el vector un ∈ IRN2,
, al resolver un sistema de ecuaciones linea-
les: Aun=bn , donde En resumen, es posible encontrar la
solución un en cada tiempo tn, con n = 1, 2,

( (
T –I 0 …
0 … , M, mediante la resolución de un sis-
A:= –I T –I

… … …

0 –I T 0 tema lineal Aun=bn de orden N 2. Observe


–I
que la matriz A no depende de n, es decir,

0 0 –I T

es independiente del tiempo, lo que implica


(7) que en cada paso de tiempo se debe resol-
ver un sistema lineal con la misma matriz
Es una matriz de tamaño N2 × N2 con de coeficientes. Esta última característica es
I la matriz identidad de orden N, O, la ma- de gran relevancia a la hora de optar por la
triz nula de orden N, y T una matriz tridia- eficiencia en la resolución del sistema lineal
gonal de orden N, definida por de interés.

( (
4+µ –1 0 0
Ensamblaje de la matriz de coefi-

–1 4+µ –1

… … …

T:= 0 –1 4+µ 0
–1 cientes

0 0 –1 4+µ

(8) Tal y como se detalla previamente,


la matriz de coeficientes A no depende del
Finalmente, el vector de la derecha tiempo, por lo que esta se puede ensamblar
del sistema viene dado por: una única vez, a priori al recorrido de los
pasos de tiempo tn . De esta forma, basta con

( (
ensamblar el vector de la derecha bn en cada

bn:=
bn[1]
bn[2]
( bn[j] :=
h2f1jn+ 𝑔0jn
h2f2jn
( [j]
+µun–1 ,
tn, con n=1, 2,…, M, para luego resolver el
sistema lineal. En el caso particular del en-

b[N-1]
n
n
h2fN–1, j
bn[N] , donde 2 n 𝑔n
h fNj + N+1, j samble de A,es importante notar que:

(

(9)
A:=
T
0
0
T
… …
0 (
… …

+

T
… …

… …

Para todo j = 2, 3,…, N - 1. En el caso 0


0 0 T

de j = 1 y j = N, se tiene, respetivamente, que:

( (
0 –I 0 …
0

(
–I 0 –I

h2f11n+𝑔01
n
+ 𝑔10
n
–I 0 0 = (I ⊗T)+(S ⊗I),
(
… …

… …

h f21 +𝑔20
2 n n –I

b :=
[j]
+µu [1]
0 0 –I 0

n ,
n–1

n
h2fN-1,1 +𝑔nN-10
h fN1 + 𝑔N+1,1+𝑔nN0
2 n n

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 89


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

donde, se considera la matriz S de or- function [ A ] = Laplacian2DMatrix( N,


den N, definida por: mu )

(
% Matriz identidad
0
–1
–1
0

0 ( I = speye( N );



S:= 0 % Matriz T

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
–1 0

… …
–1 e = -1 * ones( N, 1 );


0 –1 0


T = spdiags( [e, -(4 + mu)*e, e],
(10) [-1, 0, 1], N, N );
% Matriz S
Aquí, el símbolo ⊗ corresponde al pro- S = spdiags( [e, e], [-1, 1], N,
ducto tensorial entre matrices, definido como: N );

(
% Matriz A
A = kron( I, T ) + kron( S, I );
b11c11
b11c21
b11c12
b11c22


b11c1q
b11c2q




b1nc11 b1nc12 b1nc1q
b1nc21 b1nc22 b1nc2q ( end

Donde la rutina kron(B,C)realiza l



b11cp1 b11cp2 … b11cpq … … b1ncp1 b1ncp2 b1ncpq


producto de Kronecker: B ⊗ C.
……

……

……

……

……

……

B ⊗ C=

bm1c11 bm1c12 bm1c1q bmnc11 bmnc12 bmnc1q


bm1c21 bm1c22 bm1c2q bmnc21 bmnc22 bmnc2q
… … …
… … …
Ensamblaje del vector de la

bm1cp1 bm1cp2 bm1cpq bmncp1 bmncp2 bmncpq


derecha
… … …

Para B∈IRmxn y C∈IRpxq, denomi- A diferencia de la matriz A, la cual se


nado el producto de Kronecker. Gracias a calcula una sola vez, el vector de la derecha
este, la construcción de la matriz A se rea- bn, definido en (9), debe ser ensamblado en
liza de manera natural (por bloques), lo que cada paso de tiempo tn, con n = 1,2,…, M.
además facilita las implementaciones con Más aún, este depende del término fuente
el paradigma de programación en paralelo := f(tn, xi , yj), el dato de frontera :=𝑔(tn,xi
(ver, por ejemplo, Quinn (2003)). Así, para ,yj), así como de la solución del tiempo ante-
ensamblar A basta con ensamblar la ma- rior un-1. Es importante recordar aquí que la
triz S definida en (10) y junto con la ma- solución en el primer tiempo t0, denominada
triz identidad I y la matriz T definida en (8), u0, es definida a través de la condición ini-
todas ellas de tamaño N × N, y efectuar la cial, es decir, : = u0 (xi , yj) .
suma de dos productos de Kronecker: (I ⊗ A diferencia del ensamblaje de A,
T ) + (S ⊗ I ) . donde se toma ventaja de su estructura e in-
Si se utiliza MATLAB® para llevar dependencia respecto de n, el vector de la
acabo la implementación del método pro- derecha bn se ensambla exactamente como
puesto en este escrito, entonces, dado que fue definido en (9). Más precisamente, defi-
este posee estructuras para la manipulación niendo en MATLAB® un tiempo tn= tn fijo,
de matrices esparcidas (o ralas), es recomen- con n = 1, 2, …, M, así como la solución
dable almacenar la matriz A en dichas estruc- previa u = un-1 ∈ IRN2, se puede determi-
turas con el fin de mejorar significativamente nar el vector b = bn∈IRN2 por medio de la
la eficiencia del método. En efecto, por me- siguiente función:
dio de los comandos para matrices esparci-
das de MATLAB®, es posible ensamblar la
matriz A mediante la función:

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 90


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

function [ b ] = Lapacian2DRhs( N, tn, Con ayuda del fragmento de código


x, y, h, f, g, mu, u ) previo es posible ensamblar el vector bn , y,
b = zeros(N^2,1);
k = N^2 - N;
dada la matriz A, basta con resolver el siste-
v = y(1); % para j = 1 ma lineal Aun = bn , para obtener una apro-

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
w = y(N); % para j = N ximación de la solución del problema (1) en
for i = 1 : N el tiempo tn = nk .
z = x(i);
b(i) = h^2 * f(tn, z, v) +
g(tn, z, 0);
Evolución en el tiempo
b(k + i) = h^2 * f(tn, z, w) +
g(tn, z, 1); Ahora que se conoce cómo ensamblar
end el sistema lineal para cada n = 1, 2,…, M, ,
b(1) = b(1) + g(tn, 0, v); se debe generar el algoritmo principal que
b(N) = b(N) + g(tn, 1, v);
b(k+1) = b(k+1) + g(tn, 0, w);
recorre cada tiempo tn , desde n = 1 a n = M,
b(k+N) = b(k+N) + g(tn, 1, w); obteniendo estos sistemas, para luego pro-
k = N; % para j = 2, 3 ,..., N ceder a resolverlos, por medio de un método
-1 directo o uno iterativo. Para iniciar, consi-
for j = 2 : N-1 dere las descomposiciones del espacio y el
v = y(j);
for i = 1 : N
tiempo, respetivamente, de la forma:
b(k + i) = h^2 * f(tn, x(i),
v); % Malla uniforme para [0,1]x[0,1]
end h = 1 / ( N + 1 );
b(k+1) = b(k+1) + g(tn, 0, v); x = h : h : ( 1 - h );
k = k + N; y = x;
b(k) = b(k) + g(tn, 1, v); % Malla uniforme para [0,T]
end k = T / M;
b = b + mu * u; % contribución de t = k : k : T;
la solución anterior
end donde, se ignoran x0 = y0 = 0 xN+1 = yN+1
= 1 y t0 = 0, debido a que son valores para los
donde x y y representan los vectores cuales la solución es completamente conoci-
que almacenan la partición en el espacio, da, según la Figura 2. Por otro lado, es nece-
mientras que las funciones f y g, son imple- sario definir la solución inicial u=u0 para el
mentaciones respectivas de la fuente f y la tiempo t0= 0 la cual es dada por la condición
información de borde 𝑔, las cuales pueden inicial u0(x, y), tal y como se muestra en el
ser implementadas en MATLAB®, respecti- siguiente fragmento de código:
vamente, de la siguiente manera:
u = zeros( N^2, 1 );
function [ z ] = f( t, x, y ) for j = 1 : N
z = 0; % aquí el criterio de la for i = 1 : N
función u( (j-1)*N + i ) = u0( x(i),
return y(j) );
function [ z ] = g( t, x, y ) end
z = 0; % aquí el criterio de la end
función
end donde la rutina u0 se puede imple-
mentar de la forma:

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 91


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

function [ z ] = u0( x, y ) Observación:


z = 0; % aquí el criterio de la
función
end Para validar este fragmento de códi-
go, basta con dar una función u (t, x, y) y

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
Finalmente, basta con recorrer cada determinar la función f (t, x, y) para la cual
paso en tiempo tn, n = 1, 2,…M, ensamblan- u es solución del problema (1). Para luego
do el sistema lineal Aun = bn , y como se verificar que la solución obtenida por el
realiza en la siguiente rutina de MATLAB®: algoritmo anterior concuerda (bajo alguna
medida del error) con la solución exacta u
% Discretización de la ecuación de dada inicialmente. Por ejemplo, entre varias
calor de las funciones u con las que se validó este
% u_t = u_xx + u_yy + f, (x,y) en algoritmo se cuenta con:
[0,1]x[0,1]
% u = g(t, x, y), (x,y) en la u (t, x, y) : = sen (𝑡 + 𝜋 𝑥) sen (𝑡 + 𝜋 y),
frontera
% u = u_0(x, y), para t = 0
% donde t pertenece a [0,T] y N es el con la cual:
número de puntos en
% espacio, mientras que M es el número f (t, x, y) : = cos (t + 𝜋𝑥) sen (𝑡 + 𝜋y)
de puntos en tiempo. + sen (𝑡 + 𝜋𝑥) (cos (𝑡 + 𝜋y) + 2𝜋2 sen (𝑡
function [u] = HeatEquation2DScheme(
+ 𝜋y)),
T, N, M, f, g, u0 )
% Malla uniforme para [0,1]x[0,1] y claramente, g (t, x, y) = u (t, x, y),
h = 1 / (N + 1); mientras que u0 (x, y) = u (0, x, y). Los resul-
x = h : h : (1 - h); tados se pueden apreciar más adelante en la
y = x; sección de experimentos numéricos.
% Malla uniforme para [0,T]
k = T / M;
t = k : k : T; Resolución del sistema lineal
% Solución en el tiempo t = 0
u = zeros(N^2, 1); Según el análisis de las secciones
for j = 1 : N previas, con el fin de aproximar la solución
for i = 1 : N
u( (j-1)*N + i ) = u0( x(i), del problema (1), se debe resolver el siste-
y(j) ); ma lineal Aun=bn , en cada paso de tiempo
end tn , donde A ∈IRN2×N2 está definida en (7),
end mientras que b ∈ IRN2 está definido en (9).
% Obtener la matriz Luego de obtener dicho sistema, es necesario
mu = h^2 / k;
A = Laplacian2DMatrix( N, mu ); resolverlo por algún método directo o itera-
% Recorrer cada paso de tiempo tivo. En el fragmento de código anterior se
for n = 1 : M emplea la instrucción u = A \ b, corres-
b = Lapacian2DRhs( N, t(n), x, pondiente al método de Eliminación Gaus-
y, h, f, g, mu, u ); siana, el cual es un método directo poco
u = A \ b; % Resolver el
sistema lineal estable y poco eficiente. Aunque cabe men-
end cionar que la implementación de MATLAB®
end es de las más eficientes que existen, dado que
además realiza los cálculos en paralelo (ver,
por ejemplo, Hahn y Valentine (2016)).

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 92


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

A continuación, se detallan breve- donde L es una matriz triangular infe-


mente algunas opciones eficientes para re- rior con unos en su diagonal y U es una ma-
solver los sistemas lineales en cada paso de triz triangular superior, tales que A = LU.
tiempo, tomando provecho principal de la De esta forma, el sistema lineal Au = b,

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
estructura particular de la matriz de coefi- puede ser resuelto mediante el comando:
cientes y del hecho de que esta es invariante
en cada paso. Para mayor información so- u = U \ ( L \ b );
bre los métodos de resolución enunciados
aquí, se puede consultar literatura relacio- Luego, de manera similar, la instruc-
nada con álgebra lineal numérica, como, ción de MATLAB®:
por ejemplo: Datta (2010), Demmel (1997)
y Saad (2003). R = chol( A );

Métodos directos Retorna una matriz triangular supe-


rior R, la cual satisface que A = RtR. Es
Además del método de Eliminación
decir, determina la factorización de Choles-
Gaussiana, es posible aplicar dos variantes
ky, donde R:=Lt. Luego de esto, se puede
adicionales, con el fin de acelerar la reso-
proceder de manera análoga a la de la facto-
lución de los sistemas lineales involucrados
rización LU.
en el algoritmo previo. La primera varian-
te se obtiene al observar que el sistema li-
neal Aun = bn tiene la particularidad de que Métodos iterativos
la matriz A es siempre la misma, para todo
n=1,…, M. Con ello, si se calcula inicial- Los métodos iterativos para resolver
mente la factorización LU de la matriz A sistemas lineales, aproximan la solución de
y se usa esta en la solución del sistema, es un sistema Ax=b, mediante el cálculo de
posible reducir el tiempo de ejecución sig- algunos términos de una sucesión que con-
nificativamente. Por otro lado, la segunda verge a la solución de este. En relación con
variante, consiste en notar que la matriz A los métodos directos, los cuales obtienen la
es simétrica definida positiva, por lo que en solución en una sola iteración, los iterativos
lugar de la factorización LU, se puede utili- son útiles para resolver sistemas que involu-
zar la factorización de Cholesky, la cual tie- cran un gran número de variables (del orden
ne como ventaja adicional la reducción del de miles), dado que estos no conllevan un
almacenamiento, dado que ahora se almace- alto costo computacional como los direc-
na en memoria solo una matriz triangular en tos. Para poder iniciar un método iterativo,
lugar de dos. se requiere de una aproximación inicial x0,
En el caso de la factorización LU, esta usualmente definida como el vector nulo, y
puede ser calculada en MATLAB® a través entonces se calcula un conjunto de aproxi-
de la instrucción: maciones sucesivas xk , para k = 1, 2,…,Nú-
meroMáximoIteraciones.
[L, U] = lu( A ); Dado que la matriz de coeficientes en
el método de diferencias finitas es simétrica

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 93


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

definida positiva, entonces es posible emple- una familia de vectores A-ortogonales y con
ar métodos iterativos clásicos como: Jacobi, ella se puede escribir la solución del sistema
Gauss-Seidel y SOR. En particular, el méto- como una combinación lineal de esta. En el
do de sobre-relajación o método SOR (Suc- caso de MATLAB®, este cuenta con coman-

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
cesive Over Relaxation) corresponde en una dos predefinidos para ejecutar el método
aceleración del método de Gauss-Seidel en de Gradiente Conjugado Precondicionado
el que, para definir la iteración, se considera (PCG, por sus siglas en inglés), de la forma:
w∈ IE, w ≠ 0, para el cual se resuelve el
sistema equivalente wAx = wb. Más preci- x = pcg(A, b, tol, iterMax);
samente, el método de SOR es un método
de punto fijo cuya iteración viene dada por: donde se desea resolver el sistema
Ax=b, por medio de una tolerancia relativa
xk+1=(L+ D)-1[b+(( ) D – U)xk], al primer residuo tol > 0, con un máximo
de iterMax iteraciones. El PCG se cono-
donde L es la parte triangular infe- ce como método precondicionado, dado que
rior de A, U la parte triangular superior y si se considera la siguiente descomposición
D la diagonal de A. Es importante tener en para A:
cuenta que según el Teorema de Ostrows-
ki-Reich, presente por ejemplo en Saad A=LLt + R, con R ≠ O,
(2003), la iteración de SOR converge siem-
pre que 0<w<2. Más aún, la matriz de coe- Entonces nótese que A ≈ LLt puede ser
ficientes generada por el método de diferen- usado como un precondicionador, donde LLt
cias finitas admite un parámetro w óptimo, se conoce como la factorización incompleta
denominado wopt, el cual viene dado por: de Cholesky, la cual no necesariamente exis-
te, pero en el caso de hacerlo, se espera que
2 esta ayude a mejorar el condicionamiento es-
wopt:=
1 A 2
1– [ρ(I– –––– pectral de la matriz del sistema Ax = b, al
4+µ )]
1+
considerar el nuevo sistema equivalente:
h 2
donde µ:= ––––
k
y ρ (•) corresponde al M-1Ax = M-1b, con M : = LLt.
radio espectral de una matriz, el cual en este
caso satisface que: Para obtener la factorización incom-
pleta de Cholesky en MATLAB®, se puede
4+µ 4+ µ
{|
λmín(A)
ρ:= (I– 1 A)= máx 1– ––––– ||
λmáx(A)
, 1– –––––
4+ µ
, |} utilizar la instrucción:

L = ichol( A ); (en Windows) o L =


con 𝜆mín (A) y 𝜆máx(A), el mínimo y máximo
cholinc( A ); (en Unix),
valor propio de A, respectivamente.
donde, en el caso que L pueda ser
Finalmente, otro método iterativo
creada y sea invertible, entonces se puede
recomendado para matrices simétricas po-
ejecutar el método de Gradiente Conjugado
sitivas definidas es el método de Gradiente
Precondicionado con la factorización incom-
Conjugado (CG, por sus siglas en inglés),
pleta de Cholesky de la siguiente manera:
que consiste en determinar la solución de un
sistema lineal Ax=b, mediante el cálculo de x = pcg(A, b, tol, iterMax, L, L');

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 94


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Comparación: tiempo de ejecución 2, se muestra el tiempo de ejecución que


y experimentos numéricos: Valida- se requiere previo al recorrido de los pasos
ción de la implementación temporales. Este tiempo considera la cons-
trucción de la matriz A, así como aquellos

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
Memoria requerida procesos que requieren los métodos de re-
Considere el siguiente problema de solución, como, por ejemplo, la determina-
valores iniciales y contorno, para la ecua- ción de factorizaciones. Observe que Elimi-
ción de calor sobre el dominio Ω:=[0,1]2: nación Gaussiana fue el que menos tiempo
necesitó, dado que solo se requiere ensam-

{
ut=∆u, para (x, y) ∈ Ω, t ∈]0,1] { blar el sistema lineal para su ejecución. En
u(t, x, y) = 0, para (x, y) ∈ ∂Ω, t ∈ [0,1] la Tabla 3, se muestra el tiempo de ejecución
u(0, x, y) = xy (1–x)(1–y) para (x, y) ∈ Ω, exclusivo de la iteración que recorre cada
Es decir, se considera el problema mo- paso de tiempo, donde se resuelven los sis-
delo (1) con los datos: f (t, x, y) : = 0, g (t, x, temas lineales. Este es el tiempo más consi-
y) : = 0, u0 (x, y) : = xy (1 – x) (1 – y) y T : = 1. derable, dado que depende de la cantidad de
Ahora, se procede a determinar la me- puntos considerados para la aproximación de
moria requerida, así como el tiempo de eje- la solución. Luego, nótese de estos resulta-
cución del algoritmo final presentado en la dos, que el método más eficiente correspon-
sección anterior. Se considera N ∈{19, 99, de a la factorización de Cholesky, lo cual es
499} y M : = N + 1, así como cada uno de los consecuencia de que previo a esta iteración
métodos (directos e iterativos) de resolución ya se realizaron procedimientos que agilizan
de sistemas lineales descritos previamente. la resolución de los sistemas lineales. Más
En la Tabla 1, se determina el total de aún, es interesante observar que Eliminación
memoria creada por las implementaciones, Gaussiana y PCG poseen tiempos similares,
donde no es posible conocer con exactitud a pesar de que el primero se realiza en para-
la requerida por Eliminación Gaussiana lelo. Finalmente, en la Tabla 4, se resumen el
dado que no se puede acceder a la progra- tiempo total de ejecución, donde nuevamente
mación MATLAB® de este método. A pesar se aprecia que resolver los sistemas lineales
de ello, se aprecia, tal y como se esperaba, con la factorización de Cholesky resulta ser
que los métodos iterativos son los que me- el procedimiento más veloz, al menos, para
nos memoria requieren. Por ende, cuando la los tamaños de problemas considerados. A
cantidad de incógnitas sea significativamen- pesar de ello, es importante observar que el
te grande, los resultados en la Tabla 1 sugie- método PCG obtuvo un buen rendimiento, lo
ren utilizar métodos iterativos, para así no que sugiere que utilizar este método no solo
requerir más memoria que la utilizada para no requiere gran capacidad memoria compa-
almacenar el sistema lineal generado por el rado con los otros, sino que además es veloz.
método de diferencias finitas. En la Tabla
Tabla 1. Memoria requerida en megabytes (MB)
N M Eliminación Gaussiana Factorización LU Factorización Cholesky SOR PCG
19 20 0.0192 0.1241 0.1241 0.0379 0.0711
99 100 0.5227 15.3299 15.3299 1.0431 2.4909
499 500 13.2944 1909.2407 1909.2407 26.5774 72.7090
Nota: Fuente propia de la investigación.

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 95


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Tabla 2. Tiempo de cómputo independiente de la iteración temporal (en min)


N M Eliminación Gaussiana Factorización LU Factorización Cholesky SOR PCG
19 20 0.00041 0.00008 0.00002 0.00288 0.00002

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
99 100 0.00050 0.00465 0.00091 0.01066 0.00102
499 500 0.00506 1.97844 0.18130 3.60424 0.10279
Nota: Fuente propia de la investigación.

Tabla 3. Tiempo de cómputo únicamente de la iteración temporal (en min)


N M Eliminación Gaussiana Factorización LU Factorización Cholesky SOR PCG
19 20 0.00027 0.00009 0.00008 0.00046 0.00107
99 100 0.03561 0.01298 0.01290 0.09668 0.03907
499 500 6.80456 4.07359 4.04021 34.71655 7.38384
Nota: Fuente propia de la investigación.

Tabla 4. Tiempo de cómputo total (en min)


N M Eliminación Gaussiana Factorización LU Factorización Cholesky SOR PCG
19 20 0.00068 0.00017 0.00009 0.00333 0.00109
99 100 0.03611 0.01763 0.01381 0.10734 0.04009
499 500 6.80962 6.05204 4.22151 38.32079 7.48663
Nota: Fuente propia de la investigación.

Visualización del error en la exacta al problema (1). En particular, se


aproximación considera el problema (1) que queda com-
pletamente definido al considerar la solu-
Además, del estudio de los recursos ción exacta:
involucrados en el método propuesto, tam-
u (t, x, y) = sen (t + 𝜋x) sen (t + 𝜋y),
bién es importante corroborar que se está
aproximando la solución del problema (1)
Para T = 1. Es decir, se considera g (t,
correctamente. Para ello, en esta sección se
x, y) : = u (t, x, y) , u0 (x, y) : = u (0, x, y) y
ilustra numéricamente el comportamiento
f (t, x, y) : = cos (t + 𝜋x) sen (t + 𝜋y) + (t +
del error:
𝜋x) (cos (t + 𝜋y) + 2 𝜋2 sen (t + 𝜋y))
N 2
Luego, considerando N ∈{20, 40,
eh,n:= Σ|u(tn,xi,yj) –Uijn | ,
i,j=1 60, …, 200} y M = 10N, en la Gráfica 1 se
muestra la disminución del error eh,m en el
Respecto al tiempo n = 0, 1, 2, …, M, tiempo tM = T = 1. Observe cómo el error de-
1 → 0 , cuando N → +∞ .
siempre que h:= ––– crece a medida que h disminuye.
N+1
En este contexto, u representa la solución

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 96


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Gráfica 1. Error eh,m para un tiempo fijo Visualización de la solución:


Creación de películas en
MATLAB®

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
Debido a que el dominio en el
problema (1) está en IR2 , entonces la
solución, respecto al espacio, es una
función de tres variables. Sin embargo,
la solución depende además del tiempo,
por lo que en realidad sería una función
de cuatro variables y, por ende, se debe
graficar en IR4, lo cual resulta claro que
es visualmente imposible en este es-
crito, e incluso en la computadora. Por
tal razón, se considera realizar una pe-
lícula que muestre el comportamiento
de la solución en cada instante tn, para
Nota: fuente propia de la investigación.
n=0,1,…,M. Así, el objetivo de esta úl-
tima sección es mostrar cómo crear una
Finalmente, considerando N = 100 y película en MATLAB® que permita vi-
M = 1000, en la Gráfica 2 se muestra el in- sualizar la solución del problema (1).
cremento del error eh,n , para n = 0,1,…,M. Para ello, considere la siguiente modifi-
Observe cómo el error aumenta según se cación del algoritmo presentado en una
avanza en el paso en tiempo. sección previa:

Gráfica 2. Error eh,n para un h fijo. % Discretización de la ecuación de


calor
% u_t = u_xx + u_yy + f,
(x,y) en [0,1]x[0,1]
% u = g(t, x, y), (x,y) en la
frontera
% u = u_0(x, y), para t = 0
% donde t pertenece a [0,T] y N es
el número de puntos en
% espacio, mientras que M es el
número de puntos en tiempo.
function [matU,x,y] =
HeatEquation2DSchemeMovie(T,
N, M, f, g, u0)
% Malla uniforme para [0,1]
x[0,1]
h = 1 / (N + 1);
x = h : h : (1 - h);
y = x;
% Malla uniforme para [0,T]
Nota: fuente propia de la investigación. k = T / M;

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 97


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

t = k : k : T; N = 99;
% Solución en el tiempo t = 0 M = 300;
u = zeros(N^2, 1); T = 10;
for j = 1 : N % Determinar la solución aproximada
for i = 1 : N [matU, x, y] = HeatEquation2DSchemeMovie(

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
u( (j-1)*N + i ) = u0( x(i), T, N, M, @f, @g, @u0 );
y(j) ); % Crear película
end writerObj = VideoWriter('video.avi');
end open( writerObj );
matU = u; % Matriz donde la % Control de los ejes coordenados
columna j contiene axis tight
% la solución en el tiempo t_j set(gca, 'nextplot', 'replacechildren');
% Obtener la matriz set(gcf, 'Renderer', 'zbuffer');
mu = h^2 / k; % Fase de “filmación”
A = Laplacian2DMatrix( N, mu ); numframes = size(matU, 2);
% Factorización de Cholesky [X, Y] = meshgrid(x,y);
U = chol( A ); L = U'; for n = 1 : numframes
% Recorrer cada paso de tiempo uh = matU(:, n);
for n = 1 : M U = reshape(uh, N, N);
b = Lapacian2DRhs( N, t(n), x, Z = mesh(X, Y, U);
y, h, f, g, mu, u ); title(['Soluci\''on aproximada $t_{',
u = U \ ( L \ b ); % Resolver num2str(n-1), '}$'],...
el sistema lineal 'interpreter','latex')
matU = [ matU, u ]; % Almacenar xlabel('$x$','interpreter’,'latex')
la solución ylabel('$y$','interpreter','latex')
end zlabel('$t$','interpreter','latex')
end % Fin del programa currentframe = getframe;
writeVideo(writerObj, currentframe);
Nótese que esta nueva versión realiza end
close( writerObj );
las mismas funciones que la anterior, pero
dejando el método de Cholesky como mé- Con ayuda de este fragmento de códi-
todo de resolución por defecto. Además, re- go, se ejecuta el método y se crea la pelícu-
torna la malla en espacio y no la solución la para visualizar la solución obtenida. En
en el último tiempo, sino que almacena la efecto, considere en el problema (1) los va-
solución del tiempo tj en la columna j de lores: g(t, x, y):= 0, u0 (x, y):= x(1–x) y (1–y)
una matriz matU de orden N2 × (M+1). Esto y f(t, x, y):= cos(t+πx) sen(t+ πx)(cos(t+ πy)
puede verse como “el guion a ser filmado”. + 2 π2sen(t+ πy)).
Ahora, considere el siguiente conjun- En la Figura 4, se presentan algunas
to de instrucciones que permiten realizar la imágenes de la película que genera las ins-
creación de la película: trucciones previas.

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 98


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Figura 4. Tomas del video, para n=50, 100,…,300

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr
Nota: Fuente propia de la investigación.

Referencias Haberman, R. (1998). Elementary Applied Partial


Differential Equations, With Fourier Se-
ries and Boundary Value Problems. Tercera
Carslow, H. S., y Jaeger, J. C. (1959). Conduction of edición. Estados Unidos: Prentice-Hall.
Heat in Solids. Segunda edición. Inglaterra: Hahn, B. H., y Valentine D. T. (2016). Essential
Oxford University Press. MATLAB for Engineers and Scientists. Sexta
Ciarlet, P. G. (1995). Introduction to numerical lin- edición. Estados Unidos: Elsevier.
ear algebra and optimisation. Estados Uni- LeVeque, R. J. (2007). Finite Difference Methods for
dos: Cambrige University Press. Ordinary and Partial Differential Equations,
Ciarlet, P. G. (2002). The finite Element Method for El- Steady-State and Time-Dependent Problems.
liptic Problems. Estados Unidos: SIAM. doi: Estados Unidos: SIAM. doi: https://doi.
https://doi.org/10.1137/1.9780898719208 org/10.1137/1.9780898717839
Datta, B. N. (2010). Numerical Linear Alge- Morton, K. W., y Mayers, D. F. (2005). Numerical
bra and Applications. Segunda Edición. Solution of Partial Differential Equations.
Estados Unidos: SIAM. doi: https://doi. Segunda edición. Inglaterra: Cambrige Uni-
org/10.1137/1.9780898717655 versity Press. doi: https://doi.org/10.1017/
Demmel, J. W. (1997). Applied Numerical Linear CBO9780511812248
Algebra. Estados Unidos: SIAM. doi: https:// Quinn, M. J. (2003). Parallel Programming in C
doi.org/10.1137/1.9781611971446 with MPI and OpenMP. Estados Unidos: Mc-
Evans, L. C. (2010). Partial Differential Equations. Graw-Hill.
Segunda edición. Estados Unidos: American Saad, Y. (2003). Iterative Methods for Sparse
Mathematical Society. Linear Systems. Segunda Edición. Es-
Guzmán, J., Shu, C-W., y Sequeira, F. A. (2017). tados Unidos: SIAM. doi: https://doi.
H(div) conforming and DG methods for the org/10.1137/1.9780898718003
incompressible Euler’s equations. IMA Jour- Strikwerda, J. C. (2004). Finite Difference Schemes
nal of Numerical Analysis, 37(4), 1733-1771. and Partial Differential Equations. Segunda
doi: https://doi.org/10.1093/imanum/drw054 edición. Estados Unidos: SIAM. doi: https://
doi.org/10.1137/1.9780898717938

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 99


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.
ISSN Electrónico: 2215-3470
DOI: http://dx.doi.org/10.15359/ru.33-1.7

Thomas, J. W. (1995). Numerical Partial Differen-


tial Equations: Finite Difference Methods.
Estados Unidos: Springer-Verlag. doi: https://
doi.org/10.1007/978-1-4899-7278-1

UNICIENCIA Vol. 33, N°. 1, pp. 83-100. Enero-Junio, 2019 • URL: www.revistas.una.ac.cr/uniciencia • Correo electrónico: revistauniciencia@una.cr

Aspectos computacionales del método de diferencias finitas para la ecuación de calor dependiente del
tiempo (Filánder Sequeira-Chavarría y otros) por Revista Uniciencia se encuentra bajo una Licencia
CreativeCommons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Filánder Sequeira-Chavarría y Melvin Ramírez-Bogantes 100


Artículo protegido por licencia Creative Commons: BY-NC-ND / Protected by Creative Commons: BY-NC-ND
Uniciencia es una revista de acceso abierto/ Uniciencia is an Open Access Journal.

También podría gustarte