在Python中查找隐式函数的根

时间:2010-06-28 21:54:47

标签: python numpy root implicit

我有一个隐含的功能,例如:

f(x,y) = x**y + y**y - 3*x

我想在meshgrid上解决root。所以f(x,y)= 0

绘制解决方案很简单:

x = linspace(-2,2,11)
y = linspace(-2,2,11)
(X,Y) = meshgrid(x,y)

A = X**Y + Y**Y - 3*X
contour(X,Y,A,0)

这很有效,我有一张我需要的曲线图,但是我希望得到图中的数据,而不仅仅是视觉图。那么如何找到情节数据?

1 个答案:

答案 0 :(得分:3)

您可以使用:

获取“[matplotlib]图中的数据”
cs = contour(X,Y,A,0)
data = cs.collections[0].get_paths()[1]

有多种算法可以直接计算轮廓,但我不知道任何numpy / scipy版本。 Marching squares是我一直在这里的,尽管该算法已获得专利并且对其使用有严格的限制,所以我怀疑matplotlib使用它。 Here's一个关于matplotlib如何计算轮廓的聊天链接。