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