如何绘制隐式方程

ARV*_*ARV 5 plot equation graph

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

我在谈论方程式,如,

sin(x*y)*y = 20

x*x - y*y = 1

等等.

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

非常感谢!

Eri*_*ric 9

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

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

  • 感谢您提供正确的搜索关键字.此搜索(http://www.google.com.sg/search?q=Marching+squares+contours)特别提出了一些有趣的链接. (2认同)

Nol*_*rin 5

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

请注意,您需要将等式转换为形式f(x) = 0,尽管这总是微不足道的.关于这种方法的好处是,它的工作方式与其他方法相同(即采用固定范围y和计算x每个值).