Ask Your Question

factorize symbolic expression

asked 2019-12-15 15:36:29 +0100

Jingenbl gravatar image

(ax+bx).factor()=x(a+b) but (2a+2b).factor()=(2a+2b) how to obtain 2(a+b) ?

Thanks in advance...

edit retag flag offensive close merge delete



There exists the collect_common_factors method that should do the trick, I think. But it seems a bit buggy. This works as expected:

sage: a, b = var("a, b")
sage: (2*pi*a + 2*pi*b).collect_common_factors()
2*pi*(a + b)
sage: (2*a^2 + 2*a*b).collect_common_factors()
2*(a + b)*a

However, this fails:

sage: (2*a + 2*b).collect_common_factors() 
2*a + 2*b
sage: (SR(2)*a + SR(2)*b).collect_common_factors()
 2*a + 2*b
Juanjo gravatar imageJuanjo ( 2019-12-16 01:16:07 +0100 )edit

Looks like a bug to me, since (2*a*x + 2*b*x).factor() returns 2*(a + b)*x.

John Palmieri gravatar imageJohn Palmieri ( 2019-12-18 18:44:28 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-12-17 22:04:43 +0100

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)
edit flag offensive delete link more


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

Jingenbl gravatar imageJingenbl ( 2019-12-18 10:33:25 +0100 )edit

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.

John Palmieri gravatar imageJohn Palmieri ( 2019-12-18 18:43:43 +0100 )edit

ok I undersatnd....

Jingenbl gravatar imageJingenbl ( 2019-12-19 09:42:52 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2019-12-15 15:36:29 +0100

Seen: 881 times

Last updated: Dec 17 '19