Dear Adrien, thank you for your kind and precise reply. I tried to invoke the info method and I get exactly what you reported. I would therefore like to ask you the following.
In the llt() method, if a problem of any nature were encountered, an exception would not be raised, but the matrix L would be terminated with the elements of the initial matrix. Is this correct? Thank you in advance Il giorno mar 14 apr 2020 alle ore 15:00 Adrien Escande < [email protected]> ha scritto: > Dear Tommaso, > > calling the method info() on your LLT object in this case should return > Eigen::ComputationInfo::NumericalIssue. It's not because the code didn't > crash that you can say the decomposition arrived at a result. Success is > conveyed by info() and there is no exception raised upon failure. > From a quick look a the code, llt() stops prematurely if it encounters a > pivot that is <= 0. The part of the resulting L matrix up to this point > will be "correct", but all the rows after should simply be (part of) the > rows of your initial matrix. > > Best regards, > Adrien > > On Tue, Apr 14, 2020 at 7:35 PM Tommaso Ferrari <[email protected]> > wrote: > >> Dear all, >> I was analyzing Cholesky's decomposition algorithm on a non positive >> definite matrix. It is a 3*3 matrix, whose eigenvalues are -29.5, 2, 30.5. >> I noticed that the llt() method produces a result even if, obviously, the >> reconstruction of the starting matrix is not correct (due to the fact that >> the input matrix is not positive definite). >> I would like to know if, in general, given a non positive definite >> matrix, the llt() method still arrives at a result or if there may be >> exceptions or errors. >> How does the decomposition proceed, having as input a non positive >> definite matrix? Are pseudo method (pseudo determinant, pseudo inverse) >> used? >> Thanks for your attention and response >> >> Tommaso >> >
