Как сделать подстановку функции в mathematica - PullRequest
9 голосов
/ 12 февраля 2011

У меня есть выражение 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}

Но ниработал.Буду признателен за вашу помощь!Благодаря.

Ответы [ 3 ]

14 голосов
/ 12 февраля 2011

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

НТН

6 голосов
/ 12 февраля 2011

Ничего нового, просто то, что я обычно думаю об этом:

D[f[x, y], x] /. f -> Function[{x, y}, x y]

Out

y
2 голосов
/ 12 февраля 2011

Вы также можете попробовать удерживать и отпустить или отложить и т. Д.

Hold@D[f[x, y], x] /. {f[x, y] -> x*y}

D[x y, x]    


Hold@D[f[x, y], x] /. {f[x, y] -> x*y} // Release

y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...