如何使用 pgfplots 在 $xy$ 平面上绘制双纽线

如何使用 pgfplots 在 $xy$ 平面上绘制双纽线

问题:我想在 $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));

相关内容