简化复杂的表达式

时间:2013-02-03 21:19:02

标签: wolfram-mathematica

前几天我想简化以下表达式:

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]

我仍然得到了不受欢迎的表格。

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

我刚从StackExchange的问题here学到了这一点。你可以这样做:

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

相关问题