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).