Re: Abstract Symbolic Matrix operations in Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg96759] Re: Abstract Symbolic Matrix operations in Mathematica
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Tue, 24 Feb 2009 05:45:04 -0500 (EST)
- References: <gnq6qn$86g$1@smc.vnet.net>
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. > Basically, you are trying to do noncommutative algebra in Mathematica. The first thing is to choose a notation for multiplication that will not get re-ordered automatically. ** or \[CircleTimes] are the usual choices. After this, you have to provide some rules to specify how to expand an operation like transpose. E.g. ncExpand[trans[a_ ** b_]]:=ncExpand[trans[b]]**ncExpand[trans[a]]; ncExpand[a_]:=a; (note that this will recursively expand transposes of more than 2 matrices) The details can become messy however, because you may want a notation for ordinary scalars, etc. It may be worth it if you want to manipulate complicated expressions of this sort. David Bailey http://www.dbaileyconsultancy.co.uk