Purpose
To compute the inverse (Ai-lambda*Ei,Bi,Ci,Di) of a given descriptor system (A-lambda*E,B,C,D).Specification
SUBROUTINE AG07BD( JOBE, N, M, A, LDA, E, LDE, B, LDB, C, LDC, $ D, LDD, AI, LDAI, EI, LDEI, BI, LDBI, CI, LDCI, $ DI, LDDI, INFO ) C .. Scalar Arguments .. CHARACTER JOBE INTEGER INFO, LDA, LDAI, LDB, LDBI, LDC, LDCI, $ LDD, LDDI, LDE, LDEI, M, N C .. Array Arguments .. DOUBLE PRECISION A(LDA,*), AI(LDAI,*), B(LDB,*), BI(LDBI,*), $ C(LDC,*), CI(LDCI,*), D(LDD,*), DI(LDDI,*), $ E(LDE,*), EI(LDEI,*)Arguments
Mode Parameters
JOBE CHARACTER*1 Specifies whether E is a general square or an identity matrix as follows: = 'G': E is a general square matrix; = 'I': E is the identity matrix.Input/Output Parameters
N (input) INTEGER The order of the square matrices A and E; also the number of rows of matrix B and the number of columns of matrix C. N >= 0. M (input) INTEGER The number of system inputs and outputs, i.e., the number of columns of matrices B and D and the number of rows of matrices C and D. M >= 0. A (input) DOUBLE PRECISION array, dimension (LDA,N) The leading N-by-N part of this array must contain the state matrix A of the original system. LDA INTEGER The leading dimension of the array A. LDA >= MAX(1,N). E (input) DOUBLE PRECISION array, dimension (LDE,N) If JOBE = 'G', the leading N-by-N part of this array must contain the descriptor matrix E of the original system. If JOBE = 'I', then E is assumed to be the identity matrix and is not referenced. LDE INTEGER The leading dimension of the array E. LDE >= MAX(1,N), if JOBE = 'G'; LDE >= 1, if JOBE = 'I'. B (input) DOUBLE PRECISION array, dimension (LDB,M) The leading N-by-M part of this array must contain the input matrix B of the original system. LDB INTEGER The leading dimension of the array B. LDB >= MAX(1,N). C (input) DOUBLE PRECISION array, dimension (LDC,N) The leading M-by-N part of this array must contain the output matrix C of the original system. LDC INTEGER The leading dimension of the array C. LDC >= MAX(1,M). D (input) DOUBLE PRECISION array, dimension (LDD,M) The leading M-by-M part of this array must contain the feedthrough matrix D of the original system. LDD INTEGER The leading dimension of the array D. LDD >= MAX(1,M). AI (output) DOUBLE PRECISION array, dimension (LDAI,N+M) The leading (N+M)-by-(N+M) part of this array contains the state matrix Ai of the inverse system. If LDAI = LDA >= N+M, then AI and A can share the same storage locations. LDAI INTEGER The leading dimension of the array AI. LDAI >= MAX(1,N+M). EI (output) DOUBLE PRECISION array, dimension (LDEI,N+M) The leading (N+M)-by-(N+M) part of this array contains the descriptor matrix Ei of the inverse system. If LDEI = LDE >= N+M, then EI and E can share the same storage locations. LDEI INTEGER The leading dimension of the array EI. LDEI >= MAX(1,N+M). BI (output) DOUBLE PRECISION array, dimension (LDBI,M) The leading (N+M)-by-M part of this array contains the input matrix Bi of the inverse system. If LDBI = LDB >= N+M, then BI and B can share the same storage locations. LDBI INTEGER The leading dimension of the array BI. LDBI >= MAX(1,N+M). CI (output) DOUBLE PRECISION array, dimension (LDCI,N+M) The leading M-by-(N+M) part of this array contains the output matrix Ci of the inverse system. If LDCI = LDC, CI and C can share the same storage locations. LDCI INTEGER The leading dimension of the array CI. LDCI >= MAX(1,M). DI (output) DOUBLE PRECISION array, dimension (LDDI,M) The leading M-by-M part of this array contains the feedthrough matrix Di = 0 of the inverse system. DI and D can share the same storage locations. LDDI INTEGER The leading dimension of the array DI. LDDI >= MAX(1,M).Error Indicator
INFO INTEGER = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.Method
The matrices of the inverse system are computed with the formulas ( E 0 ) ( A B ) ( 0 ) Ei = ( ) , Ai = ( ) , Bi = ( ), ( 0 0 ) ( C D ) ( -I ) Ci = ( 0 I ), Di = 0.Further Comments
The routine does not perform an invertibility test. This check can be performed by using the SLICOT routines AB08NX or AG08BY.Example
Program Text
NoneProgram Data
NoneProgram Results
None
Click here to get a compressed (gzip) tar file containing the source code of the routine, the example program, data, documentation, and related files.
Return to index