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

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

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] SVD for finding a basis for the nullspace of a wide matrix*From*: "Gael Guennebaud" <gael.guennebaud@xxxxxxxxx>*Date*: Fri, 14 Nov 2008 11:06:47 +0100*Dkim-signature*: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=YMKQL5fZQ+D5yK2fnY4RN8Iosr+92TR3quJr+Lc35us=; b=SQ3Zh1WUcSiDWVOwyu9EI1P8gYZkIV5x5pl8ho1QGQ7LP0MwlDsVAzL9DVhTugtJ/h 836m4stKs4uVQbOB5QJ5vN9ymhZnQeomXvLH7A8iMGRrdOfX+DbhiuZmbwfyWcXW7pTe jHsW1lKzbfqVYizEve+LYWQwKrkkNhfEaWMeg=*Domainkey-signature*: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=EQj85g6FVCvFhWVK084WT32njmcWT92jZ0yJ7hjmQBtmFMjc7qxtQ0ew4sYk4OVgKf d9XGjV+EIjJKeLWoiTEulw/Rv+sxFmCWuTFRUJS4USr0jUMEkPRl+vZJz23sLeNzXUmW i4bHBiymbpsoKzqLy9LQjhBzN3+3vvnK7RcuY=

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 > ---

**References**:**[eigen] SVD for finding a basis for the nullspace of a wide matrix***From:*Keir Mierle

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] bug in the Eigen solver** - Next by Date:
**Re: [eigen] SVD for finding a basis for the nullspace of a wide matrix** - Previous by thread:
**[eigen] SVD for finding a basis for the nullspace of a wide matrix** - Next by thread:
**Re: [eigen] SVD for finding a basis for the nullspace of a wide matrix**

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