Purpose
To compute orthogonal matrices Q1, Q2, Q3 for a real 2-by-2 or
4-by-4 regular pencil
( A11 0 ) ( B11 0 ) ( 0 D12 )
aAB - bD = a ( ) ( ) - b ( ), (1)
( 0 A22 ) ( 0 B22 ) ( D21 0 )
such that Q3' A Q2 and Q2' B Q1 are upper triangular, Q3' D Q1 is
upper quasi-triangular, and the eigenvalues with negative real
parts (if there are any) are allocated on the top. The submatrices
A11, A22, B11, B22 and D12 are upper triangular. If D21 is 2-by-2,
then all other blocks are nonsingular and the product
-1 -1 -1 -1
A22 D21 B11 A11 D12 B22 has a pair of complex conjugate
eigenvalues.
Specification
SUBROUTINE MB03ED( N, PREC, A, LDA, B, LDB, D, LDD, Q1, LDQ1, Q2,
$ LDQ2, Q3, LDQ3, DWORK, LDWORK, INFO )
C .. Scalar Arguments ..
INTEGER INFO, LDA, LDB, LDD, LDQ1, LDQ2, LDQ3, LDWORK,
$ N
DOUBLE PRECISION PREC
C .. Array Arguments ..
DOUBLE PRECISION A( LDA, * ), B( LDB, * ), D( LDD, * ),
$ DWORK( * ), Q1( LDQ1, * ), Q2( LDQ2, * ),
$ Q3( LDQ3, * )
Arguments
Input/Output Parameters
N (input) INTEGER
The order of the input pencil, N = 2 or N = 4.
PREC (input) DOUBLE PRECISION
The machine precision, (relative machine precision)*base.
See the LAPACK Library routine DLAMCH.
A (input) DOUBLE PRECISION array, dimension (LDA, N)
The leading N-by-N upper triangular part of this array
must contain the upper triangular matrix A of the pencil
aAB - bD. The strictly lower triangular part and the
entries of the (1,2) block are not referenced.
LDA INTEGER
The leading dimension of the array A. LDA >= N.
B (input) DOUBLE PRECISION array, dimension (LDB, N)
The leading N-by-N upper triangular part of this array
must contain the upper triangular matrix B of the pencil
aAB - bD. The strictly lower triangular part and the
entries of the (1,2) block are not referenced.
LDB INTEGER
The leading dimension of the array B. LDB >= N.
D (input/output) DOUBLE PRECISION array, dimension (LDD, N)
On entry, the leading N-by-N part of this array must
contain the matrix D of the pencil aAB - bD.
On exit, if N = 4, the leading N-by-N part of this array
contains the transformed matrix D in real Schur form.
If N = 2, this array is unchanged on exit.
LDD INTEGER
The leading dimension of the array D. LDD >= N.
Q1 (output) DOUBLE PRECISION array, dimension (LDQ1, N)
The leading N-by-N part of this array contains the first
orthogonal transformation matrix.
LDQ1 INTEGER
The leading dimension of the array Q1. LDQ1 >= N.
Q2 (output) DOUBLE PRECISION array, dimension (LDQ2, N)
The leading N-by-N part of this array contains the second
orthogonal transformation matrix.
LDQ2 INTEGER
The leading dimension of the array Q2. LDQ2 >= N.
Q3 (output) DOUBLE PRECISION array, dimension (LDQ3, N)
The leading N-by-N part of this array contains the third
orthogonal transformation matrix.
LDQ3 INTEGER
The leading dimension of the array Q3. LDQ3 >= N.
Workspace
DWORK DOUBLE PRECISION array, dimension (LDWORK)
If N = 2, then DWORK is not referenced.
LDWORK INTEGER
The dimension of the array DWORK.
If N = 4, then LDWORK >= 79. For good performance LDWORK
should be generally larger.
If N = 2, then LDWORK >= 0.
Error Indicator
INFO INTEGER
= 0: succesful exit;
= 1: the QZ iteration failed in the LAPACK routine DGGES;
= 2: another error occured during execution of DGGES.
Method
The algorithm uses orthogonal transformations as described on page 20 in [2].References
[1] Benner, P., Byers, R., Mehrmann, V. and Xu, H.
Numerical computation of deflating subspaces of skew-
Hamiltonian/Hamiltonian pencils.
SIAM J. Matrix Anal. Appl., 24 (1), pp. 165-190, 2002.
[2] Benner, P., Byers, R., Losse, P., Mehrmann, V. and Xu, H.
Numerical Solution of Real Skew-Hamiltonian/Hamiltonian
Eigenproblems.
Tech. Rep., Technical University Chemnitz, Germany,
Nov. 2007.
Numerical Aspects
The algorithm is numerically backward stable.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None