Funciones de trazado witz Tikz: ¿de dónde viene este agujero?

Funciones de trazado witz Tikz: ¿de dónde viene este agujero?

Estoy tratando de trazar una hipérbola pero por alguna razón crea un agujero en la trama y no puedo entender qué lo causa:

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=(1/sqrt(2)):2,smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)});
\draw[blue!50!black] plot[domain=-2:(-1/sqrt(2)),smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)});

\draw[blue!50!black] plot[domain=(1/sqrt(2)):2,smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});
\draw[blue!50!black] plot[domain=-2:(-1/sqrt(2)),smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

La respuesta a la pregunta de por qué existe una brecha es

porque LaTeX no es un sistema de álgebra informática.

Entonces tenemos que ayudar a Ti.kZ para hacer lo correcto. En cualquier caso, si queremos una curva suave y continua, es posible que deseemos dibujar cada componente de un solo trazo. Esto se puede lograr eligiendo una parametrización diferente, como por ejemplo

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=-2:2,smooth,thick,samples=101]
 ({(1/sqrt(2))+abs(\x)},{sign(\x)*sqrt(2*\x*\x+2*sqrt(2)*abs(\x))});
\draw[blue!50!black] plot[domain=-2:2,smooth,thick,samples=101]
 ({-(1/sqrt(2))-abs(\x)},{sign(\x)*sqrt(2*\x*\x+2*sqrt(2)*abs(\x))});
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Una reparametrización quizás incluso más simple es

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=-4:4,smooth,thick,samples=101]
 ({sqrt(1/2+\x*\x/2)},\x);
\draw[blue!50!black] plot[domain=-4:4,smooth,thick,samples=101]
 ({-sqrt(1/2+\x*\x/2)},\x);
\end{tikzpicture}
\end{document}

Respuesta2

Algo como esto podría usarse

\documentclass{standalone} % or whatever
\usepackage{tikz,pgfplots}
\begin{document}

\begin{tikzpicture}

  \begin{axis}[
    xmin=-2,
    xmax=2,
    samples=101,
    unbounded coords=jump,
    axis lines=middle,
    ]
    \begin{scope}[
      domain=-2:-1/sqrt(2),
      ]
      \addplot[smooth] {sqrt(2*(\x*\x)-1)};
      \addplot[smooth] {-sqrt(2*(\x*\x)-1)};
    \end{scope}
    \begin{scope}[
      domain=1/sqrt(2):2,
      ]
      \addplot[smooth] {sqrt(2*(\x*\x)-1)};
      \addplot[smooth] {-sqrt(2*(\x*\x)-1)};
    \end{scope}
  \end{axis}
\end{tikzpicture}
\end{document}

Tenga en cuenta que en realidad podemos simplemente hacer

\addplot [domain=-2:2] {sqrt(2*(\x*\x)-1)};

para la parte superior. Lo hará automáticamente. Pero luego tenemos el agujero. Supongo que hay una opción en alguna parte, donde podemos decirle que trace -2:2y evalúe adicionalmente en+- 1/sqrt(2)

Respuesta3

La solución más sencilla es simplemente trazar una línea de conexión sobre el espacio.

\documentclass{standalone}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=2:(1/sqrt(2)),smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)}) --
  plot[domain=(1/sqrt(2)):2,smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});

\draw[blue!50!black] plot[domain=-2:(-1/sqrt(2)),smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)}) --
  plot[domain=(-1/sqrt(2)):-2,smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});
\end{tikzpicture}
\end{document}

manifestación

información relacionada