Está en la página 1de 8

1

F. I. Saldaa, W. J. Dutn y W. N. Bernal, Estudiantes de Maestra, Universidad Estatal de Cuenca

Solucin de la Ecuacin del Calor en Una Dimensin


en Estado Estacionario Mediante Diferencias Finitas

ResumenSe presenta el modelo de la ecuacin de


transferencia de calor en una dimensin y su resolucin mediante
diferencias finitas. El problema se analiza en estado estable y
sujeto a condiciones de frontera mixtas, de Dirichlet y Neumann.
Para completar el trabajo, se desarrollan los cdigos en
MATLAB para el esquema planteado y se presentan ejemplos de
aplicacin. Los cdigos de MATLAB son claros y permiten al
lector apreciar la implementacin de los mismos.
Palabras Clavecondiciones de frontera, EDP, ecuacin del
calor, diferencias finitas, MATLAB.

I. NOMENCLATURA

ut ( x , t) es la derivada parcial de
respecto al tiempo.
es la segunda derivada
u xx ( x , t)

u(x ,t )
parcial

de

u(x ,t ) respecto a la variable x (una dimensin).

II. INTRODUCCIN

L problema abordado en este documento es la


resolucin numrica de la ecuacin del calor
unidimensional en estado estable mediante diferencias

finitas.
La ecuacin del calor es un modelo matemtico (quizs el
ms sencillo) que trata de describir la evolucin de la
temperatura en un cuerpo slido.
Se establecen condiciones de frontera mixtas: de Dirichlet y
de Neumann, y la presencia de una fuente de calor.
En el modelado de sistemas mediante ecuaciones en
derivadas parciales en muy pocas ocasiones pueden obtenerse
soluciones analticas a estos problemas. Aunque existen varios
enfoques distintos para la resolucin numrica de estos
problemas, quiz el ms sencillo y extendido en el medio
ingenieril es el mtodo de las diferencias finitas.
Todos los problemas en derivadas parciales envuelven
condiciones de frontera donde el valor de u o alguna derivada
parcial de u es especificado en la frontera del dominio.
III. SOLUCIN DE LA ECUACIN DE CALOR
Muchos problemas de valores de contorno surgen de
soluciones en estado estable (estacionario) de problemas
transitorios. En el presente caso, se modela el problema
estacionario de conduccin del calor por difusin en presencia
de una fuente y sometido a condiciones de frontera, y se
plantea la solucin del mismo mediante el mtodo de
F. I. Saldaa y W. J. Dutn, estudiantes de la Maestria en Planificacin y
Gestin Energtica en la Universidad de Cuenca, actualmente prestan sus
servicios en la Empresa Elctrica Azogues..W. N. Bernal, estudiante de la
Maestria en Planificacin y Gestin Energtica en la Universidad de Cuenca,
desarrolla proyectos de Ingeniera Industrial.

diferencias finitas.
El mtodo de diferencias finitas es una de varias tcnicas
para obtener la solucin de la ecuacin en derivadas parciales.
A. La Ecuacin de Calor
Se considera el flujo de calor en una barra delgada
constituida de algn material conductor del calor, sometida a
una fuente de calor externa a lo largo de su longitud y
condiciones de frontera en cada extremo. Si asumimos que las
propiedades del material, la distribucin inicial de
temperatura, y la fuente varan nicamente con x, la distancia
a lo largo de la barra, y una seccin transversal uniforme de la
barra, entonces la distribucin de temperatura en cualquier
tiempo variar nicamente con x y podemos modelar este
sistema fsico con una ecuacin en derivadas parciales en una
dimensin espacial. Puesto que la solucin podra variar con el
tiempo, u(x,t) denota la temperatura en el punto x al tiempo t,
donde a<x<b, a largo de alguna longitud finita de la barra. La
solucin est entonces gobernada por la ecuacin del calor.

ut ( x ,t )=( ( x ) u x ( x ,t ) )x +( x , t)

(1)

donde ( x) es el coeficiente de conduccin del calor, el


