找回密码
 立即注册
首页 业界区 业界 美丽的函数图像之隐函数

美丽的函数图像之隐函数

沦嘻亟 昨天 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.png

2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

10.png

11.png

12.png

13.png

14.png

15.png

16.png

17.png

18.png

19.png

20.png

21.png

22.png

23.png

24.png

25.png

26.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册