Hi, Let us assume that r = rank(C) < N (1) where C is a symmetric NxN matrix. This implies that the number of nonzero eigenvalues of C is r. Because C is a symmetric matrix there exists an orthogonal matrix U whose columns are the eigenvectors of C such that U^\top C U = [ d , O O , O]. (2) In the above equation d \in rxr is a diagonal matrix consisting of only the nonzero eigenvalues of C. For convenience, partition U as U = [U_1  U_2] (3) where the columns of U_1 (Nxr) are the eigenvectors corresponding to the nonzero block d and the columns of U_2 are the eigenvectors corresponding to the rest (Nr) number of zero eigenvalues. Defining a rectangular transformation matrix R = U_1 (4) it is easy to show that R^\top C R = d. (5) Therefore, the matrix R in equation (4) transforms the originally rank deficient matrix C to a fullrank (diagonal) matrix of rank r. I am looking for an efficient Numpy implementation of this transformation. Thanks in advance Nils Wagner
Use LinearAlgebra.singular_value_decomposition Original Message From: numpydiscussionadmin@lists.sourceforge.net [mailto:numpydiscussionadmin@lists.sourceforge.net] On Behalf Of Nils Wagner Sent: Tuesday, October 30, 2001 12:24 AM To: numpydiscussion@lists.sourceforge.net Subject: [Numpydiscussion] Rank deficient matrices Hi, Let us assume that r = rank(C) < N (1) where C is a symmetric NxN matrix. This implies that the number of nonzero eigenvalues of C is r. Because C is a symmetric matrix there exists an orthogonal matrix U whose columns are the eigenvectors of C such that U^\top C U = [ d , O O , O]. (2) In the above equation d \in rxr is a diagonal matrix consisting of only the nonzero eigenvalues of C. For convenience, partition U as U = [U_1  U_2] (3) where the columns of U_1 (Nxr) are the eigenvectors corresponding to the nonzero block d and the columns of U_2 are the eigenvectors corresponding to the rest (Nr) number of zero eigenvalues. Defining a rectangular transformation matrix R = U_1 (4) it is easy to show that R^\top C R = d. (5) Therefore, the matrix R in equation (4) transforms the originally rank deficient matrix C to a fullrank (diagonal) matrix of rank r. I am looking for an efficient Numpy implementation of this transformation. Thanks in advance Nils Wagner _______________________________________________ Numpydiscussion mailing list Numpydiscussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpydiscussion
participants (2)

Nils Wagner

Paul F. Dubois