5

用于绘制 2 个变量的隐式方程的常用方法或算法是什么?

我说的是方程式,例如,

罪(x*y)*y = 20

x*x - y*y = 1

等等。

有谁知道 Maple 或 Matlab 是如何做到这一点的?我的目标语言是 C#。

非常感谢!

4

4 回答 4

10

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

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

于 2009-07-15T14:42:30.053 回答
6

x在要绘制的范围内迭代 的值。对于 x 的每个固定值,使用诸如区间二分法Newton-Raphson 方法(您可以使用隐式微分计算导数,或者可能进行数值微分)等方法对方程进行数值求解。y这将为您提供给定的相应值x。在大多数情况下,您不需要太多的迭代来获得非常精确的结果,而且无论如何它都非常有效。

请注意,您需要将方程转换为 形式f(x) = 0,尽管这总是微不足道的。这种方法的好处是它可以反过来工作(即采用固定范围y并计算x每个值)。

于 2009-07-15T14:42:46.280 回答
1

有多种方法。我能找到的最简单的算法在此处进行了描述: https : //homepages.warwick.ac.uk/staff/David.Tall/pdfs/dot1986b-implicit-fns.pdf 并描述了 Noldorin 对您的描述。

最复杂的一种,似乎是可以实际解决很多特殊情况的一种,描述如下: https ://academic.oup.com/comjnl/article/33/5/402/480353

于 2018-03-12T15:09:28.040 回答
-2

我认为,

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

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

然后从 x0,y0 到 x1,y1 画线

然后从 x1,y1 到 x2,y2 画线

...

...

于 2009-07-15T14:46:15.837 回答