[SciPy-Dev] Generalized eigenproblem with rank deficient matrices

Nils Wagner nwagner at iam.uni-stuttgart.de
Sun Sep 4 12:09:03 EDT 2011


On Sun, 4 Sep 2011 09:29:19 -0600
  Charles R Harris <charlesr.harris at gmail.com> wrote:
> On Sun, Sep 4, 2011 at 7:53 AM, Nils Wagner 
><nwagner at iam.uni-stuttgart.de>wrote:
> 
>> Hi all,
>>
>> how can I solve the eigenproblem
>>
>> A x = \lambda B x
>>
>> where both matrices are rank deficient ?
>>
> 
> I'd do eigh and transform the problem to something like:
> 
> U * A  * U^t * x= \lambda D * x
> 
> where D is diagonal. Note that the solutions may not be 
>unique and \lambda
> can be arbitrary, as you can see by studying
> 
> A = B = array([[1, 0], [0, 0]])
> 
> Where there are solutions for arbitrary \lambda. 
>Likewise, there may be no
> solutions under the requirement that x is non-zero:
> 
> A = array([[1, 1], [1, 0]]),
> B = array([[1, 0], [0, 0]])
> 
> The usual case where B is positive definite corresponds 
>to finding extrema
> on a compact surface x^t * B *x = 1, but the surface is 
>no longer compact
> when B isn't positive definite. Note that these cases 
>are all sensitive to
> roundoff error.
> 
> Chuck

Hi Chuck,

I am only interested in the real and complex 
eigensolutions.
The complex eigenvalues appear in pairs  a_i \pm \sqrt{-1} 
b_i sind A and B are real.
How can I reject infinite eigenvalues ?
Both matrices, A and B, are indefinite.

Nils




More information about the SciPy-Dev mailing list