This is the mail archive of the
gsl-discuss@sources.redhat.com
mailing list for the GSL project.
Re: nonsymmetric nondefective matrix eigenvalues and eigenvectors
- From: Brian Gough <bjg at network-theory dot co dot uk>
- To: <jdwright at wesleyan dot edu>
- Cc: <gsl-discuss at sources dot redhat dot com>
- Date: Wed, 15 May 2002 20:45:29 +0100 (BST)
- Subject: Re: nonsymmetric nondefective matrix eigenvalues and eigenvectors
- References: <1021330966.3ce046167752a@mail.wesleyan.edu>
jdwright@wesleyan.edu writes:
> Dear GSL-users,
> Can GSL provide the eigen-values and eigen-vectors of a
> non-defective, non-symmetric matrix? As far as I can tell, GSL
> lacks this ability.
Hi,
GSL doesn't provide any routines for non-symmetric eigensystems. The
Schur decomposition used to compute them is a complicated algorithm to
program.
> I did find a complete routine in "Numerical Recipes in C".
> However, this routine merely provides the eigen-vectors.
> Nonetheless, I will try to use it as a first step. Now comes a
> more concrete question. If I have a variable H defined with the
> statement "gsl_matrix * H = gsl_matrix_alloc(100,100)" how can I
> pass this object into a function with the prototype "void hqr(float
> **a, int n, float wr[], float wi[])"? Is it possible or do I have
> to modify the routine to use gsl functions like gsl_matrix_get and
> gsl_matrix_set?
I think there's a discussion of how the Numerical Recipes authors
interface arrays and float ** pointers in their book.
For linear algebra routines not in GSL I'd recommend using LAPACK or
its C version CLAPACK, since it is free software and very well tested.
regards
Brian Gough