지수를 그래프로 표시하지 않는 Tikz 그림

지수를 그래프로 표시하지 않는 Tikz 그림

동일한 그래프에 두 개의 함수를 그래프로 표시하려고 합니다: y=1g(x) = (e^(1/x))^3 - 1.

그러나 표본 크기가 10보다 큰 함수 g를 그래프로 표시하면 그래프가 완전히 엉망이 됩니다. 나는 이것이 올바른 방정식이고 올바르게 그래프를 작성해야 한다는 것을 확인했지만 어떤 이유에서인지 그렇지 않습니다. 아래 내 코드는 다음과 같습니다

    \begin{tikzpicture}
    \begin{axis}[
       axis lines = left,
       xlabel = $x$,
       ylabel = {$f(x)$},
       ]
   \addplot [
       domain=0:10, 
       samples=100, 
       color=red,
       ]
   {exp(3/x) - 1};
   \addlegendentry{$(e^{(1/\alpha)})^3-1$}
   \addplot [
       domain=0:10, 
       samples=100, 
       color=black,
       ]
       {1};
   \end{axis}
   \end{tikzpicture}

답변1

플롯이 제대로 표시되지 않는 이유는 PGFplots가 최대(무한) 값을 계산하고 이를 사용하여 경계를 설정하기 때문입니다.와이중심선. 결과적으로 단계 크기가 ~10보다 작은 경우 0에 매우 가까운 점을 탐색하기 시작하여 매우 빠르게 무한대로 분기됩니다.

ymax및 를 사용하여 축의 경계를 설정할 수 있습니다.ymin .엑스중심선); 그러나 PGFplots는 TeX의 제한된 수치 기능을 사용하기 위해 몇 가지 영리한 트릭을 수행하므로 오버플로가 발생하므로 오류가 발생합니다.

귀하의 경우 가장 좋은 옵션은 restrict y to domain핵심입니다. 이 옵션은 경계를 초과하는 값을 삭제하여 오버플로를 완전히 방지하도록 PGFplot에 지시합니다.

\documentclass[tikz,convert]{standalone}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
      axis lines=left,
      xlabel=$x$,
      ylabel={$f(x)$},
      restrict y to domain=0:100,
    ]
    \addplot [
        domain=0:10, 
        samples=100, 
        color=red,
      ]
      {exp(3/x) - 1};
    \addlegendentry{$(e^{(1/\alpha)})^3-1$}
    \addplot [
        domain=0:10, 
        samples=100, 
        color=black,
      ]
      {1};
  \end{axis}
\end{tikzpicture}
\end{document}

산출

관련 정보