将ParametricPlot参数表达式转换为ContourPlot笛卡尔表达式

时间:2015-04-11 14:29:30

标签: wolfram-mathematica

使用ParametricPlot我可以绘制以参数坐标表示的lemniscate:

  ParametricPlot[1/(1 + Sin[t]^2) {Cos[t], Cos[t] Sin[t]}, {t, 0, 2 [Pi]}]

我想找到使用Mathematica等效的笛卡尔表达式并使用我知道的ContourPlot绘制它:

ContourPlot[(x^2 + y^2)^2 == (x^2 \[Minus] y^2), {x, -1, 1}, {y,-1,1}]

在MMA函数中查找我想知道CoordinateTransformDataTransformedField是否可以帮助我,但是没有一个具有适当的坐标转换:"Parametric" -> "Cartesian"让我感到困惑。

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

这取决于您想要多少自动解决方案。

eq = Thread[{x, y} == 1/(1 + Sin[t]^2) {Cos[t], Cos[t] Sin[t]}];
cont = Eliminate[eq, t] // Simplify
y != 0 && x^4 + y^2 + 2 x^2 y^2 + y^4 == x^2
ContourPlot[Evaluate@Last@cont, {x, -1, 1}, {y, -1, 1}]

enter image description here