factorize symbolic expression
(ax+bx).factor()=x(a+b) but (2a+2b).factor()=(2a+2b) how to obtain 2(a+b) ?
Thanks in advance...
(ax+bx).factor()=x(a+b) but (2a+2b).factor()=(2a+2b) how to obtain 2(a+b) ?
Thanks in advance...
You can work with elements of a polynomial ring instead of with symbolic expressions:
sage: R.<a,b,c> = ZZ[] # polynomials with integer coefficients, variables a, b, c
sage: (a*2+b*2).factor()
2 * (a + b)
sage: (a*c+b*c).factor()
c * (a + b)
Thanks for the replay. A little bit heavy for a simple factorization of an expression... Any particular reason for this restriction of the format method? Big thanks anyway
The notion of factorization is algebraic and depends on the ring in which you are working. For example x^2+1
factors over the complex numbers but not the reals, and x^2-2
factors over the reals but not the rationals. So when you're dealing with factorization, it's a good idea to precisely specify the ring.
ok I undersatnd....
Asked: 5 years ago
Seen: 1,455 times
Last updated: Dec 17 '19
There exists the
collect_common_factors
method that should do the trick, I think. But it seems a bit buggy. This works as expected:However, this fails:
Looks like a bug to me, since
(2*a*x + 2*b*x).factor()
returns2*(a + b)*x
.