cual puede variar con x, y (x , t) es la fuente de calor (o
sumidero, si <0 ).

Fig. 1. Transferencia de calor en una barra

Se asume que la teora bsica de esta ecuacin es familiar


al lector.
B. Condiciones de Frontera
Si el material es homogneo, entonces
( x)
independiente de x y la ecuacin del calor se reduce a

ut ( x ,t )=u xx ( x , t ) + (x ,t)

es
(2)

Al inicio del anlisis se requieren condiciones iniciales

u ( x , 0 )=u0 (x)

(3)
y condiciones de frontera, por ejemplo la temperatura podra
ser especificada en cada extremo
u ( a , t ) = (t ) ,
u ( b , t ) =(t)
(4)
Tales condiciones de frontera, donde el valor de la solucin
en s es especificado, son llamadas condiciones de frontera de
Dirichlet.

Alternativamente, en uno o ambos extremos pueden


especificarse los valores de los gradientes normales sobre el
u x = en este punto. Esta
contorno, en cuyo caso
condicin de frontera, la cual es una condicin sobre la
derivada de u ms que sobre u en s, es llamada una condicin
de frontera de Neumann.
C. El Problema de Estado Estable
En general, esperamos que la distribucin de temperatura
cambie con el tiempo. Sin embargo, si ( x , t) , (t)
y (t ) son independientes del tiempo, entonces cabra
esperar que la solucin eventualmente alcance una situacin
de estado estable
u( x ) , la cual entonces permanece
esencialmente sin cambio en tiempos posteriores.
Tpicamente, habr un tiempo transitorio inicial, a medida que
0
se aproxima a
(a menos que
u(x )
u (x)

u0 ( x )u ( x) ), pero, si estamos nicamente interesados


en determinar la solucin de estado estable en s, entonces
podemos establecer que ut =0 y obtener una ecuacin
diferencial ordinaria en x y la solucin u(x)
(5)
u ' ' ( x ) =f (x )
donde introdujimos

f ( x )=

( x )

(6)

Esta es una ecuacin diferencial ordinaria de segundo orden


que puede ser solucionada de manera analtica, mediante
funciones de Green o integrales de Fourier. Adems, se
requieren dos condiciones de frontera para determinar una
solucin nica. En nuestro caso se aplican las condiciones de
frontera de Dirichlet y Neumann
(7)
u ( a )= ,
u' ( b )=
Se tiene, por lo tanto, un problema de frontera de dos
puntos, puesto que una condicin es establecida en cada uno
de los extremos del intervalo donde la solucin es deseada.
La funcin (x) es especificada y deseamos determinar u(x)
en el intervalo a< x <b
a< x <b .
Dicho problema es conocido como de Poisson en una
dimensin, con condiciones de frontera mixtas (de Dirichlet y
Neumann), y se puede solucionar explcitamente en ciertos
casos, pero en la aplicacin a sistemas fsicos reales se
emplean mtodos numricos en los que la ecuacin en
derivadas parciales es reemplazada con una aproximacin
discreta.
D. Mtodo de Diferencias Finitas
El mtodo de diferencias finitas es una de varias tcnicas
para obtener la solucin de la ecuacin de calor, que aproxima
las derivadas en la ecuacin usando la expansin en series de
Taylor truncada.
La aproximacin discreta resulta en un conjunto de
ecuaciones algebraicas que son evaluadas (o solucionadas)
para los valores de las incgnitas discretas.
El dominio fsico es discretizado por medio de la mallado
del mismo, esto es, dividir el dominio en subintervalos. La
malla es un conjunto de puntos donde la solucin discreta ser

computada. Estos puntos son llamados nodos. El parmetro


