我有表达式D[f[x, y], x]
,我想用f[x,y]
代替x*y
,我尝试了以下操作:D[f[x, y], x] /. {f[x,y] -> x*y}
和D[f[x, y], x] /. {f -> x*y}
但是两者都没有。感谢您的帮助!谢谢。
最佳答案
表达式中的导数的FullForm
为
In[145]:= D[f[x,y],x]//FullForm
Out[145]//FullForm= Derivative[1,0][f][x,y]
这应该可以解释为什么第一个规则失败了-表达式中不再有
f[x,y]
了。第二条规则失败,因为Derivative
在将其替换为表达式时将f
视为函数。您可以做的是:In[146]:= D[f[x,y],x]/.f->(#1*#2&)
Out[146]= y
请注意,纯函数周围的括号是必不可少的,以避免与优先级相关的错误。
或者,您可以通过模式定义r.h.s:
In[148]:=
fn[x_,y_]:=x*y;
D[f[x,y],x]/.f->fn
Out[149]= y
高温超导
关于wolfram-mathematica - 如何在Mathematica中进行函数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4975136/