x RadToDeg cos x div 和 COSC 之间有什么区别?

x RadToDeg cos x div 和 COSC 之间有什么区别?
\documentclass[border=10pt,pstricks]{standalone}
\usepackage{amsmath,pst-func}
\begin{document}
\pstVerb{
    /SINC { dup 0 eq { pop 1 } { dup SIN exch div } ifelse } bind def %% in pst-math.pro
    /COSC { dup 0 eq { pop 1 } { dup COS exch div } ifelse } bind def %% based on \SINC
}
\psset{xunit=.5,yunit=2}
\begin{pspicture}(-15,-2)(15,2)
\psplot[plotpoints=500]{-15}{15}{x RadToDeg cos x div}
\uput[0](1,1){$y=\dfrac{cos(x)}{x}$}
\end{pspicture}

\begin{pspicture}(-15,-2)(15,2)
\psplot[plotpoints=500]{-15}{15}{x COSC}
\uput[0](1,1){$y=\dfrac{cos(x)}{x}$}
\end{pspicture}
\end{document}

在此处输入图片描述

问题:

有什么区别x RadToDeg cos x div瑞士官方天文台股利div

答案1

COSC状态的定义dup COS exch div。查看 PostScript 堆栈命令参考 (http://www.ugrad.math.ubc.ca/Flat/stack-ref.html) 这意味着:

  1. 将堆栈顶部对象的副本添加到堆栈中

  2. COS

  3. 交换堆栈顶部两个元素的位置

  4. 划分

pst-math`COS函数中定义为弧度的余弦。从手动的在第 4 页:

pst-math 引入了自然三角 PostScript 运算符 COS、SIN 和 TAN,由以下函数定义

余弦:ℝ → [−1,1],x → cos(x)

因此x COSC变成:

x dup COS exch div

x x COS exch div

x COS x div

x radian_cos x div

IE,x RadToDeg cos x div

答案2

3 4 div有效,但3 0 div会抛出错误。使用 3 0 DIV有效,但只会返回。这就是和3之间的区别divDIV

答案3

为了了解幕后发生了什么DIV以及COSC做了什么,最好只使用pst-plot下面的方法重新创建它们。

\documentclass[border=10pt,pstricks]{standalone}
\usepackage{pst-plot}
\pstVerb{
    /DIV {dup 0 eq {pop 1}{} ifelse div} bind def
    /COSC {dup RadtoDeg cos exch DIV} bind def      
}
\psset{xunit=.5,yunit=2}
\begin{document}
\begin{pspicture}(-15,-5)(15,5)
\psplot[plotpoints=500]{-15}{15}{x COSC}
\end{pspicture}
\end{document} 

笔记:

  • DIV只是一个接受两个操作数的运算符x,如果不是 则y返回。否则,它返回。x/yy0x/1=x

    让我们一步一步地追踪非零值y

    x y DIV
    x y dup 0 eq {pop 1}{} ifelse div
    x y y 0 eq {pop 1}{} ifelse div
    

    y 0 eq返回 false 时,继续跳转到{}空的位置。

    x y div
    

    让我们一步一步地追踪一下y=0

    x 0 DIV
    x 0 dup 0 eq {pop 1}{} ifelse div
    x 0 0 0 eq {pop 1}{} ifelse div
    

    0 0 eq返回 true 时则继续跳转到{pop 1}

    x 0 pop 1 div
    

    pop删除顶部操作数,即0

    x 1 div
    x
    
  • COSC也只是一个接受一个操作数x(以弧度为单位)并返回cos(x)/x非零x并返回cos(x)的运算符x=0

    x  COSC
    x  dup RadtoDeg cos exch DIV    
    x  x RadtoDeg cos exch DIV
    x  x_deg cos exch DIV
    x  cos(x_deg) exch DIV
    cos(x_deg) x DIV
    

    最终结果cos(x_deg)/x非零xcos(x_deg)x=0

相关内容