如何在mathematica中替换函数

Qia*_* Li 9 wolfram-mathematica

我有表达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}

但都没有奏效.非常感谢您的帮助!谢谢.

Leo*_*rin 14

FullForm在表达所述衍生物是

In[145]:= D[f[x,y],x]//FullForm

Out[145]//FullForm= Derivative[1,0][f][x,y]
Run Code Online (Sandbox Code Playgroud)

这应该可以解释为什么第一条规则失败了 - f[x,y]你的表达式中就没有了.第二个规则失败,因为它Derivative被认为f是一个函数,而你用表达式替换它.你能做的是:

In[146]:= D[f[x,y],x]/.f->(#1*#2&)

Out[146]= y
Run Code Online (Sandbox Code Playgroud)

请注意,纯函数周围的括号是必不可少的,以避免与优先级相关的错误.

或者,您可以通过模式定义rhs:

In[148]:= 
fn[x_,y_]:=x*y;
D[f[x,y],x]/.f->fn

Out[149]= y
Run Code Online (Sandbox Code Playgroud)

HTH


Dr.*_*ius 6

没有什么新东西,就像我通常想到的那样:

D[f[x, y], x] /. f -> Function[{x, y}, x y]
Run Code Online (Sandbox Code Playgroud)

退房

y
Run Code Online (Sandbox Code Playgroud)