Re: Fortran equivalent to Matlab's eig() function
  Home FAQ Contact Sign in
comp.lang.fortran only
 
Advanced search
POPULAR GROUPS

more...

 Up
Re: Fortran equivalent to Matlab's eig() function         

Group: comp.lang.fortran · Group Profile
Author: Gordon Sande
Date: Sep 9, 2008 13:26

On 2008-09-09 16:16:39 -0300, Ron Ford said:
> On Tue, 09 Sep 2008 12:58:19 GMT, Gordon Sande posted:
>
>> On 2008-09-09 01:02:58 -0300, Ron Ford said:
>>
>>
>>
>>> I never have 2 matrices lying around, where both are almost triangular for
>>> different reasons.
>>>
>>> *
>>> * Purpose
>>> * =======
>>> *
>>> * DHGEQZ computes the eigenvalues of a real matrix pair (H,T),
>>> * where H is an upper Hessenberg matrix and T is upper triangular,
>>> * using the double-shift QZ method.
>>> * Matrix pairs of this type are produced by the reduction to
>>> * generalized upper Hessenberg form of a real matrix pair (A,B):
>>> *
>>> * A = Q1*H*Z1**T, B = Q1*T*Z1**T,
>>> *
>>> * as computed by DGGHRD.
>>>
>>> I doubt that matlab has a function designed for Karl Hessenberg's stuff.
>>> Not knowing better, it looks like it might mean something for
>>> representations.
>>
>> The usual style is that there will be some initial processing to bring
>> the general matrices to a form where the particular problem can be solved.
>> To find the required initial processing you will have to read more of the
>> documentation. In this case that means the SECOND sentence of the comment
>> block quoted above. So although DHGEQZ may not solve your problem directly
>> the pair of DGCHRD and DHGEQZ would seem to do the job. There are typically
>> many sensible reasons for breaking the larger problem into smaller parts.
>> Often there may be several schemes for doing the initial processing. Or
>> there may be easy methods for updating the initial processing that do not
>> also apply to the full problem. This is really a numerical analysis issue
>> rather than a Fortran question.
>
> I'm missing the meaning of pulling eigenvalues on a *pair* of matrices.
> When we pulled them on a square matrix in physics, we were finding
> principal axes. So the linear algebra had a physical interpretation.

A x = \lambda B x for positive definite B is a "nuts and bolts" type
physics problem. And no you do solve with A B^-1 but rather with
symmetric factors of B. Using A B^-1 is usually trotted out as a
laughably foolish way of making an easy problem hard by using
blind brute force algebra.
>> Sight unseen I would be willing to take a small bet that MatLab is likely
>> have packaged the pair for ready use with access to the intermediate forms
>> taking more trouble if even possible.
>
> Matlab being an educational tool and Hessenberg form being beyond the
> content for a semester of linear algebra, I would put up two dollars of
> risk capital to contend to the contrary.

A full two semester course would have had Hessemberg forms as the nonsymmetric
analogue of tridiagonal forms. Both of which are preliminaries to finding
eigenvalues and eigenvectors.

The guy who did Matlab was a professor of Computer Science speicalizing in
Numerical Analysis a long time ago so it is a sucker bet that all of NetLib
will be there. Look up Cleve Moler with google.
no comments
diggit! del.icio.us! reddit!