Matrix Algebra Weaknesses
- Subject: [mg3030] Matrix Algebra Weaknesses
- From: evans at gte.net (Mark Evans)
- Date: 24 Jan 1996 10:03:40 -0600
- Approved: usenet@wri.com
- Distribution: local
- Newsgroups: wri.mathgroup
- Organization: GTE Intelligent Network Services, GTE INS
- Sender: mj at wri.com
I have done a lot of work with matrices and image arrays in Mathematica. In response to the posted problem of replacing parts of a matrix, I simply would like to comment that Mathematica is just plain *weak* in this area. I have already suggested to Wolfram Research that they transform virtually all matrix functions into built-ins. Matrix algebra is so common in engineering and science that it should be as highly optimized as possible. WRI might go so far as to implement Matrix[] and Vector[] objects as distinct from equivalent List[] objects. Whatever internal representations of the List construct make taking a sub-matrix such a slow and unwieldy affair should be given a second interface as matrix objects, with clean techniques for matrix and array operations. For example, to impose a given submatrix at some position in a larger one, I would argue for a built-in call that accepts as arguments both matrices and a replacement index {row,col}. There was another recent posting about transposing a 1 x n matrix. This is yet another point where WRI might rethink its position. I know of no easy ways of handling the distinction between row and column matrices in Mathematica. One also finds that generalized symbolic linear algebra is somewhat difficult in Mathematica. Matrix algebra is non-commutative. When I had occasion to venture out into generalized linear algebra, my immediate thought was to use the ** operator; but I found that this operator did not do very much for me. In Mathematica, it is difficult to define one symbol 'A' as a matrix, another 'x' as a vector, if you leave the linear dimension undefined. Mathematica doesn't know how to do generalized linear algebra. Why is this relevant? Important discoveries and inventions like Kalman filtering are based on this kind of generalized algebra. A textbook derivation of Kalman filtering optimality is nothing but generalized linear algebra at work. As another example, discrete image processing operations can be modeled in matrix form, but the dimension is always too large to use explicitly. A 256 x 256 image becomes a length-65,536 vector, and the image operator (convolution, say) becomes a 65,536 x 65,536 matrix. I truly love Mathematica and hope to see improvements made in these areas. Mark Evans evans at gte.net Mark Evans evans at gte.net