Академический Документы
Профессиональный Документы
Культура Документы
L
x=a φ(x,t) x=b
fuente (o sumidero) de calor
9 /9 9 /9
456∆7→8 +-. + 456∆7→8 + +/. donde A es la matriz de coeficientes, 3 DE es un vector de
( " ) = lim∆ ∆7 ∆7
(14)
incógnitas (valores de temperatura), y DE es un vector de
→ ∆
*+/. 0*+ ,*+-.
( ") ≈ (∆ ):
(15) valores conocidos.
DE = DE
3. Solucionar el sistema lineal C3
sustituyendo esta expresión en (5), obtenemos
2+/. 02+ ,2+-. Las derivadas en la ecuación diferencial han sido
− = " = ( " ), ∀$ = 1, … , (16)
(∆ ): reemplazadas con aproximaciones de diferencias finitas en
cada punto interior de la malla, reduciendo la ecuación
La condición de frontera de Dirichlet (7) implica que
diferencial en un set de ecuaciones algebraicas acopladas, las
3 = (17) cuales pueden entonces ser solucionadas mediante un
mientras que la condición de frontera de Neumann puede ser software.
aproximada por diferencias hacia atrás E. Implementación en MatLab
=
− ( )= ( )
κ = (18) El uso general de paquetes de software permite solucionar
problemas de una manera más fácil, rápida y precisa.
= *( > ) *( >/. ) Los modelos matemáticos utilizados en la representación
−
κ = lim∆ → ∆
(19)
de fenómenos físicos, requieren de análisis especiales tanto en
= 2> 2>/.
los diferentes métodos aplicados para solucionarlos como en
−
κ ≈ ∆ ⇒ (20) los resultados que se obtienen.
MATLAB proporciona gran funcionalidad en este campo e
κ ∆x
=
3 −3 ! =− (21) incluso incorpora un toolbox para EDP.
Se implementó un script en MATLAB que resuelve la
Esta diferencia hacia atrás produce una inconsistencia, ecuación del calor en una dimensión en estado estable, con
puesto que introduce un error de A(∆ ) mientras que las una fuente de calor, y con condiciones de frontera mixtas,
diferencias centrales de la ecuación de gobierno introducen un mediante diferencias finitas.
error de A(∆ )0 ). Esto puede solucionarse tratando la Las entradas del código de MATLAB requieren:
discretización de la condición de borde de Neumann de una • Los extremos de la barra, a y b,
manera diferente. Primero, introducimos un punto de la malla • El coeficiente de difusividad térmica κ [m2/s]
ficticio +1 = + ∆ , con una temperatura asociada +1 . • El número de puntos, incluyendo las condiciones de
Esta temperatura no tiene significado físico alguno, dado que frontera, en los que se aproximará la solución.
el punto +1 se encuentra fuera del dominio del problema. • La función fuente de calor ( ).
Obtenemos un sistema de N-1 ecuaciones para N incógnitas. • La condición de frontera de Dirichlet en el extremo
La ecuación faltante la provee la condición de Neumann, pero izquierdo de la barra.
aproximando mediante diferencias centrales:
• La condición de frontera de Neumann en el extremo
3 +1 −3 −1
≈− (22) derecho de la barra.
2∆ κ Seguidamente se procede a la solución mediante diferencias
Combinando (16), (17), y (22), obtenemos el sistema de centrales.
ecuaciones algebraicas lineales: Los resultados se presentan de manera tabulada y gráfica.
El código del script implementado calorv.m permite,
DE = DE
C3 (23) además la solución de la ecuación (5) con condiciones de
2 −1 ⋯ ⋯ ⋯ ⋯ ⋯ 0 Dirichlet en ambos extremos de la barra. Para este caso se
H−1 2 −1 0 ⋯ ⋯ ⋯ 0N debe ingresar calorv(1).
G M
G 0 −1 2 −1 0 ⋯ ⋯ 0M En el caso de condiciones mixtas se utiliza la rutina
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮ ⋮ M
C=G
calorv(2).
G 0 ⋯ 0 −1 2 −1 0 ⋯M
G ⋮ ⋯ ⋮ ⋱ ⋮ ⋱ ⋱ 0M F. Aplicación
G 0 ⋯ ⋯ 0 0 −1 2 −1M El código implementado en el script calorv.m se prueba
F 0 ⋯ ⋯ ⋯ 0 1 0 −1L mediante la aplicación al siguiente problema básico, y sus
(∆ )0 ! + 3 variantes:
3! H 0
N Se tiene una barra de un material cuya conductividad es
H 3 N G (∆ ) 0 M Q = 0.5T0 /V, la longitud es L=1 m, y la generación de calor
G ! M G (∆ )0 O M
G 30 M G M interno es ( ) = 10W ⁄TO . El extremo izquierdo está
⋮
DE = G ⋮ M
3 DE = G
(∆ )0 " M expuesto a una temperatura de 25 ⁰C, y el otro extremo a 5 ⁰C.
G 3" M G M Para solucionar el problema se considera que el extremo
G ⋮ M G ⋮ M
0 izquierdo se encuentra en el origen del eje x, con lo cual = 0
G3 ! M G (∆ ) M
G M (sin embargo, a puede tomar otro valor). Como Y = 1, = 1.
F 3 L 2∆
P
F κ L
4
TABLA I
SOLUCIÓN DE LA ECUACIÓN EN CINCO PUNTOS 20
Temperatura
x Temperatura
0 25 15
0.2 22.6
0.4 19.4
0.6 15.4 10
0.8 10.6
1 5
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Longitud de la Barra
Flujo de Calor en una Barra Fig. 4. Temperatura para aproximación en diez puntos.
25
33
10
32
31
Temperatura
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
30
Longitud de la Barra
Fig. 3. Temperatura para aproximación en cinco puntos. 29
28
26
TABLA II
SOLUCIÓN DE LA ECUACIÓN EN DIEZ PUNTOS 25
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Longitud de la Barra
x Temperatura Fig. 5. Temperatura para aproximación en diez puntos con condiciones: 25
0 25 de Dirichlet y 0 de Neumann.
0.1 23.9
TABLA III
0.2 22.6 SOLUCIÓN DE LA ECUACIÓN EN DIEZ PUNTOS CON FUENTE DE
0.3 21.1 CALOR SENOIDAL
0.4 19.4
0.5 17.5 x Temperatura
0.6 15.4 0 25
0.7 13.1 0.1 26.7
0.8 10.6 0.2 28.2
0.9 7.9 0.3 29.5
1 5 0.4 30.6
0.5 31.5
0.6 32.2
0.7 32.7
0.8 33
0.9 33.1
1 33
25.6 2 −1 0 0 0
H−1 2 −1 0 0 NM
G
25.5 C = G 0 −1 2 −1 0M
G0 0 −1 2 −1M
Temperatura
25.4 F0 0 1 0 −1L
25.0013
25.3
H 0.0100 N
G M
= G 0.0325 M
25.2
G 0.0735 M
F 0 L
25.1
25
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
25.0805
Longitud de la Barra H25.1597N
G M
Fig. 7. Temperatura para aproximación en cien puntos con condiciones: 25
3 = G25.2290M
de Dirichlet y 0 de Neumann. Función forzante: ( ) = 2 0 VZ[( ) G25.2657M
F25.2290L
oscilatorios se deben elegir pasos razonablemente pequeños, %Al finalizar los cálculos se presenta la grafica de la
variación de
de tal manera que el esquema sea estable. %temperatura a lo largo de la barra aplicando las
Es importante indicar que el problema analizado es condiciones ingresadas.
estrictamente de condiciones de frontera y no requiere de function calorv(tipo) %Menù para escoger los casos
condiciones iniciales. solicitados
Además de las diferencias finitas existen otros métodos de switch tipo
case (1)
solución, de los cuales el más importante es el de elementos c1; %Resuelve las ecuaciones diferenciales y
finitos. devuelve un gràfica de X vs. Y
case (2);
Se plantea como desarrollo posterior la resolución de la c2; %Resuelve las ecuaciones diferenciales y
ecuación de transferencia de calor generalizada, es decir devuelve un gràfica de X,Y y Z vs t
otherwise
considerando la evolución temporal (transitoria), y además error('Función no definida');
usando el método de Crank-Nicholson. end
%de temperatura en cada punto de análisis. %Creación del vector q, el cual contine las condiciones
for i=1:n-2 de Dirichlet y Neumann
for j=1:n-2 for i=2:n-1
if i==j if i==2
A(i,j)=2; x=y(1,2);
end c(i,1)=lamda.*eval(q)+D; %Condición de
end Dirichlet.
end else
x=y(1,i);
for i=1:n-3 c(i,1)=lamda.*eval(q);
for j=1:n-3 end
if i==j end
j=j+1; g=(2*s/k)*N; %Condición de Neumann.
A(i,j)=-1; c(1,:)=[];
end b=[c;g] % Vector q
end
end %Creaciòn de la matriz A, que contiene los coeficientes
de la variables
for i=2:n-2 %de temperatura en cada punto de análisis.
for j=2:n-2 for i=1:n-2
if i==j for j=1:n-2
j=j-1; if i==j
A(i,j)=-1; A(i,j)=2;
end end
end end
end end
for i=1:n-2
A % Vector tridiagonal que contiene los coeficientes de for j=1:n-2
las ecuaciones de if i==j
%temperatura j=j+1;
T=A\b; A(i,j)=-1;
U=[D;T;N] end
plot(y,U) %Gráfica de la Temperatura a lo largo de la end
barra end
grid on
xlabel('Longitud de la for i=2:n-2
Barra','FontSize',14);ylabel('Temperatura','FontSize',1 for j=2:n-2
4);title('Flujo de Calor en una Barra','FontSize',16); if i==j
j=j-1;
function c2 A(i,j)=-1;
clear all end
clc end
global y s lamda end
disp('Programa para resolver la transferencia de calor
estacionario en una'); %Se completa el vector A con los elementos dbajo
disp('dimensión, con condiciones mixtas (Dirichlet y mostrados en razòn de que
Neumann),'); %se utilizó diferencias centrales para representar la
disp('por el método de diferencias finitas'); derivada de primer
disp(' '); %grado y al hacer esto se introdujo una nueva variable
disp('Datos:'); para la cual se
a=input('Ingrese el inicio de la barra:'); %debe aplicar la condición de Neumann
L=input('Ingrese el final de la barra:'); %Es necesario A(n-1,n-1)=-1;
conocer la A(n-1,n-3)=1;
%longitud de la barra para el càlculo en una dimensión
k=input('Ingrese el coeficiente de difusividad térmica A % Vector tridiagonal que contiene los coeficientes de
Kc:');%El coeficiente las ecuaciones de
%de difusividad térmica es característico del material; %temperatura
n=input('Ingrese el numero de puntos en los que desea T=A\b
analizar el sistema:');
%Se deben incluir los bordes U=[D;T] % Vector de resultados de Temperatura en la
q=input('Ingrese la funciòn de calor q(x)=','s');%Es la barra.
funciòn que representa plot(y,U) %Gráfica de la Temperatura vs. el
%la temperatura inicial desplazamieno
D=input('Ingrese la condicion inicial para x(0):');%Se grid on
aplica la condición xlabel('Longitud de la
%de frontera de Dirichlet Barra','FontSize',14);ylabel('Temperatura','FontSize',1
N=input('Ingrese la condicion de contorno para 4);title('Flujo de Calor en una Barra','FontSize',16);
dx/dt|x=L:');%Se aplica la
%condición de contorno de Neumann
y=linspace(a,L,n) %Crea un vector con incremento s
hasta L que representa
%los puntos de análisis del sistema.
s=(y(1,2)-y(1,1)); %diferencial de desplazamiento que
depende del nùmero
%de puntos escogidos para el análisis
lamda=s^2/k;