SB04QY

Constructing and solving a linear algebraic system whose coefficient matrix (stored compactly) has zeros below the first subdiagonal

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

Purpose

  To construct and solve a linear algebraic system of order M whose
  coefficient matrix is in upper Hessenberg form. Such systems
  appear when solving discrete-time Sylvester equations using the
  Hessenberg-Schur method.

Specification
      SUBROUTINE SB04QY( N, M, IND, A, LDA, B, LDB, C, LDC, D, IPR,
     $                   INFO )
C     .. Scalar Arguments ..
      INTEGER           INFO, IND, LDA, LDB, LDC, M, N
C     .. Array Arguments ..
      INTEGER           IPR(*)
      DOUBLE PRECISION  A(LDA,*), B(LDB,*), C(LDC,*), D(*)

Arguments

Input/Output Parameters

  N       (input) INTEGER
          The order of the matrix B.  N >= 0.

  M       (input) INTEGER
          The order of the matrix A.  M >= 0.

  IND     (input) INTEGER
          The index of the column in C to be computed.  IND >= 1.

  A       (input) DOUBLE PRECISION array, dimension (LDA,M)
          The leading M-by-M part of this array must contain an
          upper Hessenberg matrix.

  LDA     INTEGER
          The leading dimension of array A.  LDA >= MAX(1,M).

  B       (input) DOUBLE PRECISION array, dimension (LDB,N)
          The leading N-by-N part of this array must contain a
          matrix in real Schur form.

  LDB     INTEGER
          The leading dimension of array B.  LDB >= MAX(1,N).

  C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
          On entry, the leading M-by-N part of this array must
          contain the coefficient matrix C of the equation.
          On exit, the leading M-by-N part of this array contains
          the matrix C with column IND updated.

  LDC     INTEGER
          The leading dimension of array C.  LDC >= MAX(1,M).

Workspace
  D       DOUBLE PRECISION array, dimension (M*(M+1)/2+2*M)

  IPR     INTEGER array, dimension (2*M)

Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          > 0:  if INFO = IND, a singular matrix was encountered.

Method
  A special linear algebraic system of order M, with coefficient
  matrix in upper Hessenberg form is constructed and solved. The
  coefficient matrix is stored compactly, row-wise.

References
  [1] Golub, G.H., Nash, S. and Van Loan, C.F.
      A Hessenberg-Schur method for the problem AX + XB = C.
      IEEE Trans. Auto. Contr., AC-24, pp. 909-913, 1979.

  [2] Sima, V.
      Algorithms for Linear-quadratic Optimization.
      Marcel Dekker, Inc., New York, 1996.

Numerical Aspects
  None.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index