24小时热门版块排行榜    

查看: 3700  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

paipai314

金虫 (初入文坛)

[求助] 中心差分求解二维热传导的matlab程序

clear;close all;
L=100;S=120;M=20;N=24;timeMax=50000;
Currtime=100;DL=[0:L/M:L];DS=[0:S/N:S];
T=ones(M,N,timeMax)*30;
T(1:M,1,1:1:timeMax)=50;
T(1:M,N,1:1:timeMax)=50;
T(1,1:N,1:1:timeMax)=80;
T(M,1:N,1:1:timeMax)=100;
f=0.1;
for i=2:M-1
  for j=2:N-1
    T(i,j,2)=f*T(i-1,j,1)+f*T(i,j-1,1)+(1-4*f)*T(i,j,1)+f*T(i+1,j,1);
  end;
end;
for t=3:timeMax
for i=2:M-1
  for j=2:N-1
    T(i,j,t)=f*T(i-1,j,t-1)+f*T(i,j-1,t-1)-4*f*T(i,j,t-1)+f*T(i+1,j,t-1)+f*T(i,j+1,t-1)+T(i,j,t-2);
  end;
end;
end;
[x,y]=meshgrid(1:M,1:N);
mesh(T(1:M,1:N,Currtime));
title(['2D Temperature Field, t=',num2str(Currtime-1),'s']);
xlabel('x length(L/M)');
ylabel('y length(L/N)');
zlabel('Temperature(^oC)')
运行结果不正确,是方程不收敛么==  求大神指导,求思路
回复此楼

» 收录本帖的淘帖专辑推荐

好帖子

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

paipai314

金虫 (初入文坛)

引用回帖:
5楼: Originally posted by yongcailiu at 2013-09-22 22:01:55
如果你求解的是二维的热传导方程的话,用中心差分格式可能确实不行。原因是一维的热传导方程,中心差分格式(Richardson格式)恒不稳定。参见高教出版社李荣华等编著的《微分方程数值解法(第四版)》第三章的内容 ...

程序中先用了向前差分求t=2的时候的状态,之后就是用中心差分的了,那个方程确实是不稳定的,修正了一下就可以了。
非常感谢你的答复!
6楼2013-09-22 22:17:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

yongcailiu

金虫 (小有名气)

for i=2:M-1
  for j=2:N-1
    T(i,j,2)=f*T(i-1,j,1)+f*T(i,j-1,1)+(1-4*f)*T(i,j,1)+f*T(i+1,j,1);
  end;
end;
这里面用的公式不对吧?循环体执行的应该是
T(i,j,2)=f*T(i-1,j,1)+f*T(i,j-1,1)+f*T(i,j+1,1)-4*f*T(i,j,1)+f*T(i+1,j,1);

如果结果还不正确,可能对于你给定的方程,中心差分法不满足收敛性或者稳定性了
2楼2013-09-21 20:11:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

paipai314

金虫 (初入文坛)

引用回帖:
2楼: Originally posted by yongcailiu at 2013-09-21 20:11:05
for i=2:M-1
  for j=2:N-1
    T(i,j,2)=f*T(i-1,j,1)+f*T(i,j-1,1)+(1-4*f)*T(i,j,1)+f*T(i+1,j,1);
  end;
end;
这里面用的公式不对吧?循环体执行的应该是
T(i,j,2)=f*T(i-1,j,1)+f*T(i,j-1,1)+f*T(i,j+1 ...

也还是不对的,,,
我的思路是,中心差分的时间差有2,所以需要知道前2秒的状态才可以继续算后面的,所以第2秒的状态先用前向差分算。这个思路是不是正确的?有误的话烦请指教一下。或者有没有其他的思路?
3楼2013-09-21 20:25:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

paipai314

金虫 (初入文坛)

引用回帖:
2楼: Originally posted by yongcailiu at 2013-09-21 20:11:05
for i=2:M-1
  for j=2:N-1
    T(i,j,2)=f*T(i-1,j,1)+f*T(i,j-1,1)+(1-4*f)*T(i,j,1)+f*T(i+1,j,1);
  end;
end;
这里面用的公式不对吧?循环体执行的应该是
T(i,j,2)=f*T(i-1,j,1)+f*T(i,j-1,1)+f*T(i,j+1 ...

如果是方程不满足收敛性,可以修正么?该如何修正?
4楼2013-09-21 20:32:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +8 Ldrop2023 2026-08-13 8/400 2026-08-16 11:28 by jiege890620
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 25/1250 2026-08-16 10:53 by hmhminy
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +11 家与远方 2026-08-10 16/800 2026-08-16 10:28 by ray43
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 时间戳又变了8-15 +12 archvillain 2026-08-15 23/1150 2026-08-15 20:47 by foyo404
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[硕博家园] 请教兼职经验 +3 是阿文鸭 2026-08-09 3/150 2026-08-14 12:07 by HER12025
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
信息提示
请填处理意见