octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: General eigenvalue problem proposal


From: Ed Meyer
Subject: Re: General eigenvalue problem proposal
Date: Thu, 18 Apr 2013 11:56:59 -0700




On Thu, Apr 18, 2013 at 6:10 AM, Rafael Gonzalez <address@hidden> wrote:
>>It looks to me like balancing is not done at all in eig, unlike in ML where it is the
>>default for the standard eigenvalue problem (no indication in the ML doc if balancing
>>is done in the generalized case).

Out of pure guess I'm thinking that Octave handles the generalized eigenvalue problem by solving a normal one with inv(B)*Ax=λx and I think that Matlab also does that as default, with the option of overriding it with the 'qz' flag and perform another method. So you're saying that the problem could be solved just by changing the calling form of the LAPACK routines?


In octave the generalized problem is solved using *sygv if the matrices are symmetric.
This does a cholesky factorization of B and uses the factors to transform the problem
to a standard symmetric problem - just doing inv(B)*A loses the symmetry.
If the matrices are nonsymmetric the QZ algorithm is used.
All the routines used for eigenvalues have extended versions with names ending
in 'x', e.g. dsygvx, which allow for more control over the solution process. For
nonsymmetric problems they allow for balancing by permuting and/or scaling the
matrices. The non-extended versions used in octave only permute the matrices.

The reason ML provides the option to turn off balancing is that scaling (but not
permuting) can cause numerical problems if the matrix has tiny elements. The
LAPACK manual does not discuss this drawback but the ML document does.
--
Ed Meyer

reply via email to

[Prev in Thread] Current Thread [Next in Thread]