Hi,
as far as I know, mma considers a matrix as a bunch of elements. Those
may be symbolic, but not the matrix itself. This leaves two avenues to
proceed. You may either setup a matrix with explicit dimensions and
symbolic elements (using e.g. Array). Or you may define a new data type,
where you have to specify the rules yourself. E.g, assuming we call a
symbolic matrix with name x: SymMat[x]. The rules:
Unprotect[Transpose];
Transpose[a_SymMat. b_SymMat] := Transpose[b].Transpose[a]
Transpose[a_SymMat + b_SymMat] := Transpose[a] + Transpose[b]
etc.
Here I changed the definition of Transpose for simplicity. However, if
you are not sure what you are doing, it would be better to define a new
operator (e.g. myTranspose).
Then,f you the say:
Transpose[SymMat[x].SymMat[y]]
you will get:
Transpose[SymMat[y]].Transpose[SymMat[x]]
hope this helps, Daniel
dvshin wrote:
> Can anybody tell me how to do operations on matrix equations without computing on the element level in Mathematica? In other words, for example, if I have two "abstract" matrices A and B, what should I type to verify the following:
>
> (AT)^T = B^T A^T
>
> Would appreciate any thoughts.
>