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

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


On Wed, Feb 24, 2010 at 12:31 PM, Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx> wrote:
> On Wed, 24 Feb 2010, Ben Goodrich wrote:
>
>> http://www.pages.drexel.edu/~hvb22/dimacsppr3.pdf
>>
>> they claim (without proof) that D is unique in the positive
>> semi-definite case (although part of L is not when A is singular).
>> Maybe they are incorrect, but I don't think your example shows that
>> because
>>
>> L = [ 0  0;  sqrt(3)  1 ]
>>
>> is not *unit* lower triangular.
>
> You're right. Apologies for the confusion I caused. Let me try again.
>
> It looks like the non-uniqueness of D is caused by the pivoting. Here's
> another example:
>
> L1 = [ 1 0; 0.5 1 ]
> D1 = [ 4 0; 0 0 ]
>
> L2 = [ 2 1; 1 0 ]
> D2 = [ 1 0; 0 0 ]
>
> Now L1 * D1 * L1^T = L2 * D2 * L2^T = [ 4 2; 2 1 ]. Both are valid LDL^T
> decompositions with pivoting: L1 is unit lower triangular, and L2 is unit
> lower triangular after the exchanging the rows. So pivoting can change the
> diagonal matrix.
>
> I don't think it's essential that the matrix is singular; I guess that a
> similar example can be constructed for invertible matrices.
>
> Cheers,
> Jitse

This is a great example, thank you. In my opinion, it would be good to
have a way in eigen to define D uniquely by utilizing the unit lower
triangular restriction on L. In other words, would it be acceptable to
add an option to the vectorD() and matrixL() methods that reversed the
pivoting so that the result was in textbook form with respect to the
original matrix?

Thank you,
Ben



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