# [SciPy-Dev] Generalized eigenproblem with rank deficient matrices

Nils Wagner nwagner@iam.uni-stuttgart...
Sun Sep 4 11:09:03 CDT 2011

On Sun, 4 Sep 2011 09:29:19 -0600
Charles R Harris <charlesr.harris@gmail.com> wrote:
> On Sun, Sep 4, 2011 at 7:53 AM, Nils Wagner
><nwagner@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