clave de la malla es
x , la distancia entre puntos
adyacentes.
La idea del mtodo de diferencias finitas es reemplazar las
derivadas continuas con las llamadas frmulas de diferencias
que envuelven solamente valores discretos asociados con
posiciones en la malla.
En el presente caso existen derivadas nicamente con
respecto al espacio. En el lmite cuando el espaciamiento de la
malla tiende a cero, la solucin numrica obtenida con
cualquier esquema til aproximar la solucin a la ecuacin
diferencial original. Sin embargo, la tasa con la cual la
solucin numrica se aproxima a la solucin real vara con el
esquema.
A continuacin se ilustra el mtodo de solucin mediante
diferencias finitas centrales como una secuencia de pasos.
1. Discretizacin del dominio (generacin de la malla)
En una dimensin todos los problemas toman lugar sobre
un intervalo finito del eje x.
Realizamos una particin uniforme del dominio [a,b] en
subintervalos
de
longitud
uniforme

N1

ba
L
y N puntos de malla
x=
N1
N1
x i=0, N . De aqu x i=a+i x , etc.

x=

Fig. 2. Discretizacin del dominio en una dimensin

2. Aproximacin por diferencias finitas


Para la primera derivada

u' ( x i)= lim

x 0

u ( x i + x )u ( xi )
x

hacia adelante
(8)

'

u ( x i)= lim

u ( x i )u (xi x)
x

x 0

hacia atrs
(9)

u' ( x i)= lim

x 0

u' ( x i)

u ( x i+1 ) u ( xi1 )
2 x

ui +1ui1
2 x

u' ( x i)

central

(10)

diferencia central

(11)

U i +1U i1
2 x

(12)

Note la diferencia entre ui (exacta) y Ui (aproximacin),


esto es, ui =u ( xi )U i , donde Ui son los escalares
incgnitas que estamos buscando.

Para la segunda derivada

u ' u' i1
u (x i )= lim i+1
x
x 0
''

lim

''

u (x i )= lim

x 0

x 0

(13)

ui+1u i
u u
lim i i1
x
x
x 0
x

A=
(14)

''

u (x i )

ui12 ui +ui+1
( x)2

(15)

sustituyendo esta expresin en (5), obtenemos

U i12 U i +U i +1
( x)2

=f i=f ( x i ) , i=1, , N
(16)

La condicin de frontera de Dirichlet (7) implica que

U 0=

(17)

mientras que la condicin de frontera de Neumann puede ser


aproximada por diferencias hacia atrs
'

'
=u ( b )=u (x N )

u ( x N ) u(x N 1)

= lim
x 0
x

U N U N1

x
U N U N 1=

(18)
(19)

(20)
(21)

Esta diferencia hacia atrs produce una inconsistencia,


puesto que introduce un error de O( x ) mientras que las
diferencias centrales de la ecuacin de gobierno introducen un
error de

. Esto puede solucionarse tratando la


O( 2)

discretizacin de la condicin de borde de Neumann de una


manera diferente. Primero, introducimos un punto de la malla
ficticio x N +1=x N + x , con una temperatura asociada

u N+1 . Esta temperatura no tiene significado fsico alguno,

dado que el punto x N +1 se encuentra fuera del dominio


del problema. Obtenemos un sistema de N-1 ecuaciones para
N incgnitas. La ecuacin faltante la provee la condicin de
Neumann, pero aproximando mediante diferencias centrales:

U N +1U N1

2 x

(22)

Combinando (16), (17), y (22), obtenemos el sistema de


ecuaciones algebraicas lineales:

A
U =b

(23)

2 1
1 2 1
0 1 2

0
0

0
1

0
0

0
0
0

0
0
1 2 1
1 0 1

[] [ ]

U1
U1
U2

U=
Ui

U N 1
UN

( x)2 f 1 +U 0
( x )2 f 2

b=

donde A es la matriz de coeficientes,


incgnitas (valores de temperatura), y
valores conocidos.
3. Solucionar el sistema lineal

( x )2 f 3

( x )2 f i

( x)2 f N

2 x

U es un vector de
b es un vector de

A
U =b

Las derivadas en la ecuacin diferencial han sido


