This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Some Questions on SVD Decompostion


You might find the attached function useful.  It uses the

gsl_eigen_hermv

function to find the eigenvalues and eigenvectors of  the hermitian 
matrix   M=conj_trans(m) * m, where m is nrowsxncols

The singular values of  m  are the positive square roots of the eigenvalues 
of M.
The right eigenvectors of m (the columns of the matrix V) are the 
eigenvectors of M.
The matrix of left eigenvectors of m is then given by U=m*V*(lambda_inv), 
where lambda_inv is a ncols x nrows diagonal matrix whose diagonal elements 
are inverse of the sqrt of the corresponding elements of matrix of 
eigenvalues of M.

The function returns the ranked singular values and the matrices of left 
and right eigenvectors.

One drawback of this approach is that for non-square m with ncols < nrows, 
it only produces ncols left eigenvectors.  If this is a problem, the 
function can be augmented so that in the ncols < nrows case, it solves for 
eigenvalues and eigenvectors of  M1=m*conj_trans(m). This gives a full-rank 
U, and V can then be solved for as V=(lambda_inv)*U'*m.

I can't vouch for the numerical properties of this approach, but it has 
worked for me in my application, wherre I'm not concerned about 
ill-conditioned m. Perhaps someone could comment on this.

At 10:04 PM 4/16/2002 +0100, Brian Gough wrote:
>wpwcdma@samsung.co.kr writes:
>  > Dear Mr. Brian Gough:
>  >  I have learned that you are expert at Singular Value Decomposion
>  > (SVD) from the Website.  However, I am always afflicted by the
>  > following questions:
>  >  (1) how to make the Singular Value Decompostion of Complex Matrix?
>  > (2) how to extend the singular value decompostion of Real Matrix
>  > into the Complex Matrix?
>  >  I hope that you can give some helps on this issue.
>  >  Anyway, I will thank your helps very much in advance.
>  >  Best Regards
>  >  Your Wang Ping
>  >  April 16, 2002.
>
>Hi,
>GSL does not have any routines for complex SVD.
>Maybe someone will write one in the future.
>
>As an alternative there are complex SVD routines available in LAPACK
>which can be used instead.
>
>regards
>
>--
>Brian Gough
>
>  >
>  >
>  >
>  > **********************************************************************
>  > China Samsung Telecom R&D Center
>  >  4/F Science and Technology Tower No.9, Zhongguancun Nan Lu,
>  > Haidian District, Beijing, China 100081
>  >  Tel: (8610) 68427711-2230 FAX: (8610) 68481891 E-Mail:
>  > wpwcdma@samsung.co.kr
>  > **********************************************************************

John Ketchum
Qualcomm Inc.

Attachment: SVD.c
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]