Placa de calor

Solo disponible en BuenasTareas
  • Páginas : 7 (1603 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de enero de 2011
Leer documento completo
Vista previa del texto
Codificación en Matlab
function EDP
%____________________________________________________________

_____
%Nombre: Alejandra Mendieta
%Curso: Tercero A
%Fecha: 04/02/2009
%____________________________________________________________

_____
% EDP funcion que permite calcular la temperatura debida al flujo de calor en cada punto de la placa ingresada.
%
% dimension de la baseb
% dimension de la altura h
% dimension de cada subintervalo d
% numero de divisiones en el eje x n
% numero de divisiones en el eje y m
% matriz auxiliar tridiagonal para armar la matriz A aux1
% matriz auxiliar diagonal para armar la matriz A aux2
% matriz que relaciona la variacion de temperatura debida
% al flujo de calor en cada punto de la placaA
% matriz auxiliar para armar el vector de temperaturas
% iniciales en los diferentes puntos de la placa T
%-----------------------------------------------------------------
%lectura de las dimenciones de la placa y de los subintervalos
b=input('ingrese la dimension de la base de la placa ');
h=input('ingrese la dimension de la altura de la placa ');
d=input('ingrese ladimension de cada subintervalo ');
n=(b/d);
m=(h/d);
%verificacion del numero de puntos de division de la placa
if or((n-floor(n)~=0),(m-floor(m)~=0))
display('las dimensiones especificadas no corresponden vuelva a ingresarlas');
display('verificando que el cociente entre las dimensiones del lado y de los subintevalos sea un numero entero');
b=input('ingrese la dimensionde la base de la placa ');
h=input('ingrese la dimension de la altura de la placa ');
d=input('ingrese la dimension de cada subintervalo ');
n=(b/d);
m=(h/d);
end
%ingreso de las condiciones de frontera, temperaturas en cada extremo de la
%placa
display('condiciones de frontera')
tb=input('ingrese la temperatura para el extremo inferior de la placa ');ta=input('ingrese la temperatura para el extremo superior de la placa ');
ti=input('ingrese la temperatura para el extremo izquierdo de la placa ');
td=input('ingrese la temperatura para el extremo derecho de la placa ');
T=zeros(m-1,n-1);
%pregunta se se desea colocar una temperatura concentrada a un punto
%especifico y asigna a dicho punto la temperatura indicada
resp=input('sidesea colocar una temperatura concentrada a un punto especifico ingrese 1 caso contrario 0 resp= ')
if resp==1
x=input('ingrese coordenada X= ');
y=input('ingrese coordenada Y= ');
end
%verifica que el punto de temperatura concentrada coincida con alguna de
%las divisiones hechas
if or (((x/d)-floor(x/d))~=0,((y/d)-floor(y/d))~=0)
display('las coordenadas del punto nocoinciden con las divisiones realizadas, ingrese nuevamente las coordenadas')
x=input('ingrese coordenada X= ');
y=input('ingrese coordenada Y= ');
end
T(m-y/d,x/d)=input('Temperataura del punto= ');
%arma una matriz de temperatura inciales para cada punto de la placa
T(1,1:n-1)=ta;
T(m-1,1:n-1)=tb;
T(1:m-1,1)=T(1:m-1,1)+ti;
T(1:m-1,n-1)=T(1:m-1,n-1)+td;T(m-y/d,x/d-1)=T(m-y/d,x/d-1)+T(m-y/d,x/d);
T(m-y/d,x/d+1)=T(m-y/d,x/d+1)+T(m-y/d,x/d);
T(m-1-y/d,x/d)=T(m-1-y/d,x/d)+T(m-y/d,x/d);
T(m+1-y/d,x/d)=T(m+1-y/d,x/d)+T(m-y/d,x/d);
%armamos el vectro de temperaturas iniciales a partir de la matriz T
k=1;
for j=1:m-1
for i=1:n-1
T1(k)=T(m-j,i);
k=k+1;
if and ((m-y/d==m-j),(x/d==i))
k=k-1;
k=1;
end
endend
%armamos la matriz que relaciona la variacion de temperatura debida al
%flujo de calor en cada punto de la placa
aux1(1,1)=4;
aux2(1,1)=-1
for i=2:n-1
aux1(i,i)=4;
aux1(i-1,i)=-1;
aux1(i,i-1)=-1
aux2(i,i)=-1;
end
A=[aux1,aux2,zeros((n-1),(m-3)*(n-1))];
for i=2:m-2
a=[zeros(n-1,(n-1)*(i-2)),aux2,aux1,aux2,zeros((n-1),(n-1)*(n-1-i))];
A=[A;a];
end...
tracking img