In maxima, "*" is commutative multiplication and "." is noncommutative multiplication:
(%i2) subst("*",".",b.a);
(%o2) a*b
So substituting "*" for "." in order to allow collectterms to work isn't an option.
I'd guess that you could do a.b + a.c --> a . (b + c) using a method similar to
to method in http://www.math.utexas.edu/pipermail/maxima/2010/021970.html.
--Barton
>
> how to simplify matrix equation 'e2' to obtain back 'e1' ?
> A,B,C are matrices.
>
> matrix_element_mult: "."$
> e1: A.(B+C);
> /*
> ? A . (C + B)
> */
> e2: expand(e1);
> /*
> ? A . C + A . B
> */
I found that it can be done by 'subst' and 'collectterms' commands. But with
this is a problem, because sometimes the order of matrices are not preserved.
e3: subst("*",".",e2);
/*
??A C + A B
*/
e4: collectterms(e3,A);
/*
??A (C + B)
*/
e5: subst(".","*",e4);
/*
??A . (C + B)
*/
Is there any chance that 'collecterms' or 'ratcoef' and other command for
simplifying matrices equations will be work in future Maxima releases (with
matrices equations) ? And/Or with 'transpose' as I asked
http://www.math.utexas.edu/pipermail/maxima/2010/021970.html
I'm still beginner in Maxima and I work with Maxima only from time to time.
Thank you for your time and great work.
Zbigniew
_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima