Re: Abstract Symbolic Matrix operations in Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg96764] Re: Abstract Symbolic Matrix operations in Mathematica
- From: dh <dh at metrohm.com>
- Date: Tue, 24 Feb 2009 05:46:01 -0500 (EST)
- References: <gnq6qn$86g$1@smc.vnet.net>
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. >