0

先日、次の式を簡略化したいと思いました。

a Conjugate[a]//FullSimplify

すごい!受け取る答えは Abs[a]^2 です。今、私はこのようなことを試しました:

a b Conjugate[a]//FullSimplify (*a Conjugate[a] b will return the same output*)

残念ながら単純化されていませんでした。LeafCount は、Abs[a]^2 b より単純化されていない式を優先します。ComplexityFunction はこれを修正できるはずです: ComplexityFunction

上記のリンクに示されている関数を使用しました。

f[e_] := StringLength[ToString[InputForm[e]]]
FullSimplify[a Conjugate[a] b, ComplexityFunction -> f]

そして、私はまだ不要なフォームを取得しています。

これに対する回避策はありますか?

4

1 に答える 1

1

私はここStackExchangeでの私の質問からこれを学びました。あなたはこのようにそれを行うことができます:

f[expr_]:=expr/.x_*Conjugate[x_]:>Abs[x]^2
Simplify[a Conjugate[a] b,TransformationFunctions->{Automatic,f},ComplexityFunction->(StringLength[ToString[InputForm[#]]]&)]

それは与えるでしょうb Abs[a]^2

于 2013-02-21T00:15:53.570 に答える