Re: Speeding up Inverting matrices.

*To*: mathgroup at smc.vnet.net*Subject*: [mg23051] Re: Speeding up Inverting matrices.*From*: Philm Mendelsohn <mend0070 at tc.umn.edu> (Philip C Mendelsohn)*Date*: Thu, 13 Apr 2000 02:43:34 -0400 (EDT)*Organization*: University of Minnesota, Twin Cities Campus*References*: <8d0q3v$4oi@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

David McGloin (dm11 at st-andrews.ac.uk) wrote: : I wish to solve the matrix equation Ax = b for x where A is a 24 x 24 : matrix and x and b are column matrices. Most of the values in the matrix : are numbers (and many are equal to zero), but one remains unevaluated : i.e element [1,10] may be 160 + d, where d is unevaluated. Currently : we're using the command: : x = {Inverse [A]. b} : this works fine for the smaller matrices we use (8 x 8 and 16 x 16) but : the calculation has now be runing for over 2 days (the smaller matrices : may take many minutes if not seconds). The program is running on a PII : 350MHz with 64Mb of RAM. Does anyone have any ideas about how to : optimise our calculation? I'm a little out of my depth here, but can you reduce the system to fewer rows using RowReduce[ ]? I assume you would have done that if any of your x entries were known to be zero. What about orthogonalizing the colums of A? You could use GramSchmidt in the Linear Algebra portion of the Standard Add Ons to orthogonalize your matrix A, and then use the fact that Q^T is the inverse of Q, thus x simply equals Q^T . b I hope wiser list members will tell you if I'm wrong before you spend too much time on it, though it should be much faster computationally than doing your 24 x 24 matrix. Best, Phil Mendelsohn : Ultimately I want to extract arbitary elements of x and plot them : against the unevaluated element. : Thanks for any help! : David : -- : *************************************** : David McGloin : Dept. of Physics : Univ. of St. Andrews : dm11 at st-and.ac.uk -- Life is complex: It has real and imaginary components. --Unknown