An interface to MATLAB in terms of a MEX-file is available for the routine GUPTRI. In the following we give a brief description of the arguments and output of the guptri function and demonstrate its usage on a small numerical example.
The most general call,
The guptri function reduces an pencil
to generalized upper triangular form
as in
(8.34)-(8.35):
S=
ccccc
A_r & * & * & * & *
0 &A_z & * & * & *
0 & 0 &A_f & * & *
0 & 0 & 0 &A_i& *
0 & 0 & 0 & 0 & A_l
,
T=
ccccc
B_r & * & * & * & *
0 &B_z & * & * & *
0 &0 &B_f& * & *
0 &0 &0 &B_i & *
0 &0 &0 & 0 &B_l
,
where the diagonal blocks of and in staircase forms
describe the Kronecker structure of
(see §8.7.6).
Besides , the user can optionally provide three input parameters (EPSU, GAP, and ZERO) that control the computation of the GUPTRI form. EPSU (relative uncertainty in data) and GAP (should be at least 1 and nominally 1000) are used to make rank decisions in order to determine the Kronecker structure of an input pencil (see p. ). The default value is , but other values may be necessary for certain examples. ZERO is used as a logical variable, which when set to true (ZERO = nonzero value) forces guptri to zero out small singular values during the reduction process so that the returned pencil really has the computed GUPTRI form (see p. ). Otherwise, the returned pencil is a true equivalence transformation of the input pencil and all zero blocks in the GUPTRI form will contain small entries (normally of size EPSU at most).