声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1455|回复: 14

[编程技巧] 求助姜启源<数学建模案例选集>中的一个程序

[复制链接]
发表于 2008-8-14 09:32 | 显示全部楼层 |阅读模式

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

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

x
程序原文:
global wij;
fid=fopen('data.txt','w');
T=0.1;t0=0;tn=0;
dx=0.01;dy=0.01;dt=0.001;c=2000;
nx=60;ny=60;
u=zeros(nx,ny);un=zeros(nx,ny);
vn=zeros(nx,ny);v=zeros(nx,ny);
u(nx/2,ny/2)=1e-4;
u(nx/2-1,ny/2)=1e-4/2;u(nx/2+1,ny/2)=1e-4/2;
u(nx/2,ny/2-1)=1e-4/2;u(nx/2,ny/2+1)=1e-4/2;
u(nx/2-1,ny/2-1)=1e-4/2;u(nx/2-1,ny/2+1)=1e-4/2;
u(nx/2+1,ny/2-1)=1e-4/2;u(nx/2+1,ny/2+1)=1e-4/2;
%
while(tn<=T)
    t0=tn;tn=tn+dt;ts=[t0,tn];
      for i=2:(nx-1)
          for j=2:(ny-1)
              wij=c*c*(u(i+1,j)-2*u(i,j)+u(i-1,j))/(dx*dx)+c*c*(u(i,j+1)-2*u(i,j)+u(i,j-1))/(dy*dy);
              w0=[u(i,j),v(i,j)];
              [t,w]=ode23('wave',ts,w0);n1=length(t);
              un(i,j)=w(n1,1);vn(i,j)=w(n1,2);
          end
      end
      u=un;v=vn;
%
       for i=1:nx
           for j=1:ny
               fprintf(fid,'%.3e\n',u(i,j));
           end
       end
%
end
surfl(un)
shading interp
colormap(gray);
fclose(fid);
=====================================================================================
我的结果是 jieguo.fig (68.53 KB, 下载次数: 10)
显然不对,请问是哪里出问题了?
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-8-14 09:35 | 显示全部楼层
谢谢messenger 对上个贴子的协助
发表于 2008-8-14 12:41 | 显示全部楼层
贴个图片吧,fig图打开什么也看不到呀
 楼主| 发表于 2008-8-14 14:48 | 显示全部楼层
贴图我的不会啊
发表于 2008-8-14 15:15 | 显示全部楼层

回复 地板 大白菜 的帖子

把图片保存为jpg格式
 楼主| 发表于 2008-8-14 15:15 | 显示全部楼层
贴图如下,请看看

[ 本帖最后由 大白菜 于 2008-8-14 15:20 编辑 ]
 楼主| 发表于 2008-8-14 15:17 | 显示全部楼层
好的,谢谢斑竹: 波形图.JPG
 楼主| 发表于 2008-8-14 15:18 | 显示全部楼层
这个结果差太远了,我怀疑是un的值不对,但是无法验证
发表于 2008-8-14 15:22 | 显示全部楼层

回复 7楼 大白菜 的帖子

你这个图片上什么也没有,和fig上看到的情况一样,但点fig上好象能点到东西,就好象图像被画成了白色一样,但是我改图像颜色也没显示出东西来,是不是你画图有问题呀
 楼主| 发表于 2008-8-14 16:13 | 显示全部楼层
原帖由 messenger 于 2008-8-14 15:22 发表
你这个图片上什么也没有,和fig上看到的情况一样,但点fig上好象能点到东西,就好象图像被画成了白色一样,但是我改图像颜色也没显示出东西来,是不是你画图有问题呀

==================================================================
我没有觉得啊?你能提示一下么?
发表于 2008-8-14 17:24 | 显示全部楼层

回复 7楼 大白菜 的帖子

图上除了坐标,没有实质内容
发表于 2008-8-14 21:05 | 显示全部楼层

回复 10楼 大白菜 的帖子

就是点击一下图的中央,可以看到有几个轮廓点,就象点到其它的三维图一样

也可能像版主说的,什么也没有,你还是自己检查一下吧。
 楼主| 发表于 2008-8-15 21:52 | 显示全部楼层

回复 12楼 messenger 的帖子

谢谢,问题是我那是二维图像,怎么会画出三维图啊?
发表于 2008-8-15 22:49 | 显示全部楼层
本来就是三维图像,有三个坐标轴呀

不过,看起来像二维的图像,原书上的图像也是这样,看起来像二维的,反正如果你严格按原书来做肯定没错。
 楼主| 发表于 2008-8-16 11:25 | 显示全部楼层

回复 14楼 messenger 的帖子

谢谢你,我再查查抄写的时候有没有错,我发现运行后un的值大多为NaN,这又是怎么回事?怎么都是不定值???
====================================================================
原文和我的程序有两个差别,一个就是c我赋值了,第二就是:
wij=c*c*(u(i+1,j)-2*u(i,j)+u(i-1,j))/(dx*dx)+c*c*(u(i,j+1)-2*u(i,j)+u(i,j-1))/(dy*dy);
原文为:
wij=c*c*(u(i+1,j)-2*u(i,j)+u(i-1,j))/(dx*dx)+...c*c*(u(i,j+1)-2*u(i,j)+u(i,j-1))/(dy*dy);

=======================================================================这是怎么回事?难道是我设置的数据类型与运算结果有冲突?
请各位高手为我指点迷津 ,谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 01:55 , Processed in 0.087350 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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