nag_trans_hessenberg_observer (g13ewc) (PDF version)
g13 Chapter Contents
g13 Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_trans_hessenberg_observer (g13ewc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_trans_hessenberg_observer (g13ewc) reduces the matrix pair A,C  to lower or upper observer Hessenberg form using (and optionally accumulating) the unitary state-space transformations.

2  Specification

#include <nag.h>
#include <nagg13.h>
void  nag_trans_hessenberg_observer (Integer n, Integer p, Nag_ObserverForm reduceto, double a[], Integer tda, double c[], Integer tdc, double u[], Integer tdu, NagError *fail)

3  Description

nag_trans_hessenberg_observer (g13ewc) computes a unitary state-space transformation U, which reduces the matrix pair A,C  to give a compound matrix in one of the following observer Hessenberg forms:
n U A UT C UT = * . . . . . . * . . . . . . * . . . . . * . . . * * . . * . . . . * n p
if reduceto=Nag_UH_Observer, or
n C UT U A UT = * . . . . * . . * * . . . * . . . . . * . . . . . . * . . . . . . * p n
if reduceto=Nag_LH_Observer. If p>n , then the matrix C UT  is trapezoidal and if p + 1 n , then the matrix U A UT  is full.

4  References

van Dooren P and Verhaegen M (1985) On the use of unitary state-space transformations. In: Contemporary Mathematics on Linear Algebra and its Role in Systems Theory 47 AMS, Providence

5  Arguments

1:     nIntegerInput
On entry: the actual state dimension, n , i.e., the order of the matrix A .
Constraint: n1 .
2:     pIntegerInput
On entry: the actual output dimension, p .
Constraint: p1 .
3:     reducetoNag_ObserverFormInput
On entry: indicates whether the matrix pair A,C  is to be reduced to upper or lower observer Hessenberg form
reduceto=Nag_UH_Observer
Upper observer Hessenberg form).
reduceto=Nag_LH_Observer
Lower observer Hessenberg form).
Constraint: reduceto=Nag_UH_Observer or Nag_LH_Observer.
4:     a[n×tda]doubleInput/Output
Note: the i,jth element of the matrix A is stored in a[i-1×tda+j-1].
On entry: the leading n  by n  part of this array must contain the state transition matrix A  to be transformed.
On exit: the leading n  by n  part of this array contains the transformed state transition matrix U A UT .
5:     tdaIntegerInput
On entry: the stride separating matrix column elements in the array a.
Constraint: tdan .
6:     c[p×tdc]doubleInput/Output
Note: the i,jth element of the matrix C is stored in c[i-1×tdc+j-1].
On entry: the leading p  by n  part of this array must contain the output matrix C  to be transformed.
On exit: the leading p  by n  part of this array contains the transformed output matrix C UT .
7:     tdcIntegerInput
On entry: the stride separating matrix column elements in the array c.
Constraint: tdcn .
8:     u[n×tdu]doubleInput/Output
Note: the i,jth element of the matrix U is stored in u[i-1×tdu+j-1].
On entry: if u is defined, then the leading n  by n  part of this array must contain either a transformation matrix (e.g., from a previous call to this function) or be initialized as the identity matrix. If this information is not to be input then u must be set to the null pointer, i.e., (double *)0.
On exit: if u is defined, then the leading n  by n  part of this array contains the product of the input matrix U  and the state-space transformation matrix which reduces the given pair to observer Hessenberg form.
9:     tduIntegerInput
On entry: the stride separating matrix column elements in the array u.
Constraint: tdun  if u is defined.
10:   failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_2_INT_ARG_LT
On entry, tda=value  while n=value . These arguments must satisfy tdan . On entry tdc=value  while n=value . These arguments must satisfy tdcn . On entry tdu=value  while n=value . These arguments must satisfy tdun .
NE_BAD_PARAM
On entry, argument reduceto had an illegal value.
NE_INT_ARG_LT
On entry, n=value.
Constraint: n1.
On entry, p=value.
Constraint: p1.

7  Accuracy

The algorithm is backward stable.

8  Further Comments

The algorithm requires O n+m n 2  operations (see van Dooren and Verhaegen (1985)).

9  Example

To reduce the matrix pair A,C  to upper observer Hessenberg form.

9.1  Program Text

Program Text (g13ewce.c)

9.2  Program Data

Program Data (g13ewce.d)

9.3  Program Results

Program Results (g13ewce.r)


nag_trans_hessenberg_observer (g13ewc) (PDF version)
g13 Chapter Contents
g13 Chapter Introduction
NAG C Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012