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[4]] == 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 an impossible task, so we instead try through testing and tweaking 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