다음 애니메이션은 동작을 직관적으로 보여줍니다. \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축에 대칭이므로 0 1/0으로 나누기가 허용되지 않지만 y축에서 점까지의 거리가 같지 않은 이유입니다. 홀수(예: 13)의 플롯포인트를 선택하면 대칭 x 값이 생성되지만 세트에는 x=0도 포함됩니다. 그러나 1/0은 자체 나누기 연산자로 포착할 수 있으며 plotpoints=6*n+1
n=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}