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 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,
By setting
and making the call (with the
default values on EPSU and GAP)
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-15The 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-08iand 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]).