如何使 Derive 使用除 x 之外的参数工作,以及如何以后缀表示法调用 Derive?

如何使 Derive 使用除 x 之外的参数工作,以及如何以后缀表示法调用 Derive?

在我的调查中Derive只能求出函数f(x)关于的导数x。下面的尝试没有产生预期的结果,因为我试图求出x(t)y(t)关于的导数t

\documentclass{article}
\usepackage{pst-plot,pst-node}

\def\x{sin(t)}
\def\y{cos(t)}

\def\xx{Derive(1,\x)}
\def\yy{Derive(1,\y)}

\begin{document}

\begin{pspicture}[algebraic](-.2,-2.2)(\dimexpr\psPiFour cm+.2cm,2.2)
    \psparametricplot{0}{TwoPi 2 mul}{\xx|\yy}
\end{pspicture}

\end{document}
  • 这里有谁能帮我Derive任何变量吗,比如我的项目此处(点击)可以轻松完成,而无需手动计算给定函数的导数?

  • 我们如何Derive以后缀形式调用?如果可能的话,第一个问题可以通过ED以下方式解决,

    <postfix expression in x>  1 Derive t /x ED
    

答案1

x用于导数的变量是硬编码的,请参阅/EvalDerive文件中的定义pst-algparser.pro。因此,您必须重新定义一些内部 Postscript 函数。

我发现侵入性较小的重新定义是改变/EvalVariable,这是实际访问的唯一程序(x)

\documentclass[pstricks,margin=5pt]{standalone}
\usepackage{pst-plot,pst-node}
\def\ChangeEvalVariable#1{%
  \pstVerb{tx@Derive begin
    /origEvalVariable /EvalVariable load def
    /EvalVariable { 2 index (#1) eq { (1) } { (0) } ifelse 4 -1 roll exch 6 2 roll } def
  end }%
}%
\def\ResetEvalVariable{%
  \pstVerb{tx@Derive begin
    /EvalVariable /origEvalVariable load def
    end }%
}%
\def\x{sin(t)}
\def\y{cos(t)}

\def\xx{Derive(1,\x)}
\def\yy{Derive(1,\y)}

\begin{document}

\begin{pspicture}[algebraic](-1.2,-1.2)(3.2,1.2)
    \ChangeEvalVariable{t}
    \psparametricplot{0}{Pi}{\xx|\yy}
    \ResetEvalVariable
    \psplot{0}{Pi}{Derive(1,sin(x))}
\end{pspicture}

\end{document}

在此处输入图片描述

您不能将Derive其用于 Postscript 表达式,因为Derive实际上是通过解析函数的字符串表示来分析计算导数。

相关内容