如何用 tikz 绘制椭圆曲线,例如 Y^2 = X^3 - X?

如何用 tikz 绘制椭圆曲线,例如 Y^2 = X^3 - X?

我需要使用 tikz 包绘制椭圆曲线 Y^2 = X^3 - X(如下所示)。由于 tikz 不支持隐式曲线,我尝试创建一个 pfgplot,在其中添加一个用于正平方根的图和一个用于负平方根的图,但我仍然遇到问题。

在此处输入图片描述

这是我迄今为止的代码:

\documentclass[10pt]{article}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            axis x line=center,
            axis y line=center,
            xtick={-1,1},
            xmin=-2,
            xmax=2,
            ymin=-2,
            ymax=2,
            ]
            \addplot[mark=none,samples=200,domain=-2:2] {sqrt(x^3-x)};
            \addplot[mark=none,samples=200,domain=-2:2] {-sqrt(x^3-x)};
        \end{axis}
    \end{tikzpicture}
\end{document}

输出结果如下:

在此处输入图片描述

如您所见,曲线在 x 轴附近不连接,并且 0 和 1 之间也有奇怪的线。有没有办法解决这些问题,或者有没有更好的方法来绘制椭圆?

答案1

您可以对曲线进行重新参数化,或者更简单地将样本设置为奇数。在这种情况下,将样本设置为奇数将在临界点 和 处对曲线进行采样x=-1x=0唯一x=1剩下的就是确保两侧没有通过线连接 - 这可以通过在两个图上分割域或使用如下过滤器来实现:

\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=center,
xtick={-1,1},
xmin=-2, xmax=2,
ymin=-2, ymax=2,
]
\addplot[red, domain=-2:2, samples=201, y filter/.expression={x>0&&x<1?nan:y}, unbounded coords=jump, smooth] {sqrt(x^3-x)};
\addplot[red, domain=-2:2, samples=201, y filter/.expression={x>0&&x<1?nan:y}, unbounded coords=jump, smooth] {-sqrt(x^3-x)};
\end{axis}
\end{tikzpicture}
\end{document}

具有圆形曲线和抛物线形曲线的图形

相关内容