TB01XD

Special similarity transformation of the dual state-space system

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

  To apply a special transformation to a system given as a triple
  (A,B,C),        

     A <-- P * A' * P,  B <-- P * C',  C <-- B' * P,         

  where P is a matrix with 1 on the secondary diagonal, and with 0
  in the other entries. Matrix A can be specified as a band matrix.
  Optionally, matrix D of the system can be transposed. This
  transformation is actually a special similarity transformation of
  the dual system.

Specification
      SUBROUTINE TB01XD( JOBD, N, M, P, KL, KU, A, LDA, B, LDB, C, LDC,
     $                   D, LDD, INFO )
C     .. Scalar Arguments ..
      CHARACTER          JOBD
      INTEGER            INFO, KL, KU, LDA, LDB, LDC, LDD, M, N, P
C     .. Array Arguments ..
      DOUBLE PRECISION   A( LDA, * ), B( LDB, * ), C( LDC, * ), 
     $                   D( LDD, * )

Arguments

Mode Parameters

  JOBD    CHARACTER*1
          Specifies whether or not a non-zero matrix D appears in 
          the given state space model:
          = 'D':  D is present;
          = 'Z':  D is assumed a zero matrix.

Input/Output Parameters
  N       (input) INTEGER
          The order of the matrix A, the number of rows of matrix B
          and the number of columns of matrix C.
          N represents the dimension of the state vector.  N >= 0.
  
  M       (input) INTEGER.
          The number of columns of matrix B.
          M represents the dimension of input vector.  M >= 0.
  
  P       (input) INTEGER.
          The number of rows of matrix C.
          P represents the dimension of output vector.  P >= 0.

  KL      (input) INTEGER
          The number of subdiagonals of A to be transformed.
          MAX( 0, N-1 ) >= KL >= 0.

  KU      (input) INTEGER
          The number of superdiagonals of A to be transformed.
          MAX( 0, N-1 ) >= KU >= 0.

  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
          On entry, the leading N-by-N part of this array must 
          contain the system state matrix A.
          On exit, the leading N-by-N part of this array contains  
          the transformed (pertransposed) matrix P*A'*P.
  
  LDA     INTEGER
          The leading dimension of the array A.  LDA >= MAX(1,N).
  
  B       (input/output) DOUBLE PRECISION array, dimension 
          (LDB,MAX(M,P))
          On entry, the leading N-by-M part of this array must 
          contain the original input/state matrix B. 
          On exit, the leading N-by-P part of this array contains
          the dual input/state matrix P*C'.
  
  LDB     INTEGER
          The leading dimension of the array B.
          LDB >= MAX(1,N) if M > 0 or  P > 0.
          LDB >= 1        if M = 0 and P = 0.
  
  C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
          On entry, the leading P-by-N part of this array must 
          contain the original state/output matrix C. 
          On exit, the leading M-by-N part of this array contains
          the dual state/output matrix B'*P.
  
  LDC     INTEGER
          The leading dimension of array C.
          LDC >= MAX(1,M,P) if N > 0.
          LDC >= 1          if N = 0.
  
  D       (input/output) DOUBLE PRECISION array, dimension 
          (LDD,MAX(M,P))
          On entry, if JOBD = 'D', the leading P-by-M part of this 
          array must contain the original direct transmission
          matrix D.
          On exit, if JOBD = 'D', the leading M-by-P part of this
          array contains the transposed direct transmission matrix
          D'. The array D is not referenced if JOBD = 'Z'.

  LDD     INTEGER
          The leading dimension of array D.  
          LDD >= MAX(1,M,P) if JOBD = 'D'.
          LDD >= 1          if JOBD = 'Z'.

Error Indicator
  INFO    INTEGER
          = 0:  successful exit.
          < 0:  if INFO = -i, the i-th argument had an illegal 
                value.
  
Method
  The rows and/or columns of the matrices of the triplet (A,B,C)
  and, optionally, of the matrix D are swapped in a special way.
  
Numerical Aspects
  None.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index