如何使用 pgfplots 绘制隐式方程?

如何使用 pgfplots 绘制隐式方程?

我需要一些绘图方面的帮助。我想y^2=x^2(x+1)pgfplots-10 到 10 的范围内打印它。我试了一段时间,但没有成功。而且它应该是一条平滑的曲线,而不是虚线。

答案1

另一种方法:你可以参数化。我记得我曾经对这条曲线进行过参数化TeXwelt网站

y=(xt)^(3/2)为了简化取平方,我设置了。因此,我得到

xt^3 = x+1(或 x=0)

因此

x = 1 / (t^3-1) 且 y = (t/(t^3-1))^(3/2)

现在我可以绘制它,让 t 运行(这里我将 t 命名为 x):

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
      axis x line=middle,
      axis y line=middle,
      axis equal,
      xlabel = {$x$},
      ylabel = {$y$},
      restrict y to domain = -4:4,
      restrict x to domain = -1:1.6,
    ]
    \addplot [domain = -4:4, samples = 300]
      ({1/(x^3 - 1)}, { (x/(x^3 - 1))^1.5});
    \addplot [domain = -4:4, samples = 300]
      ({1/(x^3 - 1)}, {-(x/(x^3 - 1))^1.5}); 
  \end{axis}
\end{tikzpicture}
\end{document}

隐含情节

我的原文是德文:为什么不能有一个不明确的函数图

答案2

您可以绘制两个图,一个表示 y 的正值部分,另一个表示负值部分。这是一个可编译的示例。我选择了 -1.5 到 1.5 的范围以获得更好的视图,当然您可以更改它。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
      axis equal,
      axis x line = middle,
      axis y line = middle,
      xlabel      = {$x$},
      ylabel      = {$y$},
    ]
    \addplot [domain = -1.5:1.5,samples=300, unbounded coords=jump]
      {sqrt(x^2*(x+1))};
    \addplot [domain = -1.5:1.5,samples=300, unbounded coords=jump]
      {-sqrt(x^2*(x+1))};
  \end{axis}
\end{tikzpicture}
\end{document}

阴谋

答案3

与渐近线进行比较

在此处输入图片描述

// Run on http://asymptote.ualberta.ca/
unitsize(1cm);
import contour;
import graph;
real f(real x, real y) { return y^2-x^3-x^2; }
pair A=(-2.5,-2.5), B=(2.5,2.5);
limits(A,B);
guide[][] g = contour(f,A,B, new real[] {0});
draw(g[0],blue+1pt);

real[] x={-2,-1,1,2};
real[] y={-2,-1,1,2};
xaxis(Label("$x$",EndPoint,align=.5N),Ticks(x,1mm,red));
yaxis(Label("$y$",EndPoint,align=.5E),Ticks(y,1mm,red));

shipout(bbox(5mm,invisible));

相关内容