24小时热门版块排行榜    

查看: 3739  |  回复: 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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

cjltxxz

新虫 (初入文坛)

lz,想请教一下您是如何修正的?
9楼2014-09-23 08:47:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dailycrane

新虫 (初入文坛)

想请教一下是如何修正的?
10楼2014-09-24 23:36:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

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的回帖

yongcailiu

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
paipai314: 金币+5, ★★★很有帮助 2013-09-22 22:28:02
引用回帖:
4楼: Originally posted by paipai314 at 2013-09-21 20:32:37
如果是方程不满足收敛性,可以修正么?该如何修正?...

如果你求解的是二维的热传导方程的话,用中心差分格式可能确实不行。原因是一维的热传导方程,中心差分格式(Richardson格式)恒不稳定。参见高教出版社李荣华等编著的《微分方程数值解法(第四版)》第三章的内容,里面提到了一维情形下的分数步长法,理论结果挺好的,希望对你有帮助。另外,你的程序写的没问题,我当时没有理解好你要求解的方程,看程序中的代码你使用的好像不是中心差分格式,倒像是向前差分格式,而采用向前差分格式是条件稳定的,也就是时间步长tao,前面的系数a(对应你程序里面的f)和空间步长h应该满足一定条件,即r=a*tao/(h*h)<=0.5(一维情况下的结果)。
5楼2013-09-22 22:01:55
已阅   回复此楼   关注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的回帖

paipai314

金虫 (初入文坛)

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

额,第1次发帖,这个金币是要怎么给你的==
7楼2013-09-22 22:25:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

paipai314

金虫 (初入文坛)

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

金币已给
8楼2013-09-22 22:28:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 paipai314 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +15 爱看书的可乐 2026-08-26 17/850 2026-08-27 17:25 by xxniao123
[基金申请] 国自然面上复盘~欢迎讨论 (金币+5) +10 晴天加油 2026-08-26 11/550 2026-08-27 16:35 by msuhlx
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 面上合作单位盖章 +3 ssyjh 2026-08-27 3/150 2026-08-27 09:59 by 阿拉贡aragon
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[教师之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 04:33 by Ie9AyIAvGbvs
[基金申请] 系统查不到 +10 董八千 2026-08-26 10/500 2026-08-26 16:30 by Equinoxhua
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +4 yuleib84 2026-08-26 5/250 2026-08-26 13:40 by yuleib84
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 我面上完蛋了 +13 且听虎啸 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
信息提示
请填处理意见