Die folgende Animation zeigt das Verhalten intuitiv. \psplot
scheint asymmetrisch zu funktionieren. Der rechte Teil kann mit dem Standardwert dargestellt werden plotpoints
, aber das ist beim linken Teil nicht der Fall. Wir müssen den Wert erhöhen, plotpoints
um den vollständigen Graphen auf der linken Seite zu erhalten.
\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}
Warum ist \psplot
der Bedarf höher plotpoints
, wenn man eine Funktion links von der Asymptote der Funktion zeichnet? Ist das ein Fehler?
Antwort1
für eine gerade Anzahl von Plotpunkten sind die x-Wertenichtsymmetrisch zur y-Achse, der Grund, warum Sie die nicht erlaubte Division durch Null 1/0 nicht erreicht haben, aber nicht den gleichen Abstand der Punkte von der y-Achse haben. Wenn Sie eine ungerade Anzahl von Plotpunkten wählen, z. B. 13, werden symmetrische x-Werte erstellt, aber auch x=0 im Set enthalten. 1/0 kann jedoch durch einen eigenen Divisionsoperator abgefangen werden und plotpoints=6*n+1
mit n=1,2,... ergibt sich ein symmetrisches Verhalten für diese Art von Funktion.
\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}