Simplifying symbolic complex norm

asked 2020-06-30 01:57:16 -0500

Jun gravatar image

updated 2020-06-30 19:07:31 -0500

Sage's simplifier seems to have trouble expanding the square-absolute value of complex numbers:

sage: x,y = var('x,y', domain=RR)
sage: (x^2 + y^2 - abs(x + i*y)^2).simplify_full ()
x^2 + y^2 - abs(x + I*y)^2

How can I ensure sage expands the square-absolute value and simplify this down to zero? I'm aware that using (x + i*y).norm() instead of abs(x + i*y)^2 helps in this particular example, but that solution doesn't generalize. For instance, when I stick expressions involving x, y into vectors and compute the vector norm, the vector norm is expressed in terms of absolute values, so I still need a way to deal with the abs.

edit retag flag offensive close merge delete