[SciPy-Dev] Generalized eigenproblem with rank deficient matrices

Charles R Harris charlesr.harris at gmail.com
Sun Sep 4 11:29:19 EDT 2011


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20110904/af8745f7/attachment.html>


More information about the SciPy-Dev mailing list