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
НТН