Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


2010/2/24 FMDSPAM <fmdspam@xxxxxxxxx>:
> Hi Experts,
>
> please, for my personal clarification, let me ask:
> (I'm not asking for a brief lesson in lin alg. but I have to happily live
> with those answers :-) )
>
> Def.:
>    D_labil := "how many zeros in vectorD()"
>    D_instable : "how many entries in vectorD() are smaller or equal 0..0"
>
> a) LDLt for non singular matrix is rank-revealing (of course, i hope),

This is a tautology: if you assume your matrices to be nonsingular,
then you know their rank. Nonsingular means rank N.

> n_labil = 0

Yes, for (sufficiently) nonsingular matrices, there won't be too small
entries in the vectorD.

> b) LDLt for positive definite matrix => D_instable = 0

Yes.

>
> c) LDLt for singular matrix is not rank-revealing, but: n_deficit > 0

What is n_deficit ? Number of zeros in vectorD? I think this kind of
works, yes, as you're only interested in knowing if it's 0 or >0. As
the LDLt decomposition still gives you the determinant, it in
particular tells you very vaguely if the matrix is singular or not,
but don't use it for that, it shouldn't be very precise.

> d) LDLt for indefinite matrix => D_instable > 0  but counting D(i) <= 0.0 is
> meaning less?

Yes. The "zeros" in the vectorD will actually be small positive
values. There's no magic cutoff where you'd decide that a small value
can be considered zero.

>
> e) Do all this also hold for LLt decompositions?

Oops, for LLt decomposition it's even worse. First you're taking sqrt
of small values, so you're losing half of the precision. Second, our
LLt is non-pivoting so it's totally unstable on singular matrices.

Benoit


>
> Regards
> Frank
>
>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/