下一节:MATLAB中的示例
上一级:更多关于GUPTRI及数值示例
上一节:算术和空间复杂度
GUPTRI的MATLAB接口
GUPTRI 程序提供了一个 MEX-文件形式的 MATLAB 接口。以下我们将简要描述 guptri 函数的参数和输出,并通过一个小型数值示例展示其用法。
最通用的调用形式如下:
{\tt [S, T, P, Q, kstr] = guptri(A, B, EPSU, GAP, ZERO)},
其中,变换矩阵存储在 P 和 Q 中,P^{\ast}AQ 和 P^{\ast}BQ 分别存储在 S 和 T 中。计算得到的 Kronecker 结构由 kstr 揭示,具体描述见本节后续的示例讨论。
guptri 函数将一个 m \times n 的矩阵束 A - \lambda B 化为广义上三角形式
S - \lambda T = P^{\ast}(A - \lambda B)Q,如公式 (8.34)-(8.35) 所示:
S=\begin{bmatrix} A_r & * & * & * & * \\
0 &A_z & * & * & * \\
0 & 0 &A_f & * & * \\
0 & 0 & 0 &A_i& * \\
0 & 0 & 0 & 0 & A_l
\end{bmatrix}, \quad
T=\begin{bmatrix}B_r & * & * & * & * \\
0 &B_z & * & * & * \\
0 &0 &B_f& * & * \\
0 &0 &0 &B_i & * \\
0 &0 &0 & 0 &B_l
\end{bmatrix}, \tag{8.39}
其中,S 和 T 的对角块以阶梯形式描述了 A - \lambda B 的 Kronecker 结构(参见第 8.7.6 节)。
除了 \{A,B\} 外,用户还可以选择提供三个输入参数(EPSU、GAP 和 ZERO)来控制 GUPTRI 形式的计算。EPSU(数据相对不确定性)和 GAP(应至少为 1,典型值为 1000)用于进行秩判定,以确定输入矩阵束的 Kronecker 结构(参见第 页)。默认值为 {\tt GAP} = 1000,但对于某些示例可能需要其他值。ZERO 用作逻辑变量,当设置为真(ZERO 为非零值)时,强制 guptri 在约化过程中将小奇异值置零,从而使返回的矩阵束真正具有计算出的 GUPTRI 形式(参见第 页)。否则,返回的矩阵束是输入矩阵束的真实等价变换,且 GUPTRI 形式中的所有零块将包含小元素(通常大小不超过 EPSU)。
下一节:MATLAB中的示例
上一级:更多关于GUPTRI及数值示例
上一节:算术和空间复杂度
Susan Blackford
2000-11-20