NAG C Library Function Document

nag_trans_hessenberg_observer (g13ewc)

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:     n IntegerInput
On entry: the actual state dimension, n , i.e., the order of the matrix A .
Constraint: n1 .
2:     p IntegerInput
On entry: the actual output dimension, p .
Constraint: p1 .
3:     reduceto Nag_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:     tda IntegerInput
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:     tdc IntegerInput
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 not NULL, 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 NULL.
On exit: if u is not NULL, 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:     tdu IntegerInput
On entry: the stride separating matrix column elements in the array u.
Constraint: tdun  if u is defined.
10:   fail NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

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
Parallelism and Performance

nag_trans_hessenberg_observer (g13ewc) is not threaded in any implementation.

9
Further Comments

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

10
Example

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

10.1
Program Text

Program Text (g13ewce.c)

10.2
Program Data

Program Data (g13ewce.d)

10.3
Program Results

Program Results (g13ewce.r)