This project has moved. For the latest updates, please go here.

generalized eigenvalue

Jun 30, 2011 at 2:16 PM


Are there any plans for adding a solver for the generalized eigenvalue problem?

Jul 1, 2011 at 9:39 AM

By the generalized eigenvalue problem, I assume you mean A x = \lambda B x, where A and B are both N X N matrices.

If B is invertible, this is equivilent to (B^{-1} A) x = \lambda x, i.e. to the normal eigenvalue problem on (B^{-1} A). When B is not too close to singular, this approach is fine, and only slightly slower than the so-called QZ algorithm for the direct solution of the generalized eigenvalue problem.

Do you have a real, practical problem where the (B^{-1} A) approach doesn't work? In practice, I haven't encountered one, so I'd be interested in seeing your example and learning how it arises. Feel free to file a bug and put that information in it, if an implementation of the QZ algorithm would be of practical value to you.

Jul 1, 2011 at 11:38 AM

Look for the paper "Direct least squares fitting of ellipses". It works very well given a generalized eigenvalue solver and the matrix B (called C in the paper ;-)) is singular. Right now I use Accord.NET's solver but I would like to minimize the number of libraries I depend on.

Jul 4, 2011 at 12:26 PM

Actually I found an improvement over the cited paper here:

And it seems there is no need to solve a generalized eigenvalue problem.