具有 pst-func 的黎曼阶跃函数

具有 pst-func 的黎曼阶跃函数

我从手册中得知pstricks-add,我可以像这样得到黎曼积分的上下和的可视化:

\documentclass{standalone}

\usepackage{auto-pst-pdf}
\usepackage{pst-func}

\psset{xunit=0.7cm,yunit=0.7cm}
\psset{algebraic,plotpoints=100}
\begin{document}
\def\f(x){-1*(-x-1)*(x-5)*x/30*(x-7)}

      \begin{pspicture}(0,-2.5)(7.7,4) \psStep[StepType=infimum,linewidth=1.5pt](0,7){15}{\f(x)}
        \psplot[linewidth=1.5pt]{0}{7.7}{\f(x)}
        \psaxes[Dy=2]{->}(0,0)(0,-2)(7.7,4.7)[$x$,0][$y$,90]
      \end{pspicture}
      \begin{pspicture}(0,-2.5)(7.7,4) \psStep[StepType=supremum,linewidth=1.5pt](0,7){15}{\f(x)}
        \psplot[linewidth=1.5pt]{0}{7.7}{\f(x)}
        \psaxes[Dy=2]{->}(0,0)(0,-2)(7.7,4.7)[$x$,0][$y$,90]
      \end{pspicture}

\end{document}

输出如下:

在此处输入图片描述

但是我怎样才能得到没有垂直线的图片呢?即我怎样才能自动得到近似阶跃函数的图呢?

该解决方案应该与上面的图片兼容,因为我还希望能够在第二张图片中添加不同颜色的垂直线。

答案1

需要最新pstricks-add.texhttp://texnik.dante.de/tex/generic/pstricks-add/

\documentclass{standalone}
\usepackage{pstricks-add}

\psset{xunit=0.7cm,yunit=0.7cm}
\psset{algebraic,plotpoints=100}
\begin{document}
\def\f(x){-1*(-x-1)*(x-5)*x/30*(x-7)}

\psset{noVerticalLines}%%%%%%%%%%%%%%

\begin{pspicture}(-1,-2.5)(8,5) 
   \psStep[StepType=infimum,linewidth=1.5pt,linecolor=red](0,7){15}{\f(x)}
   \psplot[linewidth=1.5pt]{0}{7.7}{\f(x)}
   \psaxes[Dy=2]{->}(0,0)(0,-2)(7.7,4.7)[$x$,0][$y$,90]
\end{pspicture}
\qquad
\begin{pspicture}(0,-2.5)(7.7,4) 
   \psStep[StepType=supremum,linewidth=1.5pt,linecolor=red](0,7){15}{\f(x)}
   \psplot[linewidth=1.5pt]{0}{7.7}{\f(x)}
   \psaxes[Dy=2]{->}(0,0)(0,-2)(7.7,4.7)[$x$,0][$y$,90]
\end{pspicture}

\end{document}

在此处输入图片描述

答案2

只是一个更干净的代码。

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

\psset{algebraic}
\def\f(#1){(#1+1)*(#1-5)*#1/35*(#1-7)}

\def\Left#1{%
\begin{pspicture}(-3,-1)(6,4)
    \psplot{-2}{5}{\f(x)}   
    \psset{linecolor=red,showpoints}
    \curvepnodes[plotpoints=#1]{-1.8}{4.8}{t|\f(t)}{A}
    \multido{\il=0+1,\ir=1+1}{\Anodecount}{\psline(A\il)(A\ir|A\il)}
    \rput[t](1.5,4){Left}
\end{pspicture}}

\def\Right#1{%
\begin{pspicture}(-3,-1)(6,4)
    \psplot{-2}{5}{\f(x)}
    \psset{linecolor=green,showpoints}
    \curvepnodes[plotpoints=#1]{-1.8}{4.8}{t|\f(t)}{A}
    \multido{\il=0+1,\ir=1+1}{\Anodecount}{\psline(A\il|A\ir)(A\ir)}
    \rput[t](1.5,4){Right}
\end{pspicture}}

\def\Center#1{%
\begin{pspicture}(-3,-1)(6,4)
    \psplot{-2}{5}{\f(x)}
    \psset{linecolor=blue,showpoints}
    \curvepnodes[plotpoints=#1]{-1.8}{4.8}{t|\f(t)}{A}
    %\multido{\il=0+1,\ir=1+1}{\Anodecount}{\psxline(A\il){.5(A\il)-.5(A\ir|A\il)}{.5(A\ir|A\il)-.5(A\il)}}
    \multido{\il=0+1,\ir=1+1}{\Anodecount}{\rput(A\il){\psline(!dt 2 div neg 0)(!dt 2 div 0)}}
    \rput[t](1.5,4){Center}
\end{pspicture}}

\begin{document}
    \foreach \macro in {Left,Right,Center}{\multido{\i=2+1}{5}{\csname\macro\endcsname{\i}}}
\end{document}

在此处输入图片描述

笔记

下列

\psxline(A\il){.5(A\il)-.5(A\ir|A\il)}{.5(A\ir|A\il)-.5(A\il)}

可以简化为

\rput(A\il){\psline(!dt 2 div neg 0)(!dt 2 div 0)}

我们有一个显然dt提供的可访问的\curvepnodes,请参阅Christoph 的评论

相关内容