reemplazadas con aproximaciones de diferencias finitas en
cada punto interior de la malla, reduciendo la ecuacin
diferencial en un set de ecuaciones algebraicas acopladas, las
cuales pueden entonces ser solucionadas mediante un
software.
E. Implementacin en MatLab
El uso general de paquetes de software permite solucionar
problemas de una manera ms fcil, rpida y precisa.
Los modelos matemticos utilizados en la representacin
de fenmenos fsicos, requieren de anlisis especiales tanto en
los diferentes mtodos aplicados para solucionarlos como en
los resultados que se obtienen.
MATLAB proporciona gran funcionalidad en este campo e
incluso incorpora un toolbox para EDP.
Se implement un script en MATLAB que resuelve la
ecuacin del calor en una dimensin en estado estable, con
una fuente de calor, y con condiciones de frontera mixtas,
mediante diferencias finitas.
Las entradas del cdigo de MATLAB requieren:
Los extremos de la barra, a y b,
El coeficiente de difusividad trmica [m2/s]
El nmero de puntos, incluyendo las condiciones de
frontera, en los que se aproximar la solucin.

La funcin fuente de calor ( x ) .


La condicin de frontera de Dirichlet en el extremo
izquierdo de la barra.
La condicin de frontera de Neumann en el extremo
derecho de la barra.
Seguidamente se procede a la solucin mediante diferencias
centrales.
Los resultados se presentan de manera tabulada y grfica.
El cdigo del script implementado calorv.m permite,
adems la solucin de la ecuacin (5) con condiciones de
Dirichlet en ambos extremos de la barra. Para este caso se
debe ingresar calorv(1).
En el caso de condiciones mixtas se utiliza la rutina
calorv(2).

F. Aplicacin
El cdigo implementado en el script calorv.m se prueba
mediante la aplicacin al siguiente problema bsico, y sus
variantes:
Se tiene una barra de un material cuya conductividad es
k =0.5 m2 /s , la longitud es L=1 m, y la generacin de

Flujo de Calor en una Barra

25

Temperatura

20

15

10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Longitud de la Barra

0.8

0.9

Fig. 3. Temperatura para aproximacin en cinco puntos.

Con 10 puntos de evaluacin se obtiene:


TABLA II
SOLUCIN DE LA ECUACIN EN DIEZ PUNTOS

calor interno es f (x)=10 W / m3 . El extremo izquierdo


est expuesto a una temperatura de 25 C, y el otro extremo a
5 C.
Para solucionar el problema se considera que el extremo
izquierdo se encuentra en el origen del eje x, con lo cual
a=0 (sin embargo, a puede tomar otro valor). Como
L=1 , b=1 .
Al especificar 5 puntos de aproximacin se obtienen los
resultados de la tabla I:
TABLA I
SOLUCIN DE LA ECUACIN EN CINCO PUNTOS

Flujo de Calor en una Barra

25

Temperatura

20

15

10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Longitud de la Barra
Fig. 4. Temperatura para aproximacin en diez puntos.

Si al problema anterior se consideran condiciones mixtas,


es decir de Dirichlet en el extremo izquierdo y de Neumann en
el derecho (est aislado ( u x =0 )) se obtiene:

Flujo de Calor en una Barra

34

32

25.6

31

25.5

30

Temperatura

Temperatura

Flujo de Calor en una Barra

25.7

33

29
28
27

25.4
25.3
25.2

26
25

25.1
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Longitud de la Barra
Fig. 5. Temperatura para aproximacin en diez puntos con condiciones: 25
de Dirichlet y 0 de Neumann.
TABLA III
SOLUCIN DE LA ECUACIN EN DIEZ PUNTOS CON FUENTE DE
CALOR SENOIDAL

25

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Longitud de la Barra

0.9

Fig. 7. Temperatura para aproximacin en cien puntos con condiciones: 25


de
Dirichlet
y
0
de
Neumann.
Funcin
forzante:

f (x)=2 x 2 sen(x )
Flujo de Calor en una Barra

60
55

Temperatura

50
45
40
35

Para el caso de una fuente variable f (x)=2 x 2 sen(x ) ,


