IB01OD

Estimating the system order

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

Purpose

  To estimate the system order, based on the singular values of the
  relevant part of the triangular factor of the concatenated block
  Hankel matrices.

Specification
      SUBROUTINE IB01OD( CTRL, NOBR, L, SV, N, TOL, IWARN, INFO )
C     .. Scalar Arguments ..
      DOUBLE PRECISION   TOL
      INTEGER            INFO, IWARN, L, N, NOBR
      CHARACTER          CTRL
C     .. Array Arguments ..
      DOUBLE PRECISION   SV(*)

Arguments

Mode Parameters

  CTRL    CHARACTER*1
          Specifies whether or not the user's confirmation of the
          system order estimate is desired, as follows:
          = 'C':  user's confirmation;
          = 'N':  no confirmation.
          If  CTRL = 'C',  a reverse communication routine,  IB01OY,
          is called, and, after inspecting the singular values and
          system order estimate,  n,  the user may accept  n  or set
          a new value.
          IB01OY  is not called by the routine if CTRL = 'N'.

Input/Output Parameters
  NOBR    (input) INTEGER
          The number of block rows,  s,  in the processed input and
          output block Hankel matrices.  NOBR > 0.

  L       (input) INTEGER
          The number of system outputs.  L > 0.

  SV      (input) DOUBLE PRECISION array, dimension ( L*NOBR )
          The singular values of the relevant part of the triangular
          factor from the QR factorization of the concatenated block
          Hankel matrices.

  N       (output) INTEGER
          The estimated order of the system.

Tolerances
  TOL     DOUBLE PRECISION
          Absolute tolerance used for determining an estimate of
          the system order. If  TOL >= 0,  the estimate is
          indicated by the index of the last singular value greater
          than or equal to  TOL.  (Singular values less than  TOL
          are considered as zero.) When  TOL = 0,  an internally
          computed default value,  TOL = NOBR*EPS*SV(1),  is used,
          where  SV(1)  is the maximal singular value, and  EPS  is
          the relative machine precision (see LAPACK Library routine
          DLAMCH). When  TOL < 0,  the estimate is indicated by the
          index of the singular value that has the largest
          logarithmic gap to its successor.

Warning Indicator
  IWARN   INTEGER
          = 0:  no warning;
          = 3:  all singular values were exactly zero, hence  N = 0.
                (Both input and output were identically zero.)

Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          < 0:  if INFO = -i, the i-th argument had an illegal
                value.

Method
  The singular values are compared to the given, or default TOL, and
  the estimated order  n  is returned, possibly after user's
  confirmation.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index