Next: Notes and References Up: More on GUPTRI and Previous: MATLAB Interface to GUPTRI.   Contents   Index

#### Example in MATLAB.

Let us consider the following singular pencil with integer entries:

By construction the KCF of this example is . We compute the GUPTRI form of by the call

i.e., we use the default values on EPSU, GAP, and ZERO. The output from this call is displayed below:
  S =
0         0  -31.2179   69.7186 -142.6727
0         0         0   15.8532  -42.1039
0         0         0  -15.5639   -3.4712
0         0         0         0   13.5979
0         0         0         0         0

T =
0  -21.5942  -22.1660   44.5153 -110.9818
0         0  -25.0581   19.3190  -43.8905
0         0         0   -7.7820    9.2041
0         0         0         0         0
0         0         0         0         0

P =
0.2697    0.4520    0.8072    0.0226   -0.2660
0.4045    0.5101   -0.4985    0.5400   -0.1900
0.6742   -0.3818    0.1705    0.2136    0.5701
0.1348    0.5620   -0.1771   -0.6188    0.5017
0.5394   -0.2718   -0.1986   -0.5285   -0.5625

Q =
-0.4044    0.1510    0.4636    0.7253   -0.2697
0.6985   -0.4097    0.1200    0.1975   -0.5394
0.1470    0.6896   -0.5633    0.1481   -0.4045
-0.4044   -0.0310    0.1859   -0.5886   -0.6742
-0.4044   -0.5769   -0.6471    0.2582   -0.1348

kstr =

2     1     0    -1     2     0    -1     1    -1
1     1     0    -1     1     0    -1     1    -1


The first part of kstr (all the columns to the left of the first -1) shall be interpreted as follows:

• The number of blocks is .
• The number of blocks is .

The second part of kstr contains the corresponding information about and blocks and the third contains information about the size of the regular part. For this example we see that the computed GUPTRI form has the expected Kronecker structure, including one block ( ), one block ( ), one block ( ), one block ( ), and finally a regular part corresponding to the finite nonzero eigenvalue 2 ( ). The block corresponds to and having a common column null space (both and have a first column with zero entries). Similarly, the block corresponds to and having a common row null space (both and have a last row with zero entries). Since and are the only singular blocks, is of size and is of size . The remaining Kronecker structure in the GUPTRI form is contained in and , i.e., rows 1 to 4 and columns 2 to 5 of and : , , and finally .

The computed transformation matrices and are orthogonal to machine precision accuracy. Moreover,

is an upper bound on the distance to the closest with the KCF of , where and . For this example, is of size , where is the machine precision.

By setting and making the call (with the default values on EPSU and GAP)

we perform a true equivalence transformation of :
S =

-2.9227e-15            0   3.1218e+01   6.9719e+01  -1.4267e+02
2.0749e-15  -3.0175e-15   1.7377e-14   1.5853e+01  -4.2104e+01
-5.4031e-15  -1.7747e-15   8.8818e-16  -1.5564e+01  -3.4712e+00
1.6694e-15  -4.4157e-15   2.2204e-15            0   1.3598e+01
-8.3206e-16   3.1071e-16   1.9984e-15  -2.2204e-16            0

T =

-6.9809e-31   2.1594e+01   2.2166e+01   4.4515e+01  -1.1098e+02
3.4328e-31            0   2.5058e+01   1.9319e+01  -4.3890e+01
1.7764e-15            0            0  -7.7820e+00   9.2041e+00
-5.5511e-16            0            0            0  -7.5221e-15
0            0            0            0   3.1465e-15

The tiny nonzero elements in the lower triangular parts of and correspond to the singular values that are interpreted as numerically zero in the rank determination process of the GUPTRI algorithm. The results with the default value on ZERO correspond to the regularized pencil that has the computed and as its exact GUPTRI form with Kronecker structure as reported in kstr.

We end the discussion by exposing our seemingly harmless example to the MATLAB function eig. The call [V,D] = eig(A,B) is supposed to compute a diagonal eigenvalue matrix and a full matrix whose columns are the corresponding eigenvectors so that . MATLAB computes a with the diagonal entries

        -1.8351e+16
2.0000e+00
7.2695e-01 - 4.1359e-25i
-6.2535e-16 + 2.4399e-08i
-5.9077e-16 - 2.4399e-08i

and an eigenvector matrix with condition number . The large condition number and the residual signal that this is not a harmless example and further investigations are necessary. We conclude that it is only by software tools like guptri that we can get a more complete understanding of such ill-posed problems. And they do exist in real applications! Examples include controllability and observability issues in linear systems theory (see [447,120]).

Next: Notes and References Up: More on GUPTRI and Previous: MATLAB Interface to GUPTRI.   Contents   Index
Susan Blackford 2000-11-20