千里马:用平方绝对值替换共轭乘积

时间:2017-04-07 08:59:00

标签: maxima

我有几个产品的表达式,如:a * conjugate(a)。 如何让Maxima用cabs替换它们(a)^ 2?

提前致谢

1 个答案:

答案 0 :(得分:1)

一种方法是切换到polarform。调整p(e)

declare([a, b, c], complex);
e: a*conjugate(a) + b^2*conjugate(b)^2 + c;
/* apply `polarform' if `p(e)' is true */
p(e):=member(e, ['a, 'b]);
polarform0(e):=if p(e) then polarform(e) else e;
scanmap(polarform0, e);

OUPUTS:

c+abs(b)^4+abs(a)^2$