在多重导数中执行替换的问题

Qia*_* Li 5 wolfram-mathematica

我在Mathematica中遇到了一个基本问题,这让我困惑了一段时间.我想采用m'衍生物x*Exp[t*x],然后评估它x=0.但以下不正确.请分享你的想法.

D[x*Exp[t*x], {x, m}] /. x -> 0
Run Code Online (Sandbox Code Playgroud)

这也是错误的意思

General::ivar: 0 is not a valid variable.
Run Code Online (Sandbox Code Playgroud)

编辑:我之前的例子(D[Exp[t*x], {x, m}] /. x -> 0)是微不足道的.所以我变得更难了.:)我的问题是:如何强制它先做衍生评估,然后做替代.

Sim*_*mon 4

正如其他人所指出的,(通常)Mathematica 不知道如何求任意次数的导数,即使您指定该数字是正整数。这意味着该D[expr,{x,m}]命令保持未计算状态,然后当您设置 时x->0,它现在尝试对常量求导数,这会产生错误消息。

一般来说,您想要的是函数在零处求值的 m 阶导数。这可以写成

Derivative[m][Function[x,x Exp[t x]]][0]
Run Code Online (Sandbox Code Playgroud)

或者

Derivative[m][# Exp[t #]&][0]
Run Code Online (Sandbox Code Playgroud)

然后你就可以得到系数表

In[2]:= Table[%, {m, 1, 10}]
Out[2]= {1, 2 t, 3 t^2, 4 t^3, 5 t^4, 6 t^5, 7 t^6, 8 t^7, 9 t^8, 10 t^9}
Run Code Online (Sandbox Code Playgroud)

但再多思考一下,您实际上只想要该系列中的第 m 个术语,SeriesCoefficient您想要的也是如此:

In[3]:= SeriesCoefficient[x*Exp[t*x], {x, 0, m}]
Out[3]= Piecewise[{{t^(-1 + m)/(-1 + m)!, m >= 1}}, 0]
Run Code Online (Sandbox Code Playgroud)

最终的输出是 m 阶导数的一般形式。这PieceWise并不是真正必要的,因为该表达式实际上适用于所有非负整数。