如何在mathematica中进行函数替换

发布于 2024-10-17 05:03:32 字数 236 浏览 2 评论 0原文

我有表达式 D[f[x, y], x],我想用 x*y 替换 f[x,y] code>,我尝试了以下操作:

D[f[x, y], x] /。 {f[x,y]-> x*y}D[f[x, y], x] /。 {f->; x*y}

但两者都不起作用。将不胜感激您的帮助!谢谢。

I have the expression D[f[x, y], x], and I want to substitute f[x,y] with x*y, I tried the following:

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

But neither worked. Would appreciate your help! Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

自由如风 2024-10-24 05:03:32

表达式中导数的 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

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

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

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

Out[149]= y

HTH

The FullForm of the derivative in your expression is

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

Out[145]//FullForm= Derivative[1,0][f][x,y]

This should explain why the first rule failed - there is no f[x,y] in your expression any more. The second rule failed because Derivative considers f to be a function, while you substitute it by an expression. What you can do is:

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

Out[146]= y

Note that the parentheses around a pure function are essential, to avoid precedence - related bugs.

Alternatively, you could define your r.h.s through patterns:

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

Out[149]= y

HTH

离旧人 2024-10-24 05:03:32

没什么新鲜的,只是我通常的想法:

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

Out

y

Nothing new, just the way I usually think of it:

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

Out

y
歌入人心 2024-10-24 05:03:32

您还可以尝试“保留并释放”或“推迟”等。

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

You can also try Hold and Release or Defer etc.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文