Algunos puntos de una curva no están trazados por tikz

Algunos puntos de una curva no están trazados por tikz

Estoy intentando trazar una curva elíptica.

De alguna manera la curva se interrumpe cerca del punto (-2.1,0). Es por eso que hay un pequeño espacio en este punto y las dos funciones no están conectadas, lo que no se ve tan bien.

¿Alguien ya se ha enfrentado a un problema similar o tiene una idea sobre cómo solucionarlo?

Este es mi código:

\begin{figure}[h]
\centering
\begin{tikzpicture}
        \begin{axis}[
            xmin=-3,
            xmax=4.5,
            ymin=-7,
            ymax=7,
            xlabel={$x$},
            ylabel={$y$},
            scale only axis,
            axis lines=middle,
            domain=-3:3.45,   
            samples=200,
            smooth,
            clip=false,
            axis equal image=true,
        ]
            \addplot [blue] {sqrt(x^3-3*x+3)};
            \addplot [blue] {-sqrt(x^3-3*x+3)};
        \end{axis}
\end{tikzpicture}
\end{figure}

Respuesta1

Aquí tienes una propuesta para dibujar la trama en un solo tramo. Las explicaciones están en el código, ya que agregar las fórmulas sin LaTeX es una molestia.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

\documentclass[fleqn]{article}
\usepackage{amsmath}
\DeclareMathOperator{\sign}{sign}
\usepackage{dsfont}
\usepackage[margin=2cm]{geometry}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,LaTeXNewbie/.style={xmin=-3,
            xmax=4.5,
            ymin=-7,
            ymax=7,
            xlabel={$x$},
            ylabel={$y$},
            scale only axis,
            axis lines=middle,
            samples=200,
            smooth,
            clip=false,
            axis equal image=true,}
}
\begin{document}
In order to plot the points $(x,y)\in\mathds{R}^2$ that satisfy
\begin{equation}
 y^2=x^3+a\,x+b\;,
\end{equation} 
let us first find the $x$ for which $y=0$. This is a cubic equation with the
solution
\begin{equation}\label{eq:x0}% https://tex.stackexchange.com/a/533003/194703
 x_0=\frac{\sqrt[3]{2} \left(\sqrt{12 a^3+81 b^2}-9
   b\right)^{2/3}-2 \sqrt[3]{3} a}{6^{2/3}
   \sqrt[3]{\sqrt{12 a^3+81 b^2}-9 b}}\;.
\end{equation}   
So one ``brute force'' solution is to use $x_\mathrm{min}$ to define the plot
interval (see Figure~\ref{fig:elliptic}). 
\begin{figure}[htb]
\centering
\begin{tikzpicture}[declare function={xnod(\a,\b)=0.001+%
 (-2*pow(3,1/3)*\a + pow(2,1/3)*%
 pow(abs(-9*\b + sqrt(12*pow(\a,3) + 81*pow(\b,2))),2/3))/%
 (pow(6,2/3)*sign(-9*\b + sqrt(12*pow(\a,3) +  81*pow(\b,2)))*%
 pow(abs(-9*\b + sqrt(12*pow(\a,3) +  81*pow(\b,2))),1/3));
 ysol(\x,\a,\b)=sqrt((\x*\x*\x+\a*\x+\b));}]
        \begin{axis}[LaTeXNewbie,
            domain={xnod(-3,3)}:3.45,   
        ]
            \addplot [blue] {sqrt(x^3-3*x+3)};
            \addplot [blue] {-sqrt(x^3-3*x+3)};
        \end{axis}
\end{tikzpicture}
\caption{``Brute force'' solution.}
\label{fig:ellipticbf}
\end{figure}
\clearpage
An arguably more elegant solution goes as follows. Define
\begin{align}
  x_\mathrm{tamed}(x)&=x_0+|x|\;,\\
  y_\mathrm{sol}(x)&=\sign(x)\,
    \sqrt{x_\mathrm{tamed}^3+a\,x_\mathrm{tamed}+b}\;.
\end{align}
with $x_0$ from \eqref{eq:x0}. Then we need only to do the parametric plot of
\begin{equation}
 \gamma(t)=\bigl(x_\mathrm{tamed}(t),y_\mathrm{sol}(t)\bigr)\;,
\end{equation} 
where now the plot domain determines how far the lower and upper branches,
respectively, extend right from $x_0$. That is, \texttt{domain=-5:5} in the plot
in Figure~\ref{fig:elliptic}) means both the upper and lower branch extend from
$x_0$ to $x_0+5$. In particular, we need only one \verb|\addplot| command.

\begin{figure}[htb]
\centering
\begin{tikzpicture}[declare function={xnod(\a,\b)=0.001+%
 (-2*pow(3,1/3)*\a + pow(2,1/3)*%
 pow(abs(-9*\b + sqrt(12*pow(\a,3) + 81*pow(\b,2))),2/3))/%
 (pow(6,2/3)*sign(-9*\b + sqrt(12*pow(\a,3) +  81*pow(\b,2)))*%
 pow(abs(-9*\b + sqrt(12*pow(\a,3) +  81*pow(\b,2))),1/3));
 ysol(\x,\a,\b)=sign(\x)*sqrt((pow(xtamed(\x,\a,\b),3)+\a*xtamed(\x,\a,\b)+\b));
 xtamed(\x,\a,\b)=xnod(\a,\b)+abs(\x);
 a=-3;b=3;}]
        \begin{axis}[LaTeXNewbie,
            domain=-5:5,%<-different meaning than usual, see text
        ]
            \addplot [blue] ({xtamed(x,a,b)},{ysol(x,a,b)});
        \end{axis}
\end{tikzpicture}
\caption{Arguably more elegant solution.}
\label{fig:elliptic}
\end{figure}
\end{document}

información relacionada