How to write 2D heat conduction exact solution for Inf n?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi, I'm Currently going to perform numberical analysis with a Exact solution of the 2-D heat conduction equation.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1402789/image.png)
That, H is y-grid length, L is x-grid Length, T1 is bottom Temperature. I try to write code like this.
However, the figure in the code is wrong and the figure I want is as follows.![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1402794/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1402794/image.jpeg)
how can i derive that equations? Thank you for your reply.
clc;
clear;
close all;
%% grid input
xnum = 51;
ynum = 101;
%% Given Data
xmax = 1; % L
ymax = 2; % H
T1 = 100; % bottom Temperature
T2 = 0;
T3 = 0;
T4 = 0;
%% Data
dx = xmax/(xnum-1);
dy = ymax/(ynum-1);
beta = dx/dy;
alpha = -2*(1+beta^2);
k = 1;
%% Boundary Condition
T = zeros(xnum,ynum,k); % Initial Condition Temperature = 0
for i = 1:1:xnum
T(i,1,1) = T1;
T(i,ynum,1) = T3;
end
for j = 2:1:ynum-1
T(1,j,1) = T2;
T(xnum,j,1) = T4;
end
% Calcultae T = T_1 * [2*sum( f(sinh) )]
for j = 2 : 1: ynum-1
for i = 1 : 1 : xnum
for n = 1 : 1 : 100
T(i,j) = T(i,j) + 2*T1*(1 -(-1)^n)/(n*pi) * sinh(n*pi*(ymax-j*dy)/1) / sinh(n*pi*ymax/1) * sinh(n*pi*i*dx);
end
end
end
figure(1)
contourf(T(:,:,1));
% contourf(T(:,:,1),'ShowText','on');
hold on;
view(90,270);
grid on
hold on
axis('equal')
xticks([1 0.25*(ynum-1)+1 0.5*(ynum-1)+1 0.75*(ynum-1)+1 ynum])
xticklabels({'0','0.5','1','1.5','2'})
yticks([1 0.5*(xnum-1)+1 xnum])
yticklabels({'0','0.5','1'})
xlabel('y [ ft ]')
ylabel('x [ ft ]')
colormap jet
colorbar
1 Kommentar
Akzeptierte Antwort
Alan Stevens
am 5 Jun. 2023
Your term sinh(n*pi*x/L) should be sin(n*pi*x/L). See the following code (which can be made more efficient!):
L = 1; H = 2;
nx = 51; ny = 101;
dx = L/(nx-1); dy = H/(ny-1);
x = 0:dx:L; y = 0:dy:H;
T1 = 100;
m = 31;
T = zeros(numel(y), numel(x));
for j = 1:numel(y)
for k = 1:numel(x)
for n = 1:m
u = (1 - (-1)^n)/(n*pi);
sinhterms = sinh(n*pi*(H-y(j))/L)/sinh(n*pi*H/L);
sinterm = sin(n*pi*x(k)/L);
T(j,k) = u*sinhterms*sinterm + T(j,k);
end
end
end
T = 2*T1*T;
figure
contourf(x,y,T,9)
axis equal
colormap jet
colorbar
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!