声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 826|回复: 5

[综合讨论] 大家帮我看看这个程序关于差分格式实现

[复制链接]
发表于 2007-12-14 12:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家帮我看看这个程序要怎么改才能实现这个差分格式,刚接触matlab,这个差分格式中的u1(i,j)和是第k层和第k+1层中间的过度变量,一直处理不好,大家帮帮忙啊!
差分格式
u(1:11,1:11,1)=0,r=0.01

(1+2r)u1(i,j)-ru1(i+1,j)-ru1(i-1,j)=(1-2r)u(i,j,k)+ru(i+1,j,k)+ru(i,j,k)

(1+2r)u(i,j,k+1)-ru(i,j,k+1)-r(i,j,k+1)=(1-2r)u1(i,j,)+ru1(i+1,j,)+ru1(i-1,j)


u(1:(m+1),1:(n+1),1)=0
r=0.01;
u1=u
for k=2:k
    for j=2:m
        for i=2:n
        u1(i,j)=(r*u1(i+1,j)+r*u1(i-1,j)+r*u(i,j+1,k-1)+(1-2*r)*u(i,j,k-1)+r*u(i,j-1,k-1))/(1+2*r);
        u2(i,j,k)=(r*u2(i,j+1,k)+r*u2(i,j-1,k)+r*u1(i+1,j)+r*u1(i-1,j)+(1-2*r)*u1(i,j))/(1+2*r);        
         end
    end
    u=u2;
end

[ 本帖最后由 sigma665 于 2007-12-14 12:28 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-12-14 14:34 | 显示全部楼层

回复 #1 jaykangta 的帖子

你的程序不完整!!!!
 楼主| 发表于 2007-12-14 14:44 | 显示全部楼层

那要怎么改啊

那要怎么改啊,边界条件只有一个,m,n,k前面已经附值了
发表于 2007-12-14 15:07 | 显示全部楼层

回复 #3 jaykangta 的帖子

把完整的程序发上来
如果不愿意的话,至少也要发个能让别人运行的...
 楼主| 发表于 2007-12-14 17:14 | 显示全部楼层
m=10;
n=10;
kk=10;
u(1:(n+1),1:(m+1),1)=0;
r=0.01;
u1=u;
for k=2:kk
    for j=2:m
        for i=2:n
            u1(i,j,k)=(r*u1(i+1,j,k-1)+r*u1(i-1,j,k-1)+r*u(i,j+1,k-1)+(1-2*r)*u(i,j,k-1)+r*u(i,j-1,k-1))/(1+2*r);
            u2=u1;
            u2(i,j,k)=(r*u2(i,j+1,k)+r*u2(i,j-1,k)+r*u1(i+1,j,k-1)+r*u1(i-1,j,k-1)+(1-2*r)*u1(i,j,k-1))/(1+2*r);        
        end
    end
    u=u2;
end
这个程序运行得到的u值是方程的解吗?
发表于 2007-12-15 11:38 | 显示全部楼层

回复 #5 jaykangta 的帖子

是不是解,你应该比较清楚吧。程序是你自己写的,思路对结果就应该是对的。另外建议看看矢量化编程的帖子,不要用太多的循环、、、
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 19:17 , Processed in 0.061728 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表