Re: [eigen] Another LDLt issue |

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] Another LDLt issue*From*: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>*Date*: Mon, 30 Mar 2009 15:10:38 +0200*Cc*: Keir Mierle <mierle@xxxxxxxxx>*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:cc:content-type :content-transfer-encoding; bh=CjXyrxxkQS5G+hL/673Od3p/PVQ2Nrx107EZDTyRhA4=; b=TVPyOLQM4zEWjwLgg/zsiNCT/bbG4oK0uWMD9YY1Q+jb6eJGfBZyE0LDHd3OqLCAgo DsFveNSJapM9czy5blLLX+SQmYFlZ05e5u3ye+bQBQIevcpgWPKm7QgtI6ycreo6hyxg 09lgNhkd1dG33D06fhxWEIE7J7OBMGj9mfkMA=*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 :cc:content-type:content-transfer-encoding; b=kXaCf++LJgIfyQc5g/hVNG4p3JYojIDC2t5IvgHbimydP/J+JS7zBlgI3NQ4RarVQn 9iuGuN4zWM9vAp6foPouV1RiiAIfQWQcqaOiPXQ8fLcYaJ9eG6H6OfVYwPA7IZTVTR2I V3XcsytujM/pXLrgRdBDIPxj4CLpG9yDkAcOo=

I had a closer look. What happens is that the "positive" assumption allows to restrict the pivot lookup to the diagonal. So we get full pivoting at the price of partial pivoting. What allows us to do that is that the norm of a positive matrix is bounded by a multiple of the norm of its diagonal. In particular, if the diagonal is zero, then the whole matrix is zero. This is really characteristic of positive matrices, it doesn't work for general self-adjoint matrices, e.g. 0 1 1 0 So a generalization of LDLt handling non-positive matrices would have to assume invertibility. It would work for self-adjoint invertible matrices. Why not. Are you still interested in that? The next question would then be: implement as separate dec or as a variant of LDLt controlled by a template parameter? By the way, Keir, at line 162: m_matrix.block(j, j, size-j, size-j).fill(0); // Zero unreliable data. Unless this is backed by experiment, I kind of disagree with this line, I don't see how zeroing this noise can be useful, and I can think of disadvantages of zeroing: it makes the reconstruction of the original matrix more inaccurate, not to mention that it generates more code. Cheers, Benoit 2009/3/30 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>: > This is interesting. Indeed it seems that this works for all > self-adjoint matrices. I'll try to have a look at it. > > Cheers, > Benoit > > 2009/3/29 <w.h.greene@xxxxxxxxx>: >> I just finished reading a long recent thread on some issues with LDLt. >> >> In some numerical experiments I was doing today, I've come across a >> related issue. It appears that the current implementation of LDLt requires >> that the matrix be positive definite. This is not strictly necessary for >> the LDLt factorization to succeed. It is necessary only that the diagonal >> term not be zero during factorization. A negative diagonal term is not, >> by itself, a problem. >> >> From reading the previous posts, it appears that a main reason for the >> LDLt implementation compared with LLt was to avoid the performance >> penalty of a square root. In fact, I think the main benefit of LDLt is that >> it can factor both negative- and positive-definite symmetric matrices. >> (As an aside, these routinely occur in dynamic analysis of mechanical >> systems) >> >> I suggest the test in the LDLt factorization routine be changed to >> check that abs(diag_term) > eps. >> >> Bill Greene >

**Follow-Ups**:**Re: [eigen] Another LDLt issue***From:*Benoit Jacob

**References**:**[eigen] Another LDLt issue***From:*w . h . greene

**Re: [eigen] Another LDLt issue***From:*Benoit Jacob

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Fwd: problem with compile on AIX system** - Next by Date:
**Re: [eigen] Another LDLt issue** - Previous by thread:
**Re: [eigen] Another LDLt issue** - Next by thread:
**Re: [eigen] Another LDLt issue**

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