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)
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.
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2019-12-15 15:36:29 +0200
Seen: 1,125 times
Last updated: Dec 17 '19
Factorize characteristic polynomial in SR base ring
Why does @parallel change my outputs?
how to factorize an expression with constant variables ?
Polynomial as a sum of simply factored expressions?
The difference between f(x=3) and f(3) of callable symbolic expression 'f'
Using sage to derive symbolic finite difference approximations to differential equations.
A combination of commands partial_fraction(x) and coefficient(x,n)
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
.