Re: [eigen] Instability in LLT and LDLT methods. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
On Tue, 27 Jan 2009, Keir Mierle wrote:
Probably it's better to do full pivoting. Apparently cholesky is
stable for semidefinite matrices when full pivoting is used:
http://eprints.ma.man.ac.uk/1101/01/covered/MIMS_ep2008_56.pdf
Cholesky (LL^T) is stable without any pivoting for positive definite
matrices. So I think the possibility of Cholesky without pivoting should
remain.
On Wed, 28 Jan 2009, Gael Guennebaud wrote:
yes, it seems the test to check whether the matrix is positive
definite was too strict. I changed the absolute tolerance a bit, but
we still need something better. Basically, in Cholesky we compute at
each iteration 1/sqrt(x), and so x must be >0 with some epsilon...
Why do you need an epsilon? Perhaps a better question is, why does the
routine test whether the matrix is positive definite? As you say, it's not
easy to write such a test, and it could be said that it's the user's
responsibility that the matrix is positive definite - though of course a
test is nice when the code is run in debug mode.
A related issue I've been wondering about is: why does LU decomposition
use complete pivoting? I believe that's quite a bit more expensive than
partial pivoting, though I didn't run any tests. When solving a linear
system with an invertible matrix, partial pivoting performs as well as
complete pivoting, doesn't it? LAPACK uses partial pivoting, as does GSL.
Cheers,
Jitse