Wolfram mathematica 复杂表达式的简化
前几天,我想简化以下表达式:Wolfram mathematica 复杂表达式的简化,wolfram-mathematica,Wolfram Mathematica,前几天,我想简化以下表达式: a Conjugate[a]//FullSimplify 太好了!我们得到的答案是Abs[a]^2。 现在我试着这样做: a b Conjugate[a]//FullSimplify (*a Conjugate[a] b will return the same output*) f[expr_]:=expr/.x_*Conjugate[x_]:>Abs[x]^2 Simplify[a Conjugate[a] b,TransformationFuncti
a Conjugate[a]//FullSimplify
太好了!我们得到的答案是Abs[a]^2。
现在我试着这样做:
a b Conjugate[a]//FullSimplify (*a Conjugate[a] b will return the same output*)
f[expr_]:=expr/.x_*Conjugate[x_]:>Abs[x]^2
Simplify[a Conjugate[a] b,TransformationFunctions->{Automatic,f},ComplexityFunction->(StringLength[ToString[InputForm[#]]]&)]
不幸的是,它没有被简化。与Abs[a]^2 b相比,LeafCount更喜欢未简化的表达式。ComplexityFunction应该能够解决以下问题:
我使用了上面链接中的函数:
f[e_] := StringLength[ToString[InputForm[e]]]
FullSimplify[a Conjugate[a] b, ComplexityFunction -> f]
我仍然收到了不需要的表格
有解决方法吗?我刚从StackExchange的问题中学到这一点。您可以这样做:
a b Conjugate[a]//FullSimplify (*a Conjugate[a] b will return the same output*)
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