Singular value decomposition of rectangular matrices?


#1

Dear all,

I am searching for some code that can decompose rectangular
matrices according to SVD.
Unfortunately, rb-gsl can only handle square matrices.

Also, I’ve have some strange installation error with the linalg
library.
(I’ve posted a message to the list about this).
Is there any other software that can singular-decompose a matrix
that is rectangular and maybe really big and “very rectangular” ?
Can someone who uses linalg tell me what options to use to tell
install.rb what options to use ?

Thank you very much!

Best regards,

Axel


#2

removed_email_address@domain.invalid wrote:

Can someone who uses linalg tell me what options to use to tell
install.rb what options to use ?

What do you mean by “really big”? Does the matrix fit in real memory
on your system, or do you need an “out of core” SVD? Is the matrix dense
or sparse? And are you just doing the SVD, or is there some real-world
processing downstream of the singular values and vectors?

IIRC Lapack has a dense in-core SVD built in, and I know that R can do
an SVD and many of the statistical functions downstream, like linear
regression, principal component analysis, “machine learning”, etc. If
you’re in a hurry, the best course of action might be to “shell out” to
R from your Ruby code and read the singular values and vectors back in.

Sparse SVDs are a whole different ballgame. IIRC the algorithm of choice
is a Lanczos code pioneered in Fortran a couple of decades back by Jane
Cullum and Ralph Willoughby. A search of NetLib using

http://www.netlib.org/cgi-bin/search.pl

turned up this:

http://www.netlib.org/tennessee/ut-cs-93-194.ps

Thank you very much!

Best regards,

Axel


M. Edward (Ed) Borasky

http://linuxcapacityplanning.com


#3

On Tue, 11 Apr 2006 removed_email_address@domain.invalid wrote:

Can someone who uses linalg tell me what options to use to tell
install.rb what options to use ?

Thank you very much!

Best regards,

Axel

can you let us know what your install errors are? linalg can certainly
do
this…

-a