Question: Non-commutative product of matrices

Following situation: I have a bunch of matrices A,B,Dm, Dinv (which is the inverse of Dm). They happen to be 2x2 matrices, but I want/need to keep these in a symbolic or abstract form, i.e. I am not saying what these are.

They are then used as submatrices of other (2x2) matrices like so:

R:=<<A|0>,<0|B>>;

I then have various dot products between these & others.

My issue/question is: How can I make sure, Maple obeys the non-commutativeness of the products that occur in doing these matrix products? I tried declaring A and B etc. as Matrix(), but that fails, saying the matrices are either too short or too long.

At any rate, I do not want Maple to expand these into their elements. A particular concern is that Dm*B*Dinv bcomes B*Dm*Dinv = B; obviously not correct for matrices B,Dm,Dinv.

So, can Maple handle abstract matrices?

M.D.

Please Wait...