Re: [eigen] SVD for finding a basis for the nullspace of a wide matrix

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi,

the current implementation of the SVD comes from JAMA, and yes, as you
found yourself, the code is pretty opaque. As mentioned on the TODO
page:
http://eigen.tuxfamily.org/index.php?title=Todo#SVD_module
we would be very happy is someone could step up to re-implement it in
more generic and more elegant fashion. Unfortunately I don't have any
knowledge on how the SVD decomposition work, but I can help on the
Eigen side of course.

cheers,
Gael.

On Fri, Nov 14, 2008 at 10:23 AM, Keir Mierle <mierle@xxxxxxxxx> wrote:
> Right now the SVD, which computes A = USV^T for a mxn matrix A with m >= n,
> produces a square V n x n and rectangular U m x min(n,m). However, for  many
> applications it is necessary to compute the extra columns of U, such that U
> is m x m. For example, in computer vision a (very) common operation is to
> take the SVD of a 3x4 matrix (call it P), row-deficient, in order to find
> the null vector. With a SVD that requires m >= n, this is done by taking the
> SVD of P^T and using U to find the nullvector X such that PX = 0 and ||X|| =
> 1. However, if U is not computed fully, this is not possible. In other
> words, the current Eigen SVD isn't useful for solving underdetermined
> homogeneous linear systems (Ax = 0 with A wide rather than tall).
>
> I looked into extending the existing SVD code but sadly it's pretty opaque.
> The various papers about implementing the SVD aren't easy either, and I
> don't have a week sink into it. Is anyone working on eigen familiar with the
> SVD algorithms? I may be able to do it in less time with a bit of help.
>
> Thanks,
> Keir
>

---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/