本模块演示计算一个矩阵所有特征值和特征向量的带位移的QR迭代算法. 将给定的矩阵作为初始矩阵,每一步迭代都计算当前的矩阵的QR分解,然后将分解得到的因子Q和R颠倒次序相乘, 即RQ, 这就是新的矩阵. 这个过程一直重复下去, 得到的正交相似的矩阵序列收敛于上三角形式的矩阵, 其对角元就是原始矩阵的特征值,而特征向量可以通过将所有的正交因子相乘而得到. 使用标量位移技术可加速这个迭代过程的收敛.
使用者首先选择矩阵的阶数,然后通过选择预设例子(4x4 Example)、随机矩阵(Random)或者手工输入矩阵元素的方式设定待处理的矩阵. 通过重复点击"NEXT"按钮或当前加亮显示的步骤,一步一步地执行QR迭代法的过程. 对每一步迭代,使用者可以选择三种位移策略: 瑞利商位移、威尔金森位移,或者自行输入想要的位移值. 坐边的数组显示了矩阵的变化,而右边的两个数组分别显示计算出的Q和R因子. 对于非对称矩阵,QR迭代法收敛到(块)上三角形式,而对于对称矩阵则收敛到对角阵. 计算得到的特征值就是极限矩阵的对角元(或者对角块的特征值),而特征向量通过所有Q矩阵的连乘积的列向量得到(后者没有显示出来).
操作与思考: 课本上给出的简单位移策略是本演示模块中的哪种位移策略? 通过例子比较,三种位移策略的加速效果是否有什么规律?
参考内容: 课本5.4.3小节相关内容.