isolating a common factor from a sum of terms



Here's one way:

(%i1) ex:
-c5*v5*D-8*c2*v4*D-c5*h*D+u2*v2*v6+u3*v6-6*u4*v3+4*u2*v3-4*c2*u3*v2+4*u4-2*c2*u1+4*u1+4*c2*c4$
(%i2) pullout(a,b):= block([t],t:divide(a,b), b*factor(t[1])+t[2])$
(%i3) pullout(ex,c2);
(%o3) -2*c2*(4*v4*D+2*u3*v2+u1-2*c4)+(-c5*v5-c5*h)*D+(u2*v2+u3)*v6+(4*u2-6*u4)*v3+4*u4+4*u1

Try to restructure the remainder as well:

(%i4)
pullout1(a,b):=block([t],t:divide(a,b),b*factorsum(t[1])+factorsum(t[2]))$
(%i5) pullout1(ex,c2);
(%o4)
-2*c2*(4*v4*D+2*u3*v2+u1-2*c4)-c5*(v5+h)*D+(u2*v2+u3)*v6-2*(3*u4-2*u2)*v3+4*(u4+u1)

A simpler way, with a slightly different result:

(%i6) rat(ex,c2);
(%o6)
(-8*v4*D-4*u3*v2-2*u1+4*c4)*c2+(-c5*v5-c5*h)*D+(u2*v2+u3)*v6+(-6*u4+4*u2)*v3+4*u4+4*u1
(%i7) map(factor,%o6);
(%o7)
-2*c2*(4*v4*D+2*u3*v2+u1-2*c4)-c5*(v5+h)*D+(u2*v2+u3)*v6-2*(3*u4-2*u2)*v3+4*u4+4*u1


On Sat, Oct 8, 2011 at 10:28, Ether Jones <maxima at etherjones.us> wrote:

>
> -c5*v5*D-8*c2*v4*D-c5*h*D+u2*v2*v6+u3*v6-6*u4*v3+4*u2*v3-4*c2*u3*v2+4*u4-2*c2*u1+4*u1+4*c2*c4