From: spellucci@mathematik.tu-darmstadt.de (Peter Spellucci) Subject: Re: 2 smallest eigenvalues of dense matrix Date: 29 Apr 1999 11:45:44 GMT Newsgroups: sci.math.num-analysis Keywords: bunch-parlett matrix decomposition In article <37282038.A7F036E0@ruc.dk>, gnalle writes: |> Is there a way of finding the two smallest (most negative) eigenvalues |> og a large dense symmetric matrix. |> |> I am doing differential geometry, so I have a very big dense matrix. I |> have a function |> f and I have found the critical points where |> |> grad f=0. |> |> Now I would like to know if those points are saddlepoints, so I would |> like to know if the Hesse matrix has exactly 1 negative eigenvalue. Is |> there a way of dicovering that, without having to calculate all the |> eigenvalues. Unfortunately I do not know if the absolute value of the |> negative eigenvalue is especially large or small. since your matrix is dense, the problem of computing the two (or some) smallest eigenvalues is expensive anyway. ARPACK is a package which allows you this quite efficiently, as far as possible. http://ftp.caam.rice.edu/pub/software/ARPACK but since you are only interested whether there are some negative eigenvalues, the bunch-parlett-decomposition is a much more adequate tool for you. it provides a decomposition P^TAP = L D L^T where P is a permutation matrix, L lower triangular with diagonal 1,,,,,1 and D is block diagonal consisting of 1 by 1 and 2 by 2 blocks. from sylvesters theorem of inertia it follows that A has as many eigenvalues >0, =0, <0 as D has, and the latter is easily counted. software for the bunch parlett decomposition is e.g. in meschach in netlib. http://www.netlib.org. (I could mail you a f77-version for dense matrix, if necessary) hope this helps peter