el extermo izquierdo a una temperatura de 25C y el extremo
derecho aislado ( u x =0 ):

25.25

Temperatura

Longitud de la Barra

10

f (x)=2 x sen(x ) .

25.3

25.2
25.15
25.1
25.05
25

25

Fig. 8. Temperatura para aproximacin en diez puntos con condiciones: 25


de Dirichlet y 0 de Neumann. Longitud: 10. Funcin forzante

Flujo de Calor en una Barra

25.35

30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Longitud de la Barra

0.8

0.9

Fig. 6. Temperatura para aproximacin en cinco puntos con condiciones: 25


de
Dirichlet
y
0
de
Neumann.
Funcin
forzante:

f (x)=2 x 2 sen(x )

G. Anlisis de Resultados
El dominio se es 0<x<1. La cantidad de inters es la
temperatura u(x) en cada punto en la barra.
Para una solucin nica sobre el dominio se requieren dos
condiciones de frontera. Dos tipos de condiciones de frontera
son comunes, dependiendo de la situacin fsica en los
extremos:
frontera de temperatura constante: Si una temperatura
constante es aplicada a un extremos de la barra (=25)
frontera aislada: Si un aislante es aplicado a un extremo de
la varilla. Entonces no existe flujo a travs de la frontera. El
flujo de calor en la ecuacin del calor es proporcional a

du
, as por ejemplo en x=1 el extremo aislado da una
dx

condicin de frontera de

du(1)
=0 .
dx

La implementacin del mtodo en MATLAB depende de


los nodos discretizados.
La ejecucin del script discretiza la longitud de de la barra,
y encuentra los valores Ui que constituyen un conjunto de
soluciones aproximadas.
Para el primer caso de fuente variable y cinco nodos:

[ ]
[ ]
[ ]

2 1
0 0
1 2
1 0
A= 0 1 2 1
0
0 1 2
0
0
1
0

0
0
0
1
1

25.0013
0.0100
b= 0.0325
0.0735
0

25.0805
25.1597
U= 25.2290
25.2657
25.2290

H. Conclusiones y desarrollo posterior


El cdigo implementado resuelve la ecuacin (5) mediante
diferencias finitas, la cual es una de varias tcnicas para
obtener su solucin. En todas las soluciones numricas, la
ecuacin en derivadas parciales es reemplazada con una
aproximacin discreta. En este contexto, la palabra discreta
significa que la solucin numrica es conocida solamente en
un nmero finito de puntos en el dominio fsico. El nmero de
estos puntos puede ser seleccionado por el usuario del mtodo
numrico.
De los resultados obtenidos para las diferentes corridas, en
general se puede indicar que incrementar el nmero de puntos
no solamente incrementa la resolucin (detalle), sino que
adems incrementa la precisin de la solucin numrica. Esto
debido a que una fuente de error es el error de truncamiento,
que puede ser reducido al incrementar el nmero de nodos y
reducir el tamao de los subintervalos.
Con el fin de que los resultados no sean altamente
oscilatorios se deben elegir pasos razonablemente pequeos,
de tal manera que el esquema sea estable.
Es importante indicar que el problema analizado es
estrictamente de condiciones de frontera y no requiere de
condiciones iniciales.
Adems de las diferencias finitas existen otros mtodos de

solucin, de los cuales el ms importante es el de elementos


finitos.
Se plantea como desarrollo posterior la resolucin de la
ecuacin de transferencia de calor generalizada, es decir
considerando la evolucin temporal (transitoria), y adems
usando el mtodo de Crank-Nicholson.

IV. BIBLIOGRAFA
[1]
[2]
[3]
[4]
[5]
[6]

B. Hunt, R. Lipsman, J. Rosenberg, A Guide to MATLAB for Beginners


