関数の漸近線の左側に関数をプロットするときに、 \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}

ここに画像の説明を入力してください

関連情報