Как построить график малых значений функции в pgfplots?

Как построить график малых значений функции в pgfplots?

Я пытаюсь визуализировать две функции в pgfplots и не могу донести свою основную мысль, что обе заканчиваются в одной точке. Как мне изменить это поведение, желательно без дополнительных внешних инструментов?

Вот мой небольшой пример:

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

Со следующим выводом:

введите описание изображения здесь

В идеале обе функции должны заканчиваться точно в (1,0), но даже с большим количеством образцов или явным указанием значения x 1.0 я не могу приблизиться. Я пробовал использовать gnuplot в качестве альтернативы, но столкнулся с проблемой, упомянутой вУлучшите точность pfgplots с помощью gnuplot, что pgfplots не отбрасывает неограниченные координаты из gnuplot.

Для показателя степени, равного ровно 1/2, функция sqrt дает лучшие результаты, но работает только в этом особом случае.

Есть идеи?

решение1

sqrtВместо возведения нуля в степень 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}

введите описание изображения здесь

Связанный контент