首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在模函数上使用f隐含的伪线

在模函数上使用f隐含的伪线
EN

Stack Overflow用户
提问于 2018-12-18 06:35:33
回答 1查看 57关注 0票数 2

我想绘制重复圆弧的集合,但在绘制时遇到了伪线问题。例如,我想要的其中一个图由

代码语言:javascript
复制
a = @(x,y) ((mod(x,1) + 0.5).^2 + (mod(y,1) - 0.5).^2 - 1)
fimplicit(a,[-1,1],'MeshDensity',500)

但据我所知,输出是不正确的:

隐式函数在垂直线上肯定不是零。我假设f隐式算法和模算术发生了一些有趣的事情。有什么办法可以解决这个问题吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-18 07:31:33

这很可能是因为你的函数是不连续的,在x=k这条线上有k个整数,如曲面图所示:

代码语言:javascript
复制
fsurf(a, [-2 2])

要验证中断是可能的原因,请考虑更简单的示例

代码语言:javascript
复制
f = @(x,y) (2*(x>=0)-1).*(2*(y>=0)-1);

这个函数在x= 0和y=0处是不连续的。它在x= 0和y= 0时从1跳到−1,但从不等于0。

代码语言:javascript
复制
fsurf(f, [-2 2])

可以看出,fimplicit被不连续弄糊涂了,并认为函数在那里是0的:

代码语言:javascript
复制
fimplicit(f,[-2,2],'MeshDensity',500)

查看fimplicit源代码,可以看到实际工作(至少在R2017b上)是由倒数第二行中的matlab.graphics.function.ImplicitFunctionLine类完成的。该类是一个.p文件,因此是混淆的,这意味着不幸的是它的源代码是不可见的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53823969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档