¿Por qué \psplot necesita puntos de trazado más altos al trazar una función a la izquierda de la asíntota de la función?

¿Por qué \psplot necesita puntos de trazado más altos al trazar una función a la izquierda de la asíntota de la función?

La siguiente animación muestra el comportamiento de forma intuitiva. \psplotparece funcionar de forma asimétrica. Puede trazar la parte derecha con el valor predeterminado plotpoints, pero no es el caso cuando traza la parte izquierda. Necesitamos aumentar el plotpointspara obtener el gráfico completo en la parte izquierda.

ingrese la descripción de la imagen aquí

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

¿Por qué se \psplotnecesita más plotpointsal trazar una función a la izquierda de la asíntota de la función? ¿Es un error?

Respuesta1

para un número par de puntos de trazado, los valores de x sonnosimétrico al eje y, razón por la cual no alcanzó la división no permitida por cero 1/0 pero no tiene la misma distancia de los puntos al eje y. Elegir un número impar de puntos de trazado, por ejemplo 13, crea valores x simétricos pero también tiene x=0 en el conjunto. Sin embargo, 1/0 puede ser capturado por un operador de división propio y plotpoints=6*n+1con n=1,2,... dará un comportamiento simétrico para este tipo de función.

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

ingrese la descripción de la imagen aquí

información relacionada