0

输入:

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}]

但无济于事。任何帮助表示赞赏!

4

2 回答 2

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]

于 2013-02-21T00:37:26.583 回答
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    
于 2012-06-21T16:37:04.420 回答