声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1207|回复: 4

[综合讨论] [求助]关于三维绘图问题

[复制链接]
发表于 2006-3-13 18:58 | 显示全部楼层 |阅读模式

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

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

x
  大家好,画三维图时遇到一个问题:<br>figure<br>x=3*pi*(-1:0.2:1);<br>y=x;<br>[X,Y]=meshgrid(x,y);<br>R=sqrt(X.^2+Y.^2);<br>Z=sin(R)./R;<br>meshz(X,Y,Z)<br>xlabel('x');<br>ylabel('y')<br>画出的图形:(图形粘不过来,)<br>matlab给出警告,说Divide by zero,<br><br>将程序改了后即加个eps,<br>figure<br>x=3*pi*(-1:0.2:1);<br>y=x;<br>[X,Y]=meshgrid(x,y);<br>R=sqrt(X.^2+Y.^2)+eps;<br>Z=sin(R)./R;<br>meshz(X,Y,Z)<br>xlabel('x');<br>ylabel('y')<br><br>但是,画出的图形跟上面的不一样了,为什么会这样呢?<br>遇到复杂的表达式,画图时怎样较好的避免分母为0的问题呢?<br><br><br><br><br><br>
[此贴子已经被aspen于2006-3-14 8:42:43编辑过]

回复
分享到:

使用道具 举报

发表于 2006-3-14 08:47 | 显示全部楼层

回复:(roll66)[求助]关于三维绘图问题

出现被零除不是画图的问题,是计算的问题,因为你计算的R中存在0<BR><BR>第二个图是正确的
发表于 2006-3-14 09:42 | 显示全部楼层

回复:(roll66)[求助]关于三维绘图问题

<DIV class=quote><B>以下是引用<I>roll66</I>在2006-3-13 18:58:39的发言:</B><BR>  大家好,画三维图时遇到一个问题:<BR>figure<BR>x=3*pi*(-1:0.2:1);<BR>y=x;<BR>[X,Y]=meshgrid(x,y);<BR>R=sqrt(X.^2+Y.^2);<BR>Z=sin(R)./R;<BR>meshz(X,Y,Z)<BR>xlabel('x');<BR>ylabel('y')<BR>画出的图形:(图形粘不过来,)<BR>matlab给出警告,说Divide by zero,<BR><BR>将程序改了后即加个eps,<BR>figure<BR>x=3*pi*(-1:0.2:1);<BR>y=x;<BR>[X,Y]=meshgrid(x,y);<BR>R=sqrt(X.^2+Y.^2)+eps;<BR>Z=sin(R)./R;<BR>meshz(X,Y,Z)<BR>xlabel('x');<BR>ylabel('y')<BR><BR>但是,画出的图形跟上面的不一样了,为什么会这样呢?<BR>遇到复杂的表达式,画图时怎样较好的避免分母为0的问题呢?<BR><BR><BR><BR><BR><BR><BR></DIV>
<P>实际上两个图不一样是第一个有一个被零除的点没画,而由于你把网格画的比较稀疏,<BR>所以影响就比较大,<BR>x=3*pi*(-1:0.2:1);你把这里的0.2改成0.02结果就一样了<BR>y=x;<BR>[X,Y]=meshgrid(x,y);<BR>R=sqrt(X.^2+Y.^2);<BR>Z=sin(R)./R;<BR>meshz(X,Y,Z)<BR>xlabel('x');<BR>ylabel('y')</P>

评分

1

查看全部评分

 楼主| 发表于 2006-3-14 23:15 | 显示全部楼层
<P>非常感谢,呵呵^_^ </P>
发表于 2007-11-24 12:18 | 显示全部楼层

回复 #1 roll66 的帖子

其实不是图形问题
2楼正解
加了eps只是相应了移位了eps,避免被0除的情况
当点取得够密时就可以看到图形很相像,3楼正解
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-10-2 18:20 , Processed in 0.064659 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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