沦嘻亟 发表于 昨天 21:04

美丽的函数图像之隐函数

ps:只是想展示一下美丽的函数图像,为了这碟醋包了顿饺子……
简介

隐函数的通常形式为F(x,y)=G(x,y)或F(x,y)=0
遍历法

对于每个像素点都计算其函数值,如等于0或绝对值小于一个阈值,则判断函数经过该像素。如要提高精度则需要减小步长,效果不佳。
Marching Squares

该算法通常用于等高线绘制,而隐函数就是F(x,y)=z在z=0处的截面。该算法判断一个单位方块四个角的z值正负,如同时出现正负,则说明该方块中必然有函数图像穿过,但如全正全负则无法判断,需进一步计算。该算法特点是绘制效率高,但可能会绘制出不属于函数图像的点,在图像有交叉处会出现缺少图像的问题。是激进的。
广义区间算术

该算法专注于隐函数绘制,与传统区间算术不同,塔伯广义区间算数引入了区间集合(Set),和Def(定义域是否完整),和Cont(是否连续),相比传统区间算数精准度有大量提升,可以解决不连续的函数图像。以下的展示即使用该算法绘制。但该算法面对x-x与x/x问题时效果不佳,会出现大量误差,往往需要其他算法如Marching Squares修正。Sympy库的plot_implicit函数即使用该算法。是保守的。
仿射算术

该算法是区间算术的进阶,特点是将区间x转化为x+x0*e0+x1*e1....xn*en(en为噪声,xn为参数,x为基准值) 一定程度解决了x-x的问题(噪声可以相减抵消,准确地等于0)但对于乘法误差仍然较大,不支持除法,不支持数学函数。
有基于矩阵的仿射算术,和张量的仿射算数。
示例

以下均使用CsGrafeq绘制
项目地址



























来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 美丽的函数图像之隐函数