|Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 24 Feb 2010 06:32:46 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=PBTRFyO2s+gMVGScKOv4NyZ7JOro2FKJyWv9aPvfE80=; b=p5sO9BzwPAHcnFyQbsfWDaxLzl+sL0TLM1tljW/JqMb/SEF0FLrlWqXNDlzpBgxi90 3/qO6CwyywKmfDT6cc0tJ8cdCBnkvKgZTA3BxyrL3B2Wg41TbdK0loF6+X+u3I8G5q0d RWwUrwRsGngpLbuR2SPJcQobCGKi3Drh7ERMA=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=Ey9lYNEAIcvDG0/ZkN9xpdtgeJFonWXfd2edoIC37uWkmIYUELMiGkq1RdFMyWxrx0 /0xU0jXnn0rMMSwb8F1yH826ghcZiVgbe1Rf3VxIuB6w1w2my5264JzjjiXKNWT7dTnu TUe0kwWZMhF7d+lNfSoKsOb2ugtmbaDIqWxIs=
2010/2/24 Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx>:
> On Wed, 24 Feb 2010, Gael Guennebaud wrote:
>> note that the LDLT decomp does pivoting, so it is normal that you don't
>> get the same diagonal matrix. If you reconstruct the matrix from the decomp
>> you will see that in this case the decomp is correct.
> To further clarify, because this also threw me off for a while: I think the
> important thing here is that the matrix A is singular.
Great observation :)
For a detailed analysis of the stability of LDLt with pivoting for
singular matrices, see
Formulas are given on page 12, suggesting that it's not very stable, AFAIU.
In particular, LDLt, even with pivoting, is not a rank-revealing
decomposition, which means that the data "how many zeros in vectorD()"
should be considered meaningless.
> The diagonal D is
> unique (up to reordering) for positive-definite matrices. However, there is
> no such uniqueness for singular matrices. Simple example
> A = [ 0 0; 0 1 ] (these are 2-by-2 matrices in Matlab notation)
> L = [ 0 0; sqrt(3) 1 ]
> D = [ 1/4 0; 0 1/4 ]
> The matrix A has two LDL^T decompositions, A = A * I * A^T = L * D * L^T,
> but the diagonal parts are not the same.