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