导数的表示
Mathematica 的导数运算本质上与标准数学中的导数是一样的. 然而,通常的数学符号隐藏了许多细节. 要理解 Mathematica 中导数如何被表示,必须考察这些细节.
标准的数学符号
实际上是
的简写,其中
是"哑变量". 类似地,
是
的简写. 如符号
所示,对象
实际上可以看作"纯函数",在参数
的特定选择下,计算其值. 用户可以认为微分运算是作用于函数
,给出称为
的新函数.
对于多变量函数,简单的撇号表示法已不适用了. 例如不能区分
是代表
还是
,而几乎对任何
,二者有完全不同的值. 这里
又是一个哑变量,其唯一的目的是显示
关于哪个"位置"被微分.
在 Mathematica 中,如在某些数学分支中一样,把微分考虑为作用于函数,而不是表达式上是方便的. 我们需要取函数
,给出导函数
的运算. 这种作用于函数,而不是变量的运算在数学中称为算符.
Mathematica 中的对象
实际上是对函数
使用微分算符的结果.
的完全形式是 Derivative[1][f]. Derivative[1] 是 Mathematica 的微分算符.
算符 Derivative[n1, n2, ...] 的自变量指定关于函数的每个"位置"微分的次数. 通过使用代表微分的算符,Mathematica 可以避免引入任何"哑变量".
| In[1]:= |
Out[1]//FullForm= | |
| In[2]:= |
Out[2]//FullForm= | |
| In[3]:= |
Out[3]//FullForm= | |
| In[4]:= |
| Out[4]= |
| In[5]:= |
Out[5]//FullForm= | |
| In[6]:= |
Out[6]//FullForm= | |
| In[7]:= |
Out[7]//FullForm= | |
| In[8]:= |
Out[8]//FullForm= | |
| In[9]:= |
| Out[9]= |
| In[10]:= |
Out[10]//FullForm= | |
对象
的行为本质上与 Mathematica 的其它任何函数是相同的. 可以使用任何自变量计算该函数,并且能使用标准的 Mathematica
运算替换自变量.(如果在微分过程中引入明显的哑变量,则不可能做到这一点.)
| In[11]:= |
Out[11]//FullForm= | |
| In[12]:= |
| Out[12]= |
| In[13]:= |
| Out[13]= |
| In[14]:= |
| In[15]:= |
| Out[15]= |
| In[16]:= |
| Out[16]= |
| In[17]:= |
| Out[17]= |
函数
完全由函数
的形式决定. 然而
的定义并不立即用于表达式
. 问题是
有完全形式 Derivative[1][f][x],它根本不包含明显与
匹配的东西. 此外,很多情况下,有函数
本身的表示法是方便的,不必将它应用到任何自变量.
Mathematica 所作的事情是尽力寻求代表对像
的纯函数的显式形式. 当 Mathematica 得到如 Derivative[1][f] 这样的表达式时,有效地把它转化为显式形式 D[f[#], #]&,然后计算导数. 在显示形式下,Mathematica 能直接使用给对象
定义的值. 如果 Mathematica 成功地求出导数,它返回显式的纯函数结果. 如果求导不成功,它保留导数为原来的
形式.
| In[18]:= |
| Out[18]= |
| In[19]:= |
| Out[19]= |
