2D热传输方程使用matlab

 

%2D Heat Transfer using Matlab
%https://www.youtube.com/watch?v=x47QZxVF1gY

n = 4;
w = 3;
h = 3;

x = linespace(0,w,n);
y = linespace(0,h,n);
% create an array from 1 to 10 with 5 values 
%values = linspace(1, 10, 5) 
%ans =    1.0000    3.2500    5.5000    7.7500   10.0000 

T = zeros(n);% Temprature
T(1,1:n) = 100;   %Top
T(n,1:n) = 300;   %Bottom
T(1:n,1) = 500;   % Left
T(1:n,n) = 200;   %Right

tolerance = 1e-6;
error = 1;
k = 0;%?Iteration times

while error > tolerance
      k = k+1;
	  Told = T;
	     for i = 2:n-1
		     for j = 2:n-1 
			     T(i,j) = .25 * (T(i,j-1) + T(i,j+1) + T(i+1,j) + T(i-1,j));
		     end
	     end
	error = max(max(abs(Told - T)));
end

subplot(3,1,1),contour(x,y,T),colormap
title('Temprature (steady State)'),xlabel('x'),ylabel('y'),colorbar
subplot(3,1,3),pcolor(x,y,T),shading interp
title('Temprature (steady State)'),xlabel('x'),ylabel('y'),colorbar
subplot(3,1,3)
surf(T')
    xlabel('x')
	ylabel('y')
	zlabel('T')
	,colorbar

然后把n改成40可以得到更加平滑的结果 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值