如何绘制隐式方程

时间:2009-07-15 14:38:48

标签: graph plot equation

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

我说的是等式,

sin(x * y)* y = 20

x * x - y * y = 1

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

非常感谢!

4 个答案:

答案 0 :(得分:9)

执行此操作的一种方法是在常规2D网格上对函数进行采样。然后,您可以运行一个算法,例如在生成的2D网格上行进方块以绘制等值线。

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

答案 1 :(得分:5)

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

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

答案 2 :(得分: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

答案 3 :(得分:-3)

我想,

在matlab中

你给数组作为x的输入。

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

然后

从x0,y0到x1,y1

绘制线 然后

从x1,y1到x2,y2

绘制线

...

...