public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
* nonsymmetric nondefective matrix eigenvalues and eigenvectors
  2002-12-31  9:55 nonsymmetric nondefective matrix eigenvalues and eigenvectors jdwright
@ 2002-05-13 23:31 ` jdwright
  2002-12-31  9:55 ` Brian Gough
  1 sibling, 0 replies; 4+ messages in thread
From: jdwright @ 2002-05-13 23:31 UTC (permalink / raw)
  To: gsl-discuss

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.

If GSL can accomplish this task, could someone let me know the name of the
appropriate function?

If GSL cannot accomplish this task has someone created a patch for this problem?

Tao Pang in his work "An Introduction to Computational Physics" clearly states
on page 114, "For a nondefective matrix, we can always obtain a complete set of
eigenvectors, including the degenerate eigenvalue cases."  Tao defines a
nondefective matrix on page 112.  "A matrix is nondefective if it can be
diagonalized under a matrix transformation and its eigenvectors can form a
complete vector space."  He goes on to say "we hardly encounter defective
matrices in physics."  He then presents two different methods for finding the
eigenvalues and eigenvectors of a general matrix.  

Thus I think other physicists like myself may have an interest in such methods. 
Although Tao has some code at his web-site "www.physics.unlv.edu/~pang/cp.html"
I did not find a complete C-implementation of the method he describes in his
book.

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?

If anyone has any experience with this matter I would love to hear from you.

Thanks,

David Wright
Graduate Student
Physics Department
Wesleyan University
jdwright@wesleyan.edu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: nonsymmetric nondefective matrix eigenvalues and eigenvectors
  2002-12-31  9:55 ` Brian Gough
@ 2002-05-15 12:52   ` Brian Gough
  0 siblings, 0 replies; 4+ messages in thread
From: Brian Gough @ 2002-05-15 12:52 UTC (permalink / raw)
  To: jdwright; +Cc: gsl-discuss

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: nonsymmetric nondefective matrix eigenvalues and eigenvectors
  2002-12-31  9:55 nonsymmetric nondefective matrix eigenvalues and eigenvectors jdwright
  2002-05-13 23:31 ` jdwright
@ 2002-12-31  9:55 ` Brian Gough
  2002-05-15 12:52   ` Brian Gough
  1 sibling, 1 reply; 4+ messages in thread
From: Brian Gough @ 2002-12-31  9:55 UTC (permalink / raw)
  To: jdwright; +Cc: gsl-discuss

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* nonsymmetric nondefective matrix eigenvalues and eigenvectors
@ 2002-12-31  9:55 jdwright
  2002-05-13 23:31 ` jdwright
  2002-12-31  9:55 ` Brian Gough
  0 siblings, 2 replies; 4+ messages in thread
From: jdwright @ 2002-12-31  9:55 UTC (permalink / raw)
  To: gsl-discuss

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.

If GSL can accomplish this task, could someone let me know the name of the
appropriate function?

If GSL cannot accomplish this task has someone created a patch for this problem?

Tao Pang in his work "An Introduction to Computational Physics" clearly states
on page 114, "For a nondefective matrix, we can always obtain a complete set of
eigenvectors, including the degenerate eigenvalue cases."  Tao defines a
nondefective matrix on page 112.  "A matrix is nondefective if it can be
diagonalized under a matrix transformation and its eigenvectors can form a
complete vector space."  He goes on to say "we hardly encounter defective
matrices in physics."  He then presents two different methods for finding the
eigenvalues and eigenvectors of a general matrix.  

Thus I think other physicists like myself may have an interest in such methods. 
Although Tao has some code at his web-site "www.physics.unlv.edu/~pang/cp.html"
I did not find a complete C-implementation of the method he describes in his
book.

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?

If anyone has any experience with this matter I would love to hear from you.

Thanks,

David Wright
Graduate Student
Physics Department
Wesleyan University
jdwright@wesleyan.edu

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-05-15 19:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-31  9:55 nonsymmetric nondefective matrix eigenvalues and eigenvectors jdwright
2002-05-13 23:31 ` jdwright
2002-12-31  9:55 ` Brian Gough
2002-05-15 12:52   ` Brian Gough

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).