question on factorization



I understand your point;
thanks for the help;

just one question about collectterms:
consider
f: 
16*a_z^4*nu*(nu+1)*(nu+2)*(nu+3)*(z2-z1)^4/z^4-48*a_z^3*nu*(nu+1)*(nu+2)*(z2-z1)^2/z^3;
I thought
collectterms(f,nu,(nu+1),(nu+2));
would return
nu*(nu+1)*(nu+2) ( 16... - 48 ...);
but it does not;
I presume, I do not properly use collectterms;
could you help, please ?

thanks in advance;

Laurent

On 11/04/12 17:34, Stavros Macrakis wrote:
> In general, there is no well-defined solution to your problem.  What 
> would you want to do with, e.g.
>
>   a*b + b*c + c*d  ?
>
> It could be rewritten as
>
>  (a+c)*b + c*d
>
> or as
>
>      (b+d)*c + a*b
>
> It is easy enough to do get /all /factorizations of all partitions, 
> like this:
>
> partition_factor(s):=
>     if mapatom(s) or inpart(s,0) # "+" then {s}
>     else map(
>  lambda([t],
>    apply("+",
> listify(map(lambda([u],factor(apply("+",listify(u)))),
>      t)))),
>  set_partitions(setify(args(s))))$
>
> partition_factor( a^2+b*a+b^2);
> =>
> {
>  b*(b+a)+a^2,
>  b^2+a*b+a^2,
>  b^2+a*(b+a)
> }
>
> partition_factor( a*b*c*x + a*b*c^2*y + b*y + a*x)
> =>
> {
>  a*b*c^2*y+b*y+a*b*c*x+a*x,
>  a*b*c^2*y+b*y+a*(b*c+1)*x,
>  b*(a*c^2+1)*y+a*b*c*x+a*x,
>  b*(a*c^2+1)*y+a*(b*c+1)*x,
>  b*(y+a*c*x)+a*b*c^2*y+a*x,
>  a*b*c*(c*y+x)+b*y+a*x,
>  b*(a*c^2*y+y+a*c*x)+a*x,
>  a*(b*c^2*y+x)+b*y+a*b*c*x,
>  a*(b*c^2*y+x)+b*(y+a*c*x),
>  a*(b*c^2*y+b*c*x+x)+b*y
> }
>
> That said, that still doesn't get you everything you might want, 
> because it only uses existing terms.  For example:
>
> partition_factor(b^2+a*b+a^2)
> =>
> {
>  b*(b+a)+a^2,
>  b^2+a*b+a^2,
>  b^2+a*(b+a)
> }
>
> but that doesn't include
>
>  (a+b)^2-a*b
>
> which is just as short, and could be considered a 'better' 
> factorization in some cases....
>
>              -s
>
> On Sun, Nov 4, 2012 at 3:35 AM, lo <james.smith1 at freenet.de 
> <mailto:james.smith1 at freenet.de>> wrote:
>
>     On 11/04/12 04:56, Raymond Toy wrote:
>
>                             "lo" == lo  <james.smith1 at freenet.de
>                             <mailto:james.smith1 at freenet.de>> writes:
>
>              lo> hello Maxima users,
>              lo> a question from a newby:
>              lo> I define a function and take the derivative of it
>              lo> wrt some variables. The result is horribly long
>              lo> but it is the sum of many terms. If I examine those
>         terms,
>              lo> for each, some factorization could be done, but are not.
>              lo> To simplify the problem, consider for instance:
>              lo> f: y1*exp(x1)+y1*cos(x1)+(x1-x2)^2;
>              lo> How come that Maxima do not put y1 as a common factor
>         for exp(x1) and
>              lo> cos(x1) ?
>
>         Because sometimes that's not what you want.  Maxima can't read
>         your
>         mind. :-)
>
>              lo> How to tell Maxima to factorize as much as possible
>         (assuming I do not
>              lo> know myself that
>              lo> y1 is a common factor for the first two terms)  ?
>
>         collectterms(f, y1) will do what you want in this case.
>
>              lo> If I use radcan, I get the result I want, but
>         (x1-x2)^2 gets expanded,
>              lo> something I would like to avoid.
>
>         Be careful with radcan.  It can change expressions in
>         unexpected ways
>         that you might not want.  Use ratsimp instead.
>
>         Ray
>
>         _______________________________________________
>         Maxima mailing list
>         Maxima at math.utexas.edu <mailto:Maxima at math.utexas.edu>
>         http://www.math.utexas.edu/mailman/listinfo/maxima
>
>
>     thanks for the info;
>
>     collectterms would do the work, except that my expression is often
>     of the type:
>
>     f: a*b*c*x1+a*b*c^2*x2;
>     collectterms(f,a,b,c) does not return a*b*c*(x1+c*x2);
>     how to force it ?
>
>     moreover, as said, I do know what terms to collect
>     only by visual inspection; is there a way to force Maxima
>     to do this kind of simplification without specification ?
>
>     thanks in advance;
>
>     Laurent
>
>
>     _______________________________________________
>     Maxima mailing list
>     Maxima at math.utexas.edu <mailto:Maxima at math.utexas.edu>
>     http://www.math.utexas.edu/mailman/listinfo/maxima
>
>