       Re: mathgroup question

• To: mathgroup at yoda.physics.unc.edu
• Subject: Re: mathgroup question
• From: withoff
• Date: Thu, 7 Jan 93 09:53:14 CST

```I tried the following in Version 2.1:

m = {{-a1/a2, 1/a2, 0, 1/(R a2)},
{1, 0, 0, 0},
{-q1 a1/a2, q1/a2, 0, a2 + q1/(a2 R)},
{q2, 0, 1, a1}}

Eigensystem[m]

The first thing Eigensystem does for this matrix is try to compute
the eigenvalues, which it does by evaluating

Roots[Det[m - \$X IdentityMatrix] == 0, \$X]

After about six minutes (on a NeXT), Roots comes back with an answer
that occupies over 24 megabytes of memory.

Eigensystem will then pass these eigenvectors off to NullSpace for
the computation of the eigenvectors.  As you might expect, almost any
manipulation, even simple arithmetic, with such an enormous expression
will take a very very long time, and NullSpace does dozens of such
manipulations.  If you are patient, you might try disabling Together
(add a rule Together[e_] = e) and perhaps a few other functions
like Expand and Simplify, and see if that helps.  I did not get an
answer in the hour or so that I waited when I tried this.

In working with symbolic matrices, the speed and effectiveness of
intermediate simplifications is critical to the success of the
computation.  Doing the correct simplifications in all cases is
and finagling and fiddling with options to do the right thing in
most cases.  The appearance of a 24 megabyte expression as an
intermediate result indicates that there is probably room for
improvement in this part of Mathematica.  Whether or not this is
a bug depends on how you look at it.

Substantial changes both to Roots and to symbolic linear algebra
in general have been made for an upcoming release of Mathematica.

Dave Withoff
Technical Development
Wolfram Research

```

• Prev by Date: ComplexExpand
• Next by Date: Problem with Plot Ticks