Purpose
To solve for X = op(U)**T * op(U) either the generalized c-stable continuous-time Lyapunov equation T T op(A) * X * op(E) + op(E) * X * op(A) 2 T = - SCALE * op(B) * op(B), (1) or the generalized d-stable discrete-time Lyapunov equation T T op(A) * X * op(A) - op(E) * X * op(E) 2 T = - SCALE * op(B) * op(B), (2) where op(K) is either K or K**T for K = A, B, E, U. The Cholesky factor U of the solution is computed without first finding X. Furthermore, the auxiliary matrices -1 -1 M1 := op(U) * op(A) * op(E) * op(U) -1 -1 M2 := op(B) * op(E) * op(U) are computed in a numerically reliable way. The matrices A, B, E, M1, M2, and U are real 2-by-2 matrices. The pencil A - lambda * E must have a pair of complex conjugate eigenvalues. The eigenvalues must be in the open right half plane (in the continuous-time case) or inside the unit circle (in the discrete-time case). The matrices E and B are upper triangular. The resulting matrix U is upper triangular. The entries on its main diagonal are non-negative. SCALE is an output scale factor set to avoid overflow in U.Specification
SUBROUTINE SG03BX( DICO, TRANS, A, LDA, E, LDE, B, LDB, U, LDU, $ SCALE, M1, LDM1, M2, LDM2, INFO ) C .. Scalar Arguments .. CHARACTER DICO, TRANS DOUBLE PRECISION SCALE INTEGER INFO, LDA, LDB, LDE, LDM1, LDM2, LDU C .. Array Arguments .. DOUBLE PRECISION A(LDA,*), B(LDB,*), E(LDE,*), M1(LDM1,*), $ M2(LDM2,*), U(LDU,*)Arguments
Mode Parameters
DICO CHARACTER*1 Specifies whether the continuous-time or the discrete-time equation is to be solved: = 'C': Solve continuous-time equation (1); = 'D': Solve discrete-time equation (2). TRANS CHARACTER*1 Specifies whether the transposed equation is to be solved or not: = 'N': op(K) = K, K = A, B, E, U; = 'T': op(K) = K**T, K = A, B, E, U.Input/Output Parameters
A (input) DOUBLE PRECISION array, dimension (LDA,2) The leading 2-by-2 part of this array must contain the matrix A. LDA INTEGER The leading dimension of the array A. LDA >= 2. E (input) DOUBLE PRECISION array, dimension (LDE,2) The leading 2-by-2 upper triangular part of this array must contain the matrix E. LDE INTEGER The leading dimension of the array E. LDE >= 2. B (input) DOUBLE PRECISION array, dimension (LDB,2) The leading 2-by-2 upper triangular part of this array must contain the matrix B. LDB INTEGER The leading dimension of the array B. LDB >= 2. U (output) DOUBLE PRECISION array, dimension (LDU,2) The leading 2-by-2 part of this array contains the upper triangular matrix U. LDU INTEGER The leading dimension of the array U. LDU >= 2. SCALE (output) DOUBLE PRECISION The scale factor set to avoid overflow in U. 0 < SCALE <= 1. M1 (output) DOUBLE PRECISION array, dimension (LDM1,2) The leading 2-by-2 part of this array contains the matrix M1. LDM1 INTEGER The leading dimension of the array M1. LDM1 >= 2. M2 (output) DOUBLE PRECISION array, dimension (LDM2,2) The leading 2-by-2 part of this array contains the matrix M2. LDM2 INTEGER The leading dimension of the array M2. LDM2 >= 2.Error Indicator
INFO INTEGER = 0: successful exit; = 2: the eigenvalues of the pencil A - lambda * E are not a pair of complex conjugate numbers; = 3: the eigenvalues of the pencil A - lambda * E are not in the open right half plane (in the continuous- time case) or inside the unit circle (in the discrete-time case); = 4: the LAPACK routine ZSTEIN utilized to factorize M3 (see SLICOT Library routine SG03BS) failed to converge. This error is unlikely to occur.Method
The method used by the routine is based on a generalization of the method due to Hammarling ([1], section 6) for Lyapunov equations of order 2. A more detailed description is given in [2].References
[1] Hammarling, S.J. Numerical solution of the stable, non-negative definite Lyapunov equation. IMA J. Num. Anal., 2, pp. 303-323, 1982. [2] Penzl, T. Numerical solution of generalized Lyapunov equations. Advances in Comp. Math., vol. 8, pp. 33-48, 1998.Further Comments
If the solution matrix U is singular, the matrices M1 and M2 are properly set (see [1], equation (6.21)).Example
Program Text
NoneProgram Data
NoneProgram Results
None