Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

For instance, is there some way I can say "let A and B be arbitrary real $m\times n$ and $k\times m$ matrices, Simplify[Transpose[Transpose[A].Transpose[B]]]" and Mathematica would simplify it to B.A?

I know I can set A and B to be matrices containing symbols (e.g. A = Table[Subscript[a,i,j],{i,m},{j,n}]), but results can get quite messy if the problem is more complex than Transpose[Transpose[A].Transpose[B]]

EDIT: To answer @Searke and @Artes questions in the comments: I'm currently watching this Stanford online machine learning course. If you look at the lecture notes, pages 8-11, you see a some matrix calculations. I can follow these calculations with pen and paper, but I haven't found a way to derive e.g. this result from page 11 using Mathematica:

enter image description here

share|improve this question
1  
Nope. The issue is that for a given symbol there is no way to say "Oh this symbol is a symmetric, real matrix." To the best of my knowledge, there is no package for this. –  Searke Mar 20 '12 at 13:17
1  
I would actually be very interested in hearing what people think such functionality should be able to do. Does some other software do this and how do they do it? –  Searke Mar 20 '12 at 13:18
    
See related question: mathematica.stackexchange.com/questions/8/… –  Eli Lansey Oct 4 '12 at 11:16
    
What about this answer? mathematica.stackexchange.com/a/16378/1089 –  chris Apr 20 at 20:31

3 Answers 3

up vote 12 down vote accepted

Initially, Mathematica is not designed for such abstract calculations.

But, Mathematica is a powerful programming language, so that one can add such functionality easily.

See the following examples in related area of differential geometry:

share|improve this answer

I am not sure, but maybe this software for Mathematica http://www.math.ucsd.edu/~ncalg/ could somehow help. The software is for a package called NCAlgebra developed by UC San Diego. I am not familiar with the detailed usage, but it claims to implement capability to study noncommutative inequalities, linear controls, and semidefinite programming within Mathmeatica.

share|improve this answer
3  
Hi Konstantin, welcome to Mathematica.SE. Can you add some information about the software here? When that link dies ("when", not "if") your answer becomes useless. –  stevenvh Oct 3 '12 at 17:56

I guess that V9 now adds this capability:

$Assumptions = {
  Element[A, Matrices[{m, n}]],
  Element[B, Matrices[{n, k}]]
};
TensorReduce[
  Transpose[Transpose[A].Transpose[B]]
]

(* Out: B.A *)
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.