shgeqz man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

SHGEQZ(l)			       )			     SHGEQZ(l)

NAME
       SHGEQZ  - implement a single-/double-shift version of the QZ method for
       finding	  the	 generalized	eigenvalues	 w(j)=(ALPHAR(j)     +
       i*ALPHAI(j))/BETAR(j)  of the equation  det( A - w(i) B ) = 0  In addi‐
       tion, the pair A,B may be reduced to generalized Schur form

SYNOPSIS
       SUBROUTINE SHGEQZ( JOB, COMPQ, COMPZ, N, ILO,  IHI,  A,	LDA,  B,  LDB,
			  ALPHAR,  ALPHAI,  BETA, Q, LDQ, Z, LDZ, WORK, LWORK,
			  INFO )

	   CHARACTER	  COMPQ, COMPZ, JOB

	   INTEGER	  IHI, ILO, INFO, LDA, LDB, LDQ, LDZ, LWORK, N

	   REAL		  A( LDA, * ), ALPHAI( * ), ALPHAR( * ), B( LDB, *  ),
			  BETA( * ), Q( LDQ, * ), WORK( * ), Z( LDZ, * )

PURPOSE
       SHGEQZ  implements  a single-/double-shift version of the QZ method for
       finding	  the	 generalized	 eigenvalues	 w(j)=(ALPHAR(j)     +
       i*ALPHAI(j))/BETAR(j)  of  the  equation det( A - w(i) B ) = 0 In addi‐
       tion, the pair A,B may be reduced to generalized Schur form: B is upper
       triangular,  and A is block upper triangular, where the diagonal blocks
       are either 1-by-1 or 2-by-2, the 2-by-2 blocks having complex  general‐
       ized eigenvalues (see the description of the argument JOB.)

       If JOB='S', then the pair (A,B) is simultaneously reduced to Schur form
       by applying one orthogonal tranformation (usually called Q) on the left
       and another (usually called Z) on the right.  The 2-by-2 upper-triangu‐
       lar diagonal blocks of B corresponding to 2-by-2 blocks of  A  will  be
       reduced to positive diagonal matrices.  (I.e., if A(j+1,j) is non-zero,
       then B(j+1,j)=B(j,j+1)=0 and B(j,j) and B(j+1,j+1) will be positive.)

       If JOB='E', then at each iteration, the same transformations  are  com‐
       puted,  but  they  are only applied to those parts of A and B which are
       needed to compute ALPHAR, ALPHAI, and BETAR.

       If JOB='S' and COMPQ and COMPZ are 'V'  or  'I',	 then  the  orthogonal
       transformations	used to reduce (A,B) are accumulated into the arrays Q
       and Z s.t.:

	    Q(in) A(in) Z(in)* = Q(out) A(out) Z(out)*
	    Q(in) B(in) Z(in)* = Q(out) B(out) Z(out)*

       Ref: C.B. Moler & G.W. Stewart, "An Algorithm for Generalized Matrix
	    Eigenvalue Problems", SIAM J. Numer. Anal., 10(1973),
	    pp. 241--256.

