如何绘制隐式方程

7
通常用什么方法或算法来绘制二元隐式方程?
我所说的是这样的方程,
sin(x * y) * y = 20
x * x - y * y = 1
等等。
有人知道Maple或Matlab如何实现吗?我的目标语言是C#。

如何绘制三元隐函数? - Trenton McKinney
4个回答

11

一种方法是在规则的二维网格上对函数进行采样。然后,您可以在生成的二维网格上运行类似于 marching squares 的算法来绘制等高线。

在相关问题中,有人还链接到了 gnuplot 源代码。它相当复杂,但值得一读。您可以在这里找到它: http://www.gnuplot.info/


2
感谢您提供正确的关键词进行搜索。这个搜索(http://www.google.com.sg/search?q=Marching+squares+contours)特别提供了一些有趣的链接。 - ARV
@ARV,那些有趣的链接中哪一个解决了你的问题?你能成功地创建C#代码吗? - MySchizoBuddy

7
在要绘制的范围内迭代变量 x 的值。对于每个固定的 x 值,使用数值方法(例如区间二分法牛顿-拉夫逊方法)进行方程求解(可以使用隐式微分计算导数,或者进行数值微分)。这将为给定的 x 值提供相应的 y 值。在大多数情况下,您不需要太多迭代即可获得非常精确的结果,而且它非常高效。
请注意,您需要将方程转换为形式 f(x) = 0,尽管这总是微不足道的。这种方法的好处是,它反过来也同样有效(即针对每个y值计算对应的x值)。

2

-2

我认为,

在Matlab中,您将数组作为x的输入。

然后,对于每个x,它都会计算y。

然后从x0,y0绘制线到x1,y1

然后从x1,y1绘制线到x2,y2

...

...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接