Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0 |

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0*From*: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>*Date*: Sat, 17 Jul 2010 14:14:05 -0400*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=QcXbn4Qw9F4i7L0aduAHoQooJsIpmv8JkFNz9qjLQSQ=; b=shER/Ozi+cDznWjehSuzOWmoE9/n4C/IhaAt7m4waxknmvukN23RxtbAMRsU9D8bEH hbOb31pKqINMQAaOxcTEZxP6y7WoRf7lsR229+Vv3qmd/475l4g3gIzlgM2EoxZB7wlr V1qjkmm4Vj75TJddEcW3LGVw9XEOBwdgbBIck=*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=wugf5MAauXcFIUls2U1wRPZ6TomfT9Pl6+4JJxWauQEpJ2ScFBYTpwOCgY4aTfn8y4 VnsX2kebPO4HfqPpHep3C0GwQOykaq2UxY8XUQYq2XxSNyP5/2wzWTpo7Wp9jPzx5yV/ fGQ+9wJqLyQuUM9Sgzau1zBHWhcdO0MKCOouY=

2010/7/17 Aron Ahmadia <aja2111@xxxxxxxxxxxx>: > LAPACK is a set of algorithms for direct solution of matrices with > very straightforward structure (dense, banded, etc...). You get a > matrix and you compute the solution in finite time. I agree that you > can check the quality of your result simply by direct comparison. > > When you get into iterative methods such as Conjugate Gradients, > GMRES, etc..., the condition number plays a huge role in the > effectiveness of the method, how quickly it converges, and frequently, > whether it will converge at all. That said, it is usually impossible > or very expensive to calculate the condition number of these large > matrices, they are usually estimated. > > I hope this is taken in the spirit of information, and not argument :) Sure! Thanks for sharing this. And my reply would be that whatever condition number you want, is straightforward to compute from a suitable decomposition, e.g. the "good" condition number is straightforward to compute from SVD or even selfadjoint eigensolver. Benoit > > A > > On Sat, Jul 17, 2010 at 7:18 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote: >> But here as usual, I think it's LAPACK who is right, not MATLAB and NumPy! >> >> Even if the mutually inequivalent notions of condition numbers used by >> LAPACK feel complicated and inelegant, they are actually more relevant >> to the problems at hand, than a single unified notion of condition >> number can be. >> >> Another reason why we decided not to expose condition numbers in Eigen >> is that for the main purpose they're used for, namely checking if a >> result is reliable, there is a better approach which is: check the >> result itself. For example, if you want to check how accurate your >> matrix inverse is, just compute matrix*inverse and see how close it is >> to the identity matrix. Nothing beats that! When it comes to more >> general solving with potentially non full rank matrices, this is even >> better, because the condition number of the lhs matrix alone doesn't >> tell all you need to know (it also depends on your particular rhs), so >> the approach we're recommending in Eigen, to compute lhs*solution and >> compare with rhs, is the only way to know for sure how good your >> solution is. >> >> Benoit >> >> 2010/7/17 Aron Ahmadia <aja2111@xxxxxxxxxxxx>: >>> I admit that pointing to LAPACK was a bad example (I am least familiar >>> with that package of those mentioned), however, MATLAB and NumPy are >>> far more common these days as computational interfaces than LAPACK >>> (even if they are built on top of its routines). >>> >>> A >>> >>> On Sat, Jul 17, 2010 at 6:55 PM, Aron Ahmadia <aja2111@xxxxxxxxxxxx> wrote: >>>> Hi Benoit, >>>> >>>> Sorry, I meant the inverse in this sense, this is something that >>>> arises when solving the two problems: >>>> >>>> Ab = x >>>> Ax = b >>>> >>>> Where I leave the unknown as x, and the fixed as b. Both problems can >>>> be bound by a condition number that depends on the perturbations of x >>>> >>>> \kappa = ||A||*||b||/||x|| <= ||A||*||A^-1|| (forward) >>>> \kappa = ||A^-1||*||b||/||x|| <= ||A||*||A^-1|| (backward) >>>> >>>> The term ||A||*||A^-1||, since it arises in both forward and backward >>>> problems, is called the condition number of A. This is pretty solidly >>>> in the literature, and you wouldn't confuse anybody if you had a >>>> general "calculate the condition number of a matrix" function and more >>>> specialized ones for calculating the condition numbers of other >>>> specific operations. >>>> >>>> A >>>> >>> >>> >>> >> >> >> > > >

**References**:**[eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Robert Lupton the Good

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Christoph Hertzberg

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Gael Guennebaud

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Robert Lupton the Good

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Benoit Jacob

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Aron Ahmadia

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Benoit Jacob

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Benoit Jacob

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Aron Ahmadia

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Aron Ahmadia

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Benoit Jacob

**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0***From:*Aron Ahmadia

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0** - Next by Date:
**[eigen] [history] 4 years already!!** - Previous by thread:
**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0** - Next by thread:
**Re: [eigen] Problem inverting a Matrix4f with Eigen 2.0.0**

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