\begingroup

简化我的问题,我有表达式 D[f[x], x],并且我想用 a[x]+b[x] 替换 f[x]。

通常的替换当然不起作用(我也明白为什么)

D[f[x ], x] /. {f[x] -> a[x]+b[x] } 和 D[f[x ], x] /. {f -> a+b}

如何以优雅的方式完成它们?

\endgroup

3

  • 2
    \begingroup
    这个问题类似于:。如果你认为它不同,请问题,说明它的不同之处和/或该问题的答案对你的问题没有帮助。
    \endgroup


    – 

  • \begingroup
    另请参阅:
    \endgroup


    – 

  • 1
    \begingroup
    更具体地说:func[x_] = a[x] + b[x]; D[f[x], x] /. f -> func
    \endgroup


    – 


最佳答案
1

\begingroup

代换完成之前,D[f[x ], x] 会被求值,结果为:f'[x]。代换:{f[x] -> a[x]+b[x] } 对 f'[x] 不会产生任何作用。

因此,你必须通过以下方式防止过早评估:保持

Hold[D[f[x], x]] /. {f[x] -> a[x] + b[x]} // ReleaseHold

\endgroup