Purpose
To compute orthogonal matrices Q1 and Q2 for a real 2-by-2 or 4-by-4 regular pencil ( A11 0 ) ( 0 B12 ) aA - bB = a ( ) - b ( ), (1) ( 0 A22 ) ( B21 0 ) such that Q2' A Q1 is upper triangular, Q2' B Q1 is upper quasi- triangular, and the eigenvalues with negative real parts (if there are any) are allocated on the top. The notation M' denotes the transpose of the matrix M. The submatrices A11, A22, and B12 are upper triangular. If B21 is 2-by-2, then all the other blocks are -1 -1 nonsingular and the product A11 B12 A22 B21 has a pair of complex conjugate eigenvalues.Specification
SUBROUTINE MB03FD( N, PREC, A, LDA, B, LDB, Q1, LDQ1, Q2, LDQ2, $ DWORK, LDWORK, INFO ) C .. Scalar Arguments .. INTEGER INFO, LDA, LDB, LDQ1, LDQ2, LDWORK, N DOUBLE PRECISION PREC C .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), B( LDB, * ), DWORK( * ), $ Q1( LDQ1, * ), Q2( LDQ2, * )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/output) DOUBLE PRECISION array, dimension (LDA, N) On entry, the leading N-by-N part of this array must contain the matrix A of the pencil aA - bB. If N = 2, the diagonal elements only are referenced. On exit, if N = 4, the leading N-by-N part of this array contains the transformed upper triangular matrix of the generalized real Schur form of the pencil aA - bB. If N = 2, this array is unchanged on exit. LDA INTEGER The leading dimension of the array A. LDA >= N. B (input/output) DOUBLE PRECISION array, dimension (LDB, N) On entry, the leading N-by-N part of this array must contain the matrix B of the pencil aA - bB. If N = 2, the anti-diagonal elements only are referenced. On exit, if N = 4, the leading N-by-N part of this array contains the transformed real Schur matrix of the generalized real Schur form of the pencil aA - bB. If N = 2, this array is unchanged on exit. LDB INTEGER The leading dimension of the array B. LDB >= 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.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 >= 63. 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 29 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