為什麼 \psplot 在函數漸近線左側繪製函數時需要更高的繪圖點?

為什麼 \psplot 在函數漸近線左側繪製函數時需要更高的繪圖點?

下面的動畫直觀地展示了該行為。\psplot似乎以不對稱的方式工作。它可以使用預設值繪製右側部分plotpoints,但繪製左側部分時並非如此。我們需要增加 才能plotpoints得到左側完整的圖。

在此輸入影像描述

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}

\pstVerb{/myDiv {dup 0 eq {pop 0 lt {-1e30} {1e30} ifelse} {div} ifelse} def}

\def\f#1{1 #1 myDiv}
\def\g#1{\f{#1 neg}}


\psset{yMinValue=-4,yMaxValue=4}

\begin{document}
\multido{\i=7+12}{20}{%
\psset{plotpoints=\i}
\begin{pspicture}[showgrid=bottom](-2,-4)(2,4)
\psclip{\psframe[linestyle=none,dimen=middle](-2,-4)(2,4)}
    \psplot[linecolor=red]{-2}{2}{\f{x}}
    \psplot[linecolor=blue]{-2}{2}{\g{x}}
    \rput(0,0){\textcolor{red}{plotpoints: \i}}
\endpsclip
\end{pspicture}}
\end{document}

為什麼在函數漸近線左側繪製函數時\psplot需要更高?plotpoints這是一個錯誤嗎?

答案1

對於偶數個繪圖點,x 值為不是與 y 軸對稱,這就是為什麼您沒有達到不允許除以零 1/0 但點與 y 軸的距離不同的原因。選擇奇數個繪圖點(例如 13)會建立對稱的 x 值,但集合中的 x=0。但是,1/0 可以由自己的除法運算子捕獲,並且plotpoints=6*n+1n=1,2,... 將為此類函數提供對稱行為。

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}

\begin{document}
\pstVerb{ % control the division, y x is on the stack
  /myDiv { dup 0 eq { pop 0 lt { -1e30 }
                               {  1e30 } ifelse } 
       { div } ifelse } def
}

\psset{plotpoints=24,plotstyle=dots}
\begin{pspicture}[showgrid=bottom](-2,-5)(4,5)
    \psplot[linecolor=red]{-2}{4}{1 x myDiv}
    \psplot[linecolor=blue]{-2}{4}{-1 x myDiv}
\end{pspicture}

\psset{plotpoints=25,plotstyle=dots}
\begin{pspicture}[showgrid=bottom](-2,-5)(4,5)
    \psplot[linecolor=red]{-2}{4}{1 x myDiv}
    \psplot[linecolor=blue]{-2}{4}{-1 x myDiv}
\end{pspicture}

\psset{plotpoints=241,plotstyle=line,yMaxValue=5}
\begin{pspicture}[showgrid=bottom](-2,-5)(4,5)
    \psplot[linecolor=red]{-2}{4}{1 x myDiv}
    \psplot[linecolor=blue]{-2}{4}{-1 x myDiv}
\end{pspicture}

\end{document}

在此輸入影像描述

相關內容