clc; %清除命令显示窗口所有输入和输出
clear;
eps=1e-3; %设定迭代允许的误差,你没分清阿拉伯数字1和英文字母l……
m=50; %设定水平方向节点数目^^我电脑比较慢,勉强用50来看看效果,用200估计调试一下得一分钟……
n=50; %设定数值方向节点数目
k=1000; %设定迭代次数,个人建议,迭代次数纯属多余,因为已经有允许误差了,此行可杀
a=0.2; %板的总长度
t1=100; %上表面温度
t2=20; %左侧面温度
tf=20; %右侧面流体温度
h=1; %表面传热系数
langmda=20; %材料导热系数
dertax=a/(m-1);
dertay=a/(n-1);
t0=zeros(n,m); %定义一个数组 ,在迭代过程中作为间接参量
t0(n,:)=ones(1,m)*t1; %上侧面边界条件(恒温),你这两个是不是搞反了??
t0(:,1)=ones(n,1)*t2; %左侧面边界条件(恒温)
t0(1:n-1,2:m)=ones(n-1,m-1)*(t1+t2)/2;
t=zeros(n,m); %定义温度数组,用来存结果
limt=1;%初始化
while limt>eps %迭代计算,直到误差在允许范围内……边界条件被你搞复杂了
for i=1:n
for j=1:m
if i==n|j==1
t(i,j)=t0(i,j);%在上边界和左边界的温度保持100和20不变
else if i==1 %下边界边界条件
t(1,j)=t0(2,j);
else if j==m %右侧边界边界条件
t(i,m)=(langmda*t0(i,m-1)+h*tf)/(h+langmda);
else %其他处,用有限差分迭代,以满足拉普拉斯方程
t(i,j)=(t0(i,j-1)+t0(i,j+1)+t0(i-1,j)+t0(i+1,j))/4;
end
end
end
end
end
limt=max(max(abs(t-t0)));%取最大误差
t0=t;%将为迭代准备
end
[X,Y] = meshgrid(1:1:n,1:1:m);%取网格宽度为1*1
[C,h] = contour(X,Y,t,0:1:t1);
title('温度分布图');%%%%%给出图的标题
xlabel('x'); % x轴含义
ylabel('y'); % y轴含义
%set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2);
colormap cool;
figure;%画个立体图
mesh(t);
稳态_二维稳态热传导求解_二维热传导_
版权申诉
5星 · 超过95%的资源 36 浏览量
2021-09-28
22:22:32
上传
评论 2
收藏 1KB ZIP 举报
Dyingalive
- 粉丝: 88
- 资源: 4809
最新资源
- 探索tecreate:软件开发的未来之星.zip
- 打标机项目C#源码连接扫码
- 基于SSM的房屋租赁系统的设计与实现
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