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

これを一般的に行うのは非常に難しいと思います。あなたの特定の例では、次のようなルールを使用できます

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]] *)

平方根を扱うのはより難しく、1 つのルールでは不十分だと思います。基本的な理由は次のとおりです。

Sqrt[x^2 + y^2] // FullForm
1/Sqrt[x^2 + y^2] // FullForm    
于 2012-06-21T16:37:04.420 に答える
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 に答える