# unsymmetric eigenvalue problem

Wed May 17 20:45:00 GMT 2006

Hello all,

I have recently needed to compute eigenvalues of unsymmetric
matrices, and so I wrote a code based in GSL to do it since
one does not currently exist. I followed the QR algorithm
outlined in Golub & Van Loan, chapter 7.

I have attached a patch file to this email containing all
my code. Right now only the eigenvalue problem is solved,
the code will not compute eigenvectors. The patch is against
gsl-1.8 so just cd into a fresh gsl-1.8 and

patch -p0 < gsl.unsymm.patch

You will probably need to run automake again in the toplevel
dir to update the Makefile.am's. I have also attached a
test program eig.c to illustrate the use of the solver.

The patch creates 3 new source files:

linalg/hessenberg.c
eigen/balance.c
eigen/unsymm.c

eigen/balance.h

hessenberg.c contains gsl_linalg_hessenberg() which reduces
a matrix to upper Hessenberg form.

balance.c contains balance_matrix() to do the standard matrix
balancing before finding eigenvalues.

unsymm.c contains the Francis QR algorithm to find the eigenvalues
of a general unsymmetric real matrix:
gsl_eigen_unsymm_alloc()
gsl_eigen_unsymm_free()
gsl_eigen_unsymm() --- Solves A x = \lambda x

I am happy to contribute this to GSL if the developers want to
use it. Also, if there is interest, I would be willing to look
at coding up an eigenvector solver too for the unsymmetric
eigenvalue program - I only needed eigenvalues for my current
project so I haven't looked at the eigenvector problem.

Also if there is interest I'd be interested in looking at the
generalized eigenvalue problem since I feel GSL is incomplete
without an Ax = sBx solver.

Thanks,
Patrick Alken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: eig.c
Type: text/x-csrc
Size: 1795 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gsl-discuss/attachments/20060517/4c8ddf3f/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gsl.unsymm.patch
Type: text/x-patch
Size: 37650 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gsl-discuss/attachments/20060517/4c8ddf3f/attachment-0001.bin>