and Experienced Users Systems, Cambridge PRESS, 2001.
H. J. Lee, W. E. Schiesser, Ordinary and partial differential equation
routines in C, C++, Fortran, Java, Maple, and MATLAB, USA,
Chapman & Hall/CRC, 2004.
S. C. Chapra, R. P. Canale, Numerical Methods for Engineers. (5 ed.)
Singapur, McGrawHill, 2006.
G. D. Smith, Numerical Solution of Partial Differential Equations,
Oxford, 3rd ed., 1985.
W. J. Minkowycz, E. M. Sparrow and J. Y. Murthy, Handbook of
Numerical Heat Transfer, Second Edition, 2006 John Wiley & Sons, Inc.
http://www.mathworks.com/moler

V. ANEXO
Se presenta el cdigo del script calorv.m.
%Programa que permite resolver la transferencia de calor
en estado
%estacionario en una dimensin por el mtodo de
diferencias finitas.
%
%Para utilizar el programa debe definir el tamao de una
barra, esto por
%tratarse de una dimensin, tambien se debe establecer
el material del cual
%esta constituido, para lo cual se define el coeficinte
de difusividad
%trmica Kc.
%
%Como el mtodo que se utiliza es el de diferencias
finitas, se debe
%considerar el nmero de puntos a estudiar o malla a
construir.
%
%El problema permite estudiar el sistema cuando contiene
una fuente
%de calor intrna, que depende de la posicin, por lo
tanto este parmetro
%tambien se debe ingresar.
%
%Al ser el problema una ecucacin diferencial, se
definen dos tipos de
%condiciones de borde, la de Dirichlet para x(a)=alfa y
la de Neumann
%Ux=beta,|x=L, donde alfa es el valor inicial en el
inicio de la barra y
%beta es la condicin de borde de la derivada en el otro
extremo de la
%barra (0 en el caso homogneo).
%
%Al finalizar los clculos se presenta la grafica de la
variacin de
%temperatura a lo largo de la barra aplicando las
condiciones ingresadas.
function calorv(tipo) %Men para escoger los casos
solicitados
switch tipo
case (1)
c1; %Resuelve las ecuaciones diferenciales y
devuelve un grfica de X vs. Y

7
case (2);
c2; %Resuelve las ecuaciones diferenciales y
devuelve un grfica de X,Y y Z vs t
otherwise
error('Funcin no definida');
end

for j=1:n-3
if i==j
j=j+1;
A(i,j)=-1;
end
end
end

