Estoy tratando de visualizar dos funciones en pgfplots y no puedo transmitir mi mensaje principal de que ambas terminan en el mismo punto. ¿Cómo puedo cambiar este comportamiento, preferiblemente sin herramientas externas adicionales?
Aquí está mi pequeño ejemplo:
\documentclass[tikz]{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0.0,
xmax=2,
ymin=0,
ymax=1.75,
axis x line=bottom,
axis y line=left,
xlabel=control parameter $r$,
ylabel=energy $(J)$,
ytick={}, yticklabels={},
xtick={1},
xticklabels={1},
restrict x to domain=0:2,
]
\addplot+[smooth,no marks, samples at={1.0,0.999,0.99,0.96,...,0.001,0}] {1.12*(1-x)^0.5};
\addplot+[smooth, densely dashed, no marks,samples=1000]{1.75*(1-x)^0.5};
\end{axis}
\end{tikzpicture}
\end{document}
Con el siguiente resultado:
Lo ideal sería que ambas funciones terminaran exactamente en (1,0), pero incluso con una gran cantidad de muestras o dando explícitamente el valor x de 1,0 no puedo acercarme. Intenté usar gnuplot como alternativa pero encontré el problema mencionado enMejore la precisión de pfgplots con gnuplot, que pgfplots no descarta las coordenadas ilimitadas de gnuplot.
Para un exponente de exactamente 1/2, la función sqrt produce mejores resultados, pero sólo funciona en este caso especial.
¿Algunas ideas?
Respuesta1
Puedes usar sqrt
la función en lugar de elevar cero a la potencia de 0,5.
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0.0,
xmax=2,
ymin=0,
ymax=1.75,
axis x line=bottom,
axis y line=left,
xlabel=control parameter $r$,
ylabel=energy $(J)$,
ytick=\empty,
xtick={1},
xticklabels={1},
restrict x to domain=0:2,
]
\addplot+[smooth,no marks, samples at={1.0,0.999,0.99,0.96,...,0.001,0}] {1.12*sqrt(1-x)};
\addplot+[smooth, densely dashed, no marks,samples=1000]{1.75*sqrt(1-x)};
\end{axis}
\end{tikzpicture}
\end{document}