问题:我想在 $xy$ 平面上绘制由方程 $\left(x^2+y^2\right)^2=x^2-y^2$ 定义的曲线。我想使用 pgfplots。
我的尝试:我尝试过\addplot {(x^2+y^2)^2=x^2-y^2}
,但是出现了关于在该上下文中使用 $y$ 或使用 $=x$ 的几个错误。
问题:有没有绘制隐式方程的变通方法?我应该将其切换到极坐标吗?如果是这样,我可以在 $xy$ 平面上绘制极坐标方程吗?
編輯:我的解决方案是使用\addplot [data cs=polar,domain=0:180,samples=361] (\x,{sqrt(cos(2*x))})
。我在手册第 4.23 节“变换坐标系”中找到了这个想法。我还添加了一个负平方根图来绘制曲线的下半部分。
答案1
据我所知,为了绘制隐式图,我们可以尝试使用 TikZ/GNUplot/pgfplots(参见这,例如)。使用 Asymptote 就很简单了。
// Run on http://asymptote.ualberta.ca/
size(5cm); // size of figure
import graph; // module for xaxis, y axis, etc
import contour; // module for contour
// define implicit function of the Lemnisace
real f(real x, real y) {return (x^2 + y^2)^2 -(x^2-y^2);}
// the contour for f(x,y)=0
guide[][] pf = contour(f,(-1,-1),(1,1),new real[] {0});
// draw the first branch (here is the only branch)
draw(pf[0],blue+1pt);
xaxis("$x$",-1.2,1.4,Arrow(TeXHead));
yaxis("$y$",-.5,.6,Arrow(TeXHead));