From help-octave-request at bevo dot che dot wisc dot edu Fri Jan 23 21:54:14 1998 Subject: Re: MATLAB COMPATIBILITY (sparse matrices) From: Andy Adler To: help-octave at bevo dot che dot wisc dot edu Date: Fri, 23 Jan 1998 21:00:02 -0700 (MST) Thanks to all who sent me references for sparse matrix textbooks. I've borrowed them from the local library, and (if all goes well) I might read them, and maybe even write some code. I'll contribute two sparce inverse functions I've already written. octave:1> help diag_inv [...] = diag_inv (...) solve a symetric sparse matrix system with LDL' factorization X=diag_inv(A,B) A is mxt where t+1 is number of non-zero superdiagonals B is mxn X is mxn octave:2> help chol_inv [...] = chol_inv (...) solve a positive definite sparse matrix system with cholesky factorization X=chol_inv(A,B) A is mxt where t+1 is number of non-zero superdiagonals B is mxn X is mxn if A would be ! 11000 ! then A= ! 11 ! ! 14300 ! ! 43 ! ! 03520 ! ! 52 ! ! 00285 ! ! 85 ! ! 00059 ! ! 90 ! They have several limitations. 1) Can only handle real matrices 2) They don't seriously check the well conditioning of the matrices. 3) I haven't written anything for non-symetric A 4) It should be written as a generalized matrix inverse routine, which first tries a cholesky factorization, and, if A is not positive-definite, it goes on to try LDL' and then something non-symetric. 5) It can't do any row-reordering. If you'd like to use them they're available at ftp://d201.njc.org/pub/octave/utils 11524 Jan 23 20:46 chol_inv-linux-i386.oct* 2400 Jan 23 20:44 chol_inv.cc 11708 Jan 23 20:46 diag_inv-linux-i386.oct* 2741 Jan 23 20:44 diag_inv.cc Any advice or bug reports welcome. _____________________________________________________________________ Andy Adler, | Pulmonary Physiology Unit | Lab 303-398-1626 adlera at njc dot org| | National Jewish Center,Denver,USA | National Jewish Center,Denver,USA | Fax 303-398-1607 Welcome to 1998, the triple year of the beast! (3*666=1998)