Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1996
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1996

[Date Index] [Thread Index] [Author Index]

Search the Archive

Matrix Algebra Weaknesses

  • To: mathgroup at smc.vnet.net
  • Subject: [mg3030] Matrix Algebra Weaknesses
  • From: evans at gte.net (Mark Evans)
  • Date: Wed, 24 Jan 1996 03:34:20 -0500
  • Organization: GTE Intelligent Network Services, GTE INS

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


==== [MESSAGE SEPARATOR] ====


  • Prev by Date: Q: Symbolic manipulation with Mathematica
  • Next by Date: Matrix Algebra Weaknesses
  • Previous by thread: Re: Q: Symbolic manipulation with Mathematica
  • Next by thread: Matrix Algebra Weaknesses