Don't use a gsl_eigen_* function to find the eigenvalues and eigenvectors. The matrix a*b^T has rank 1. The only nonzero eigenvalue is b^T*a (i.e. the dot product of b and a), and the corresponding eigenvector is a.
The eigenspace of the zero eigenvalue is the set of all vectors normal to b, i.e. x such that b^T*x = 0, so just find a basis for this space to get the eigenvectors of the zero eigenvalue. --Warren ________________________________________ From: [EMAIL PROTECTED] [EMAIL PROTECTED] On Behalf Of David Doria [EMAIL PROTECTED] Sent: Thursday, March 06, 2008 5:08 PM To: [email protected] Subject: [Help-gsl] eigenvectors of non symmetric matrix? I am taking an outer product: a b^T where a and b are column vectors. Then I want the eigen values and vectors of the resulting matrix (called mat3). I tried to use: gsl_eigen_symmv_workspace * EigenWorkspace = gsl_eigen_symmv_alloc (2); gsl_eigen_symmv (mat3, EigenValues, EigenVectors, EigenWorkspace); but it gave the wrong results. I guess this is because it was expecting a symmetric matrix? Is the only other choice to use: gsl_eigen_hermv_workspace * EigenWorkspace = gsl_eigen_hermv_alloc (2); gsl_eigen_hermv (mat3, EigenValues, EigenVectors, EigenWorkspace); but for that, I'd have to first make mat3 a complex matrix (or so says the error haha)? Please let me know. -- Thanks, David _______________________________________________ Help-gsl mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gsl _______________________________________________ Help-gsl mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gsl
