隐式QR法求实矩阵的全部特征值matlab实现
隐式QR法求实矩阵的全部特征值matlab实现
要求:用matlab编写通用子程序,利用隐式QR法求实矩阵的全部特征值和特征向量。
思想:隐式QR法实质上就是将一个矩阵 Schur化,之后求解特征值就比较方便。而隐式QR法还需要用到household变换,以及上hessenberg变换。最后使用QR迭代,达到Schur化的结果。
步骤:
1.将矩阵A上hessenberg化(算法6.4.1),送而得到一个上hessenberg形矩阵H;
2.可约性判定,也就是判断次对角线元素是否非零,如果次对角线元素非零,则不可约。
3.Schur化,也就是通过QR迭代,将矩阵H变化成为某些次对角线元素变成0,同时还要满足,这些元素之间间隔最大为1,那么,所得到的最重的矩阵H就是一个Schur形矩阵。
4.假如两个等于0的次对角线元素间隔为0,那么该元素的上面一个元素,也就是H的对角线上的元素,即为其中一个特征值;假如两个等于0的次对角线元素间隔为1,那么在这两个元素之间就形成了一个2*2的矩阵,可以求解一个一元二次方程来得到两个共轭的特征值。
实验代码:详见附录2
实验结果:(代码相见附录2)
(i)设矩阵A如下:
9.1 4.2 3.2 6.13.02.64.0 5.34.71.6 1.79.4x 4.93.56.2
求x=0.9, 1.0, 1.1时的特征值和特征向量。