隐式qr法求实矩阵的全部特征值matlab实现.doc
隐式QR法求实矩阵的全部特征值MATLAB实现要求用MATLAB编写通用子程序,利用隐式QR法求实矩阵的全部特征值和特征向量。思想隐式QR法实质上就是将一个矩阵SCHUR化,之后求解特征值就比较方便。而隐式QR法还需要用到HOUSEHOLD变换,以及上HESSENBERG变换。最后使用QR迭代,达到SCHUR化的结果。步骤1将矩阵A上HESSENBERG化(算法641),送而得到一个上HESSENBERG形矩阵H;2可约性判定,也就是判断次对角线元素是否非零,如果次对角线元素非零,则不可约。3SCHUR化,也就是通过QR迭代,将矩阵H变化成为某些次对角线元素变成0,同时还要满足,这些元素之间间隔最大为1,那么,所得到的最重的矩阵H就是一个SCHUR形矩阵。4假如两个等于0的次对角线元素间隔为0,那么该元素的上面一个元素,也就是H的对角线上的元素,即为其中一个特征值;假如两个等于0的次对角线元素间隔为1,那么在这两个元素之间就形成了一个22的矩阵,可以求解一个一元二次方程来得到两个共轭的特征值。实验代码详见附录2实验结果(代码相见附录2)(I)设矩阵A如下265394167210X求X09,10,11时的特征值和特征向量。X09R是特征值,V是特征向量矩阵。X1R是特征值,V是特征向量矩阵。X11R是特征值,V是特征向量矩阵。(II)求的所有根。0134X附录2隐式QR迭代主程序FUNCTIONR,VSCHURQRA向量R用来储存特征值HESSENBERG分解M,MSIZEAFORK1M2V,BHOUSEAK1M,KH1EYEMKBVV H2EYEMFORIK1MFORJK1MH2I,JH1IK,JKENDENDIFK1HH2ELSEHHH2ENDAK1M,KMH1AK1M,KMA1M,K1MA1M,K1MH1ENDU10E5FORI2MIFABSAI,I12X1BREAKENDII1ENDIFIMX0ENDEND子程序3FUNCTIONH22FRANCISAQR迭代H22AQ,QSIZEH22PQ1SH22P,PH22Q,QTH22P,PH22Q,QH22P,QH22Q,PXH221,1H221,1H221,2H222,1SH221,1TYH222,1H221,1H222,2SZH222,1H223,2FORK0Q3V,BHOUSEX,Y,Z WMAX1,KH22K1K3,WQEYE3BVV H22K1K3,WQRMINK4,QH221R,K1K3H221R,K1K3EYE3BVV XH22K2,K1YH22K3,K1IFKQ3ZH22K4,K1ENDENDV,BHOUSEX,Y H22Q1Q,Q2QEYE2BVV H22Q1Q,Q2QH221Q,Q1QH221Q,Q1QEYE2BVV 子程序4FUNCTIONV,BHOUSEXHOUSE变换NLENGTHXMMAXABSXXX/MQX2N X2NV11V2NX2NIFQ0B0ELSEAX12Q1/2IFX10V1X1AELSEV1Q/X1AENDB2V12/QV12VV/V1ENDVV