       Re: Can Mathematica invert large complex arrays ( 700x700)?---in a timely way that is

• To: MathGroup at yoda.physics.unc.edu
• Subject: Re: Can Mathematica invert large complex arrays ( 700x700)?---in a timely way that is
• From: David Withoff <withoff>
• Date: Sat, 16 May 1992 15:06:12 -0500

```In response to Gregory Lampshire's questions about Inverse, and in
particular about 700 x 700 complex matrices...

For matrices of machine-size real numbers, Inverse converts the input
expression to an array of doubles and calls the LINPACK routine DGEDI.
The time required for converting the matrix to an array of doubles,
and the time for figuring out that the matrix is an array of doubles
in the first place, is proportional to n^2, the size of the matrix.
Matrix inversion is (sort of) an n^3 operation, so for large matrices
most of the time is spent computing the inverse.

For matrices of complex or extended precision numbers, Inverse instead
uses Gauss-Jordan elimination (gaussj from Numerical Recipes), and works
with the matrix as an expression rather than as an array.  Working with
expressions is more general than working with arrays of doubles, but it
is also slower, and Gauss-Jordan elimination isn't as fast as DGEDI
either.  Based on extrapolation from smaller matrices, I got an estimate
of 322882 seconds to invert a 700 by 700 complex matrix on a NeXT.

I think it would make a very interesting and useful experiment to write
another matrix inverse routine and hook it to Mathematica using MathLink.
(I might try this myself when I get some time after the Mathematica
conference, but if someone else does it I'd be very interested in seeing
the results.)

Dave Withoff
withoff at wri.com

```

• Prev by Date: help needed in understanding error message
• Next by Date: algebraic numbers?
• Previous by thread: Re: Can Mathematica invert large complex arrays ( 700x700)?---in a timely way that is
• Next by thread: Re: Can Mathematica invert large complex arrays (......)