Wie stellt man kleine Funktionswerte in pgfplots dar?

Wie stellt man kleine Funktionswerte in pgfplots dar?

Ich versuche, zwei Funktionen in pgfplots zu visualisieren und kann meine Hauptbotschaft nicht rüberbringen, dass beide am selben Punkt enden. Wie kann ich dieses Verhalten ändern, vorzugsweise ohne zusätzliche externe Tools?

Hier ist mein kleines Beispiel:

\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}

Mit folgender Ausgabe:

Bildbeschreibung hier eingeben

Idealerweise würden beide Funktionen genau bei (1,0) enden, aber selbst mit einer hohen Anzahl von Samples oder der expliziten Angabe des x-Werts von 1,0 komme ich nicht näher heran. Ich habe versucht, alternativ gnuplot zu verwenden, bin aber auf das inVerbessern Sie die Genauigkeit von pfgplots mit gnuplot, dass pgfplots unbegrenzte Koordinaten von gnuplot nicht verwirft.

Bei einem Exponenten von genau 1/2 liefert die sqrt-Funktion bessere Ergebnisse, funktioniert aber nur in diesem Sonderfall.

Irgendwelche Ideen?

Antwort1

Sie können sqrtdie Funktion verwenden, anstatt Null mit 0,5 zu potenzieren.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen