输入:
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}]
但无济于事。任何帮助表示赞赏!
输入:
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}]
但无济于事。任何帮助表示赞赏!
我认为你可以这样做:
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]
。
我认为一般来说很难做到这一点。在您的具体示例中,可以使用诸如
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