function c1
clear all
clc
global y s lamda
disp('Programa para resolver la transferencia de calor
estacionario en una');
disp('dimensin con condiciones de Dirichlet');
disp('por el mtodo de diferencias finitas');
disp(' ');
disp('Datos:');
a=input('Ingrese el inicio de la barra:');
L=input('Ingrese el final de la barra:'); %Es necesario
conocer la
%longitud de la barra para el clculo en una dimensin
k=input('Ingrese el coeficiente de difusividad trmica
Kc:');%El coeficiente
%de conductividad trmica es caracterstico del
material;
n=input('Ingrese el numero de puntos en los que desea
analizar el sistema:');
%Se deben incluir los bordes
q=input('Ingrese la funcin de calor q(x)=','s');%Es la
funcin que representa
%la temperatura inicial
D=input('Ingrese la condicion inicial para x(a):');%Se
aplica la condicin
%de frontera de Dirichlet al inicio de la barra
N=input('Ingrese la condicion inicial para x(L):');%Se
aplica la
%condicin de frontera de Dirichlet al final de la barra
y=linspace(a,L,n) %Crea un vector con incremento s hasta
L que representa
%los puntos de anlisis del sistema.
s=(y(1,2)-y(1,1)); %diferencial de desplazamiento que
depende del nmero
%de puntos escogidos para el anlisis
lamda=s^2/k;
%Ahora se va a formar el arrelgo AU=q
%Creacin del vector q, el cual contine las condiciones
de Dirichlet
for i=2:n-2
if i==2
x=y(1,i);
b(i,1)=lamda.*eval(q)+D;%Condicin de
Dirichlet al inicio de la barra.
else
x=y(1,i);
b(i,1)=lamda.*eval(q);
end
end
x=y(1,n-1);
b(n-1,1)=lamda.*eval(q)+N; %Condicin de Dirichlet
al final de la barra.
b(1,:)=[];
b
%Creacin de la matriz A, que contiene los coeficientes
de la variables
%de temperatura en cada punto de anlisis.
for i=1:n-2
for j=1:n-2
if i==j
A(i,j)=2;
end
end
end
for i=1:n-3

for i=2:n-2
for j=2:n-2
if i==j
j=j-1;
A(i,j)=-1;
end
end
end

A % Vector tridiagonal que contiene los coeficientes de


las ecuaciones de
%temperatura
T=A\b;
U=[D;T;N]
plot(y,U) %Grfica de la Temperatura a lo largo de la
barra
grid on
xlabel('Longitud de la
Barra','FontSize',14);ylabel('Temperatura','FontSize',14
);title('Flujo de Calor en una Barra','FontSize',16);
function c2
clear all
clc
global y s lamda
disp('Programa para resolver la transferencia de calor
estacionario en una');
disp('dimensin, con condiciones mixtas (Dirichlet y
Neumann),');
disp('por el mtodo de diferencias finitas');
disp(' ');
disp('Datos:');
a=input('Ingrese el inicio de la barra:');
L=input('Ingrese el final de la barra:'); %Es necesario
conocer la
%longitud de la barra para el clculo en una dimensin
k=input('Ingrese el coeficiente de difusividad trmica
Kc:');%El coeficiente
%de difusividad trmica es caracterstico del material;
n=input('Ingrese el numero de puntos en los que desea
analizar el sistema:');
%Se deben incluir los bordes
q=input('Ingrese la funcin de calor q(x)=','s');%Es la
funcin que representa
%la temperatura inicial
D=input('Ingrese la condicion inicial para x(0):');%Se
aplica la condicin
%de frontera de Dirichlet
N=input('Ingrese la condicion de contorno para dx/dt|
x=L:');%Se aplica la
%condicin de contorno de Neumann
y=linspace(a,L,n) %Crea un vector con incremento s hasta
L que representa
%los puntos de anlisis del sistema.
s=(y(1,2)-y(1,1)); %diferencial de desplazamiento que
depende del nmero
%de puntos escogidos para el anlisis
lamda=s^2/k;
%Ahora se va a formar el arrelgo AU=q
%Creacin del vector q, el cual contine las condiciones
de Dirichlet y Neumann
for i=2:n-1
if i==2
x=y(1,2);
c(i,1)=lamda.*eval(q)+D; %Condicin de
Dirichlet.
else
x=y(1,i);

8
c(i,1)=lamda.*eval(q);

A(i,j)=-1;

end
end
g=(2*s/k)*N; %Condicin de Neumann.
c(1,:)=[];
b=[c;g] % Vector q
%Creacin de la matriz A, que contiene los coeficientes
de la variables
%de temperatura en cada punto de anlisis.
for i=1:n-2
for j=1:n-2
if i==j
A(i,j)=2;
end
end
end
for i=1:n-2
for j=1:n-2
if i==j
j=j+1;
A(i,j)=-1;
end
end
end
for i=2:n-2
for j=2:n-2
if i==j
j=j-1;

end
end
end
%Se completa el vector A con los elementos dbajo
mostrados en razn de que
%se utiliz diferencias centrales para representar la
derivada de primer
%grado y al hacer esto se introdujo una nueva variable
para la cual se
%debe aplicar la condicin de Neumann
A(n-1,n-1)=-1;
A(n-1,n-3)=1;
A % Vector tridiagonal que contiene los coeficientes de
las ecuaciones de
%temperatura
T=A\b
U=[D;T] % Vector de resultados de Temperatura en la
barra.
plot(y,U) %Grfica de la Temperatura vs. el
desplazamieno
grid on
xlabel('Longitud de la
Barra','FontSize',14);ylabel('Temperatura','FontSize',14
);title('Flujo de Calor en una Barra','FontSize',16);

También podría gustarte