输入:
f[x_] := Sqrt[x^2 + y^2]
f'[x]
输出:
x / Sqrt[x^2 + y^2]
如何让Mathematica用f[x]
本身替换分母?(注意:这是一个更复杂的区分问题的简单例子,其中函数本身很复杂但是在衍生物中出现了很多。)
也就是说,所需的输出是:
x / f[x]
我试过
Simplify[f'[x], TransformationFunctions -> {f}]
但无济于事。任何帮助表示赞赏!
答案 0 :(得分:1)
我认为一般来说这很难做到;在您的具体示例中,可以使用诸如
之类的规则rules = {z_^2 + y^2 -> Hold[f[z]^2]};
然后
f'[x] /. rules
(* x/Sqrt[Hold[f[x]^2]] *)
f''[x] /. rules
(* -(x^2/Hold[f[x]^2]^(3/2)) + 1/Sqrt[Hold[f[x]^2]] *)
使用平方根比较困难,我认为一条规则是不够的,基本原因是:
Sqrt[x^2 + y^2] // FullForm
1/Sqrt[x^2 + y^2] // FullForm
答案 1 :(得分:1)
我认为你可以这样做:
Clear[f,g]
g[expr_]:=expr/.(x_^2+y_^2):> (f[x])^2
Simplify[D[Sqrt[x^2+y^2],x],TransformationFunctions->{Automatic,g},Assumptions->f[x]>0]
结果会给x/f[x]
。