下一节:注释与参考文献 上一级:更多关于GUPTRI及数值示例 上一节:GUPTRI的MATLAB接口

MATLAB示例

让我们考虑以下具有整数项的5 \times 5奇异矩阵束A - \lambda B
A = \begin{bmatrix} {22}&{34}&{31}&{31}&{17}\\ {45}&{45}&{42}&{19}&{29}\\ {39}&{47}&{49}&{26}&{34}\\ {27}&{31}&{26}&{21}&{15}\\ {38}&{44}&{44}&{24}&{30} \end{bmatrix}, \quad B = \begin{bmatrix} {13}&{26}&{25}&{17}&{24}\\ {31}&{46}&{40}&{26}&{37}\\ {26}&{40}&{19}&{25}&{25}\\ {16}&{25}&{27}&{14}&{23}\\ {24}&{35}&{18}&{21}&{22} \end{bmatrix}.
通过构造,此示例的KCF(Kronecker Canonical Form,克罗内克标准型)为 {\rm diag}( L_0, J_2(0), J_1(2), N_1, L^T_0 ). 我们通过调用计算A - \lambda B的GUPTRI形式
{\tt [S, T, P, Q, kstr] = guptri(A, B)};
即,我们使用EPSU、GAP和ZERO的默认值。此次调用的输出如下所示:
  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

kstr的第一部分(第一个-1左侧的所有列)应解释如下:

kstr的第二部分包含关于L^T_iN_i块的相应信息,第三部分包含关于规则部分大小的信息。对于此示例,我们发现计算的GUPTRI形式具有预期的Kronecker结构,包括一个L_0块( {\tt kstr}(1,1) - {\tt kstr}(2,1) = 1),一个 J_2(0)块( {\tt kstr}(2,2) - {\tt kstr}(1,3) = 1), 一个L_0^T块( {\tt kstr}(1,5) - {\tt kstr}(2,5) = 1), 一个N_1块( {\tt kstr}(2,5) - {\tt kstr}(1,6) = 1), 最后是一个对应于有限非零特征值2的1 \times 1规则部分( {\tt kstr}(1,8) = {\tt kstr}(2,8) = 1)。 L_0块对应于AB具有共同的列零空间(ST的第一列均为零)。 类似地,L^T_0块对应于AB具有共同的行零空间(ST的最后一行为零)。 由于L_0L^T_0是唯一的奇异块, A_r - \lambda B_r的大小为0 \times 1A_l - \lambda B_l的大小为1 \times 0。 GUPTRI形式中剩余的Kronecker结构包含在 S(\mathrm{1:4, 2:5})T(\mathrm{1:4, 2:5})中,即 ST的第1至4行和第2至5列: A_z - \lambda B_z = S(\mathrm{1:2, 2:3}) - \lambda T(\mathrm{1:2, 2:3})A_f - \lambda B_f = S(3,4) - \lambda T(3,4), 最后是 A_i - \lambda B_i = S(4,5) - \lambda T(4,5)

计算的变换矩阵PQ在机器精度范围内是正交的。 此外,

\delta = \Vert(A - A', B - B') \Vert _F = 2.8184e-13
是到具有KCF的\{A', B'\}的最近\{A + \delta A, B + \delta B\}的距离的上界,其中 A' = PSQ^{\ast}B' = PTQ^{\ast}。 对于此示例,\delta的大小为 O( {\epsilon_M}\Vert(A, B) \Vert _F ), 其中{\epsilon_M}是机器精度。

通过设置 {\tt ZERO} = 0并进行调用(使用EPSU和GAP的默认值)

{\tt [S, T, P, Q, kstr] = guptri(A, B, EPSU, GAP, ZERO)},
我们对A - \lambda B执行真正的等价变换:
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
ST的下三角部分中的微小非零元素对应于在GUPTRI算法的秩确定过程中被解释为数值零的奇异值。 使用ZERO默认值的结果对应于具有计算的ST作为其精确GUPTRI形式并具有kstr中报告的Kronecker结构的正则化矩阵束。

我们通过将看似无害的5 \times 5示例暴露给MATLAB函数eig来结束讨论。 调用[V,D] = eig(A,B)应该计算一个对角特征值矩阵D和一个全矩阵V,其列是对应的特征向量,使得A V = B V D。 MATLAB计算的D具有对角线项

        -1.8351e+16
         2.0000e+00
         7.2695e-01 - 4.1359e-25i
        -6.2535e-16 + 2.4399e-08i
        -5.9077e-16 - 2.4399e-08i
和一个条件数为 \Vert V \Vert \cdot \Vert V^{-1} \Vert = 8.8817e+08的特征向量矩阵V。 大的条件数和残差 \Vert A V - B V D \Vert = 15.595表明这不是一个无害的例子,需要进一步调查。 我们得出结论,只有通过guptri等软件工具,我们才能更全面地理解这种病态问题。 它们确实存在于实际应用中! 例如,在控制系统理论中的可控性和可观测性问题(参见 [447,120])。



下一节:注释与参考文献 上一级:更多关于GUPTRI及数值示例 上一节:GUPTRI的MATLAB接口
Susan Blackford 2000-11-20