幂法和反幂法求矩阵特征值课程

上传人:cl****1 文档编号:486293944 上传时间:2023-12-10 格式:DOC 页数:20 大小:370.50KB
返回 下载 相关 举报
幂法和反幂法求矩阵特征值课程_第1页
第1页 / 共20页
幂法和反幂法求矩阵特征值课程_第2页
第2页 / 共20页
幂法和反幂法求矩阵特征值课程_第3页
第3页 / 共20页
幂法和反幂法求矩阵特征值课程_第4页
第4页 / 共20页
幂法和反幂法求矩阵特征值课程_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《幂法和反幂法求矩阵特征值课程》由会员分享,可在线阅读,更多相关《幂法和反幂法求矩阵特征值课程(20页珍藏版)》请在金锄头文库上搜索。

1、题目幂法和反幂法求矩阵特征值具体内容随机产生一对称矩阵,对不同的原点位移和初值(至少取3个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量,并比较不同的原点位移和初值说明收敛。要求1。认真读题,了解问题的数学原形;选择合适问题求解的数值计算方法;.设计程序并进行计算;4对结果进行解释说明;采用方法及结果说明对于幂法和反幂法求解矩阵特征值和特征向量的问题将从问题分析,算法设计和流程图,理论依据,程序及结果进行阐述该问题.一问题的分析:求阶方阵A的特征值和特征向量,是实际计算中常常碰到的问题,如:机械、结构或电磁振动中的固有值问题等。对于阶矩阵A,若存在

2、数和n维向量x满足 Ax=x (1)则称为矩阵A的特征值,x为相应的特征向量。由高等代数知识可知,特征值是代数方程 -A=+a+a+a= ()的根。从表面上看,矩阵特征值与特征向量的求解问题似乎很简单,只需求解方程(2)的根,就能得到特征值,再解齐次方程组 (I-)x=0 (3)的解,就可得到相应的特征向量。上述方法对于很小时是可以的.但当n稍大时,计算工作量将以惊人的速度增大,并且由于计算带有误差,方程(2)未必是精确的特征方程,自然就不必说求解方程(2)与(3)的困难了.幂法是一种计算矩阵主特征值(矩阵按模最大的特征值)及对应特征向量的迭代方法,特别是用于大型稀疏矩阵。反幂法是计算海森伯格

3、阵或三角阵的对应一个给定近似特征值的特征向量的有效方法之一。二。算法设计及流程图1、幂法算法(1)取初始向量u(例如取=(1,1,1),置精度要求,置k=1.(2)计算=Au,m=max(v), = / (3)若 m= m|,则停止计算(m作为绝对值最大特征值,作为相应的特征向量)否则置k=k+,转()2、反幂法算法(1)取初始向量(例如取u(1,1,1)),置精度要求,置k=1。 (2)对A作LU分解,即A=LU()解线性方程组 Ly=,Uvy()计算 =ma(v),u=v/m(5)若|=|,则停止计算(1/m作为绝对值最小特征值,u作为相应的特征向量);否则置kk+,转(3).幂法流程图:

4、开始输入A;m,u,index=pow(A,1e-6)k=0;m1=0v=A*uvmax,i=max(abs(v)m=v(i);u=v/mabs(m-m1) 1e-6index=1;break;输出:m,u,index结束m1=m;k=k+1反幂法流程图开始输入A;m ,u,index =pow_inv(A,1e-6)k=0;m1=0v=invA*uvmax,i=max(abs(v)m=v(i);u=v/mabs(m-m1)则计算最大特征值与特征向量的迭代格式为v=u,m=mx(v), = v/ m (1)其中ax()表示向量v绝对值的最大分量.2、对于幂法的定理按式(1)计算出和u满足 m=

5、, u(二)反幂法算法的理论依据及推导反幂法是用来计算绝对值最小的特征值忽然相应的特征向量的方法。是对幂法的修改,可以给出更快的收敛性.1、反幂法的迭代格式与收敛性质设A是非奇异矩阵,则零不是特征值,并设特征值为|则按的特征值绝对值的大小排序,有 |对A实行幂法,就可得A的绝对值最大的特征值1和相应的特征向量,即A的绝对值最小的特征值和相应的特征向量。由于用A代替A作幂法计算,因此该方法称为反幂法,反幂法的迭代格式为 v= A,ma(),u=/ m ()2、对于反幂法的定理按式(2)计算出的m和满足: m, u=在式(2)中,需要用到A,这给计算带来很大的不方便,因此,把()式的第一式改为求解

6、线性方程组 A v=u (3)但由于在反幂法中,每一步迭代都需求解线性方程组(3)式,迭代做了大量的重复计算,为了节省工作量,可事先把矩阵A作L分解,即 ALU所以线性方程组(3)改为 y=,Uv=y四、算法程序设计代码幂法程序,在atlb中建立一个M文件并保存。%p。mfuctin m,u,inde,k=pow(A,u,ep,it_ax)if rgn4 imx=1000;eni nargi3 ep=5;endn=lengh();ix=0;k=0;m1=0;=; I=ey();AmI;whil =it_a v=*u;vmax,iax(bs(v)); m(i); uv/m; if abs(mm)

7、ep; ndex=; beak; nd m+m0; m1m; =k+1;en在mtl输入面板,输入A=rn(4);%产生一个4维随机矩阵B=A+A;u11 1;设立初始向量m,u,inde,k=pow(B,,e,iax)%最多可省略2个参数程序结束。在M文件中可以通过改变m0的值改变原点位移,从而达到原点位移加速.反幂法程序设计代码:在matlab中建立一个M文件并保存。%w_in.munctionm,nex,k=pow_nv(A,u,e,i_mx)f nargn4 itax=1000;endif nar3 ep1e-5;enn=ngt(A);ind0;0;m1;m=; Iye();T=A-m

8、I;i=i(T);while kB=ran(4);A=BBA =0。75 0.5776 0.34 1.0 0.776 1。1503 0.741 0.167 0344 0764 0027 0.93 1130 0。137 .413 1.248=1 1 1 1; m,u,inx,=pow(A,u)m .6813 = 。857 0.634 0.623 1.000inex = 1k 修改Me-3m = 28 = 08576 .64 05623 .000ind k= 01修改= 此时为幂法m = 2.815 086 06935 0。562 10000dx = k= 10修改U=1 34修改M0=1e-4m

9、 。613u= 0。8576 0。6934 0.623 100nex = 9修改=e-3m 26805u = 0。856 0。694 0.5622 1.00ndx= k = 7修改M=0 = 214u 08 0.64 0。5623 。000indx = 1k = 9修改U3 5 7修改M0=1e-4m 2.6819u = 0857 0。937 0.5624 1000nex 1k 7修改M0e3m= 2.814 = 。8576 0694 0.562 000indx= 0k 01修改M0=0= .6u = 。877 0.937 .5624 1.0000dex = 1k = 7总结以上,幂法如下:Umuindek 1 1 1000012.6810.576 。64 5631。000014

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号