衍生函数D和Dt似乎没有像宣传的那样起作用。 在http://reference.wolfram.com/mathematica/ref/Constants.html的“属性和关系”部分中的第一个示例之后,我有:
In[1]:= {Dt[ax^2 + b, x, Constants -> {a, b}], D[ax^2 + b, x]}
Out[1]= {2 ax Dt[ax, x, Constants -> {a, b}], 0}
我复制了输入,但输出完全不同。如何获得预期的输出{ 2 a x, 2 a x}
?
我正在使用Rutgers大学安装的64位Mathematica 8.0.1.0。
答案 0 :(得分:8)
您需要a
和x
之间的空格,否则它会认为您在谈论名为ax
的变量:
In[2]:= {Dt[a x^2 + b, x, Constants -> {a, b}], D[a x^2 + b, x]}
Out[2]= {2 a x, 2 a x}
答案 1 :(得分:3)
(我意识到这并没有真正回答OP的问题。但考虑到问题的严重程度,以及OP希望使用Contants
选项,以下信息可能对其他人有用。未来。)
Dt
上我的2美分。 IMO,使用Constants
选项并不理想 - 主要是因为它会产生混乱的输出。例如:
In[1]:= Dt[x^a y^b, Constants -> {a, b}]
Out[1]= a x^(-1 + a) y^b Dt[x, Constants -> {a, b}] +
b x^a y^(-1 + b) Dt[y, Constants -> {a, b}]
我是唯一一个发现上述行为烦人/多余的人吗?这个设计是否有实际原因?如果有,请教育我...... :)
如果您不想使用Constants
选项,可以选择以下方法。
In[2]:= Remove[a, b];
a /: Dt[a] = 0;
b /: Dt[b] = 0;
Dt[x^a y^b]
Out[5]= a x^(-1 + a) y^b Dt[x] + b x^a y^(-1 + b) Dt[y]
Constant
Attribute
。In[6]:= Remove[a, b];
SetAttributes[{a, b}, Constant];
Dt[x^a y^b]
Out[8]= a x^(-1 + a) y^b Dt[x] + b x^a y^(-1 + b) Dt[y]
In[9]:= Remove[a, b];
Dt[x^a y^b] /. Dt[a] -> 0 /. Dt[b] -> 0
Out[10]= a x^(-1 + a) y^b Dt[x] + b x^a y^(-1 + b) Dt[y]