典型用户会调用四个例程,即GUPTRI、REORDR、BOUND和EVALBD。以下我们将简要描述这些例程的功能。我们相信,了解奇异或接近奇异问题以及GUPTRI形式的最佳方式是从使用GUPTRI例程的MATLAB接口开始(参见第页)。
假设A - \lambda B的指定正则部分为上三角形式,则使用Givens旋转对1 \times 1对角块(广义特征值)进行重排序,这些旋转累积在先前的变换矩阵P和Q中。重排序后,由函数FTEST指定的特征值出现在A_{11} - \lambda B_{11}(参见公式8.36),即A - \lambda B指定正则部分的左上角,对应的约化子空间对可从P和Q的前导列轻松读取。
约化子空间和广义特征值的误差界在[119,122]中提出。我们通过示例说明了特征值和约化子空间是病态的,这意味着必须对A和B的可容许扰动\delta A和\delta B施加额外条件。BOUND和EVALBD计算约化子空间对的误差界,以及正则部分选定特征值的误差界。对于约化子空间误差界,要求(A + \delta A) - \lambda (B + \delta B)具有与A - \lambda B相同维数的约化子空间。对于特征值界,还要求(A + \delta A) - \lambda (B + \delta B)在其选定正则部分具有相同数量的特征值。这两个条件都由软件自动验证。
基于输入参数,BOUND决定适用的扰动定理,并计算特征值和约化子空间误差界所需的量。EVALBD接收BOUND的输出,并根据给定的输入{\tt DELTA} = {\Vert(\delta A , \delta B) \Vert _E},评估适当定理的约化子空间界。