ARGUMENTS
       JOB     (input) CHARACTER*1
	       = 'E': compute only ALPHAR, ALPHAI, and BETA.  A and B will not
	       necessarily  be	put into generalized Schur form.  = 'S': put A
	       and B into generalized Schur form, as well as computing ALPHAR,
	       ALPHAI, and BETA.

       COMPQ   (input) CHARACTER*1
	       = 'N': do not modify Q.
	       =  'V':	multiply  the array Q on the right by the transpose of
	       the orthogonal tranformation that is applied to the  left  side
	       of  A  and  B  to  reduce  them	to  Schur  form.   = 'I': like
	       COMPQ='V', except that Q will be initialized  to	 the  identity
	       first.

       COMPZ   (input) CHARACTER*1
	       = 'N': do not modify Z.
	       =  'V':	multiply  the  array  Z on the right by the orthogonal
	       tranformation that is applied to the right side of A and	 B  to
	       reduce  them to Schur form.  = 'I': like COMPZ='V', except that
	       Z will be initialized to the identity first.

       N       (input) INTEGER
	       The order of the matrices A, B, Q, and Z.  N >= 0.

       ILO     (input) INTEGER
	       IHI     (input) INTEGER It is assumed that A is	already	 upper
	       triangular  in  rows and columns 1:ILO-1 and IHI+1:N.  1 <= ILO
	       <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.

       A       (input/output) REAL array, dimension (LDA, N)
	       On entry, the N-by-N upper Hessenberg matrix A.	Elements below
	       the subdiagonal must be zero.  If JOB='S', then on exit A and B
	       will have been  simultaneously  reduced	to  generalized	 Schur
	       form.   If  JOB='E',  then  on exit A will have been destroyed.
	       The diagonal blocks will be correct, but the off-diagonal  por‐
	       tion will be meaningless.

       LDA     (input) INTEGER
	       The leading dimension of the array A.  LDA >= max( 1, N ).

       B       (input/output) REAL array, dimension (LDB, N)
	       On entry, the N-by-N upper triangular matrix B.	Elements below
	       the diagonal must be zero.  2-by-2 blocks in B corresponding to
	       2-by-2  blocks  in A will be reduced to positive diagonal form.
	       (I.e., if A(j+1,j) is non-zero,	then  B(j+1,j)=B(j,j+1)=0  and
	       B(j,j)  and  B(j+1,j+1) will be positive.)  If JOB='S', then on
	       exit A and B will have been  simultaneously  reduced  to	 Schur
	       form.   If  JOB='E',  then  on exit B will have been destroyed.
	       Elements corresponding to diagonal blocks of A will be correct,
	       but the off-diagonal portion will be meaningless.

       LDB     (input) INTEGER
	       The leading dimension of the array B.  LDB >= max( 1, N ).

       ALPHAR  (output) REAL array, dimension (N)
	       ALPHAR(1:N)  will be set to real parts of the diagonal elements
	       of A that would result from reducing A and B to Schur form  and
	       then  further  reducing them both to triangular form using uni‐
	       tary transformations s.t. the diagonal of  B  was  non-negative
	       real.	Thus,	if   A(j,j)   is  in  a	 1-by-1	 block	(i.e.,
	       A(j+1,j)=A(j,j+1)=0), then  ALPHAR(j)=A(j,j).   Note  that  the
	       (real  or  complex)  values  (ALPHAR(j) + i*ALPHAI(j))/BETA(j),
	       j=1,...,N, are the generalized eigenvalues of the matrix pencil
	       A - wB.

       ALPHAI  (output) REAL array, dimension (N)
	       ALPHAI(1:N) will be set to imaginary parts of the diagonal ele‐
	       ments of A that would result from reducing A  and  B  to	 Schur
	       form  and  then	further	 reducing them both to triangular form
	       using unitary transformations s.t. the diagonal of B  was  non-
	       negative	 real.	 Thus,	if  A(j,j) is in a 1-by-1 block (i.e.,
	       A(j+1,j)=A(j,j+1)=0), then ALPHAR(j)=0.	Note that the (real or
	       complex)	 values	 (ALPHAR(j) + i*ALPHAI(j))/BETA(j), j=1,...,N,
	       are the generalized eigenvalues of the matrix pencil A - wB.

       BETA    (output) REAL array, dimension (N)
	       BETA(1:N) will be set to the (real) diagonal elements of B that
	       would  result from reducing A and B to Schur form and then fur‐
	       ther reducing them both to triangular form using unitary trans‐
	       formations s.t. the diagonal of B was non-negative real.	 Thus,
	       if A(j,j) is in a  1-by-1  block	 (i.e.,	 A(j+1,j)=A(j,j+1)=0),
	       then  BETA(j)=B(j,j).   Note  that the (real or complex) values
	       (ALPHAR(j) + i*ALPHAI(j))/BETA(j), j=1,...,N, are the  general‐
	       ized  eigenvalues  of  the  matrix  pencil  A - wB.  (Note that
	       BETA(1:N) will always be non-negative, and no BETAI  is	neces‐
	       sary.)

       Q       (input/output) REAL array, dimension (LDQ, N)
	       If  COMPQ='N',  then Q will not be referenced.  If COMPQ='V' or
	       'I', then the transpose of the orthogonal transformations which
	       are applied to A and B on the left will be applied to the array
	       Q on the right.

       LDQ     (input) INTEGER
	       The leading dimension of the array Q.  LDQ >= 1.	 If  COMPQ='V'
	       or 'I', then LDQ >= N.

       Z       (input/output) REAL array, dimension (LDZ, N)
	       If  COMPZ='N',  then Z will not be referenced.  If COMPZ='V' or
	       'I', then the orthogonal transformations which are applied to A
	       and B on the right will be applied to the array Z on the right.

       LDZ     (input) INTEGER
	       The  leading dimension of the array Z.  LDZ >= 1.  If COMPZ='V'
	       or 'I', then LDZ >= N.

       WORK    (workspace/output) REAL array, dimension (LWORK)
	       On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

       LWORK   (input) INTEGER
	       The dimension of the array WORK.	 LWORK >= max(1,N).

	       If LWORK = -1, then a workspace query is assumed;  the  routine
	       only  calculates	 the  optimal  size of the WORK array, returns
	       this value as the first entry of the WORK array, and  no	 error
	       message related to LWORK is issued by XERBLA.

       INFO    (output) INTEGER
	       = 0: successful exit
	       < 0: if INFO = -i, the i-th argument had an illegal value
	       =  1,...,N: the QZ iteration did not converge.  (A,B) is not in
	       Schur   form,   but   ALPHAR(i),	  ALPHAI(i),   and    BETA(i),
	       i=INFO+1,...,N  should  be  correct.   = N+1,...,2*N: the shift
	       calculation failed.  (A,B) is not in Schur form, but ALPHAR(i),
	       ALPHAI(i),  and BETA(i), i=INFO-N+1,...,N should be correct.  >
	       2*N:	various "impossible" errors.

FURTHER DETAILS
       Iteration counters:

       JITER  -- counts iterations.
       IITER  -- counts iterations run since ILAST was last
		 changed.  This is therefore reset only when a 1-by-1 or
		 2-by-2 block deflates off the bottom.

LAPACK version 3.0		 15 June 2000			     SHGEQZ(l)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net