反幂法matlab程序,数值分析幂法和反幂法.doc

《数值分析幂法和反幂法.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《数值分析幂法和反幂法.doc》文档请在天天文库搜索。

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

2、与特征向量的求解问题似乎很简单,只需求解方程(2)的根,就能得到特征值,再解齐次方程组 (I-A)x=0 (3)的解,就可得到相应的特征向量。上述方法对于n很小时是可以的。但当n稍大时,计算工作量将以惊人的速度增大,并且由于计算带有误差,方程(2)未必是精确的特征方程,自然就不必说求解方程(2)与(3)的困难了。幂法是一种计算矩阵主特征值(矩阵按模最大的特征值)及对应特征向量的迭代方法,特别是用于大型稀疏矩阵。反幂法是计算海森伯格阵或三角阵的对应一个给定近似特征值的特征向量的有效方法之一。二.算法设计及流程图1、幂法算法(1)取初始向量u(例如取u=(1,1,…1)),置精度要求,置k=1. (2)计算v=Au,m=max(v), u= v/ m(3)若| m= m|

3、u(例如取u=(1,1,…1)),置精度要求,置k=1. (2)对A作LU分解,即A=LU(3)解线性方程组 Ly=u,Uv=y(4)计算 m=max(v), u= v/ m(5)若|m=m|

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

5、的不方便,因此,把(2)式的第一式改为求解线性方程组 A v= u (3)但由于在反幂法中,每一步迭代都需求解线性方程组(3)式,迭代做了大量的重复计算,为了节省工作量,可事先把矩阵A作LU分解,即 A=LU所以线性方程组(3)改为 Ly=u,Uv=y四、算法程序设计代码幂法程序,在matlab中建立一个M文件并保存。%pow.mfunction [m,u,index,k]=pow(A,u,ep,it_max)if nargin<4 it_max=1000;endif nargin<3 ep=1e-5;endn=length(A);index=0;k=0;m1=0;m0=0; I=eye(n);T=A-m0*I;while k<=it_max v=T*u;[vmax,i]=max(abs(v)); m=v(i); u=v/m; if abs(m-m1)

6、dex=1; break; end m=m+m0; m1=m; k=k+1;end在matlab输入面板,输入A=rand(4);%产生一个4维随机矩阵B=A+A’;u=[1 1 1 1]’;%设立初始向量[m,u,index,k]=pow(B,u,ep,it_max)%最多可省略2个参数程序结束。在M文件中可以通过改变m0的值改变原点位移,从而达到原点位移加速。反幂法程序设计代码:在matlab中建立一个M文件并保存。%pow_inv.mfunction[m,u,index,k]=pow_inv(A,u,ep,it_max)if nargin<4 it_max=1000;endif nargin<3 ep=1e-5;endn=length(A);index=0;k=0;m1=0;m0=0; I=eye(n);T=A-m0*I;invT=inv(T);while k<=i。

7、t_max v=invT*u; [vmax,i]=max(abs(v)); m=v(i); u=v/m; if abs(m-m1)>B=rand(4);>>A=B+B’A =0.2675 0.5776 0.6344 1.3130 0.5776 1.1503 0.7641 0.1367 0.6344 0.7641 0.0257 0.4193 1.3130 0.1367 0.4193 1.2248>> u=[1 1 1 1]';>> [m,u,index,k]=pow(A,u)m = 2.6813u = 0.8576 0.6934 0.5623 1.0000index = 1k =49修改M0=1e-3m = 2.6814u = 0.8576 0.6934 0.5623 1.0000index = 0k = 1001修改M0=0 %此时为幂法m = 2。

8、.6815u = 0.8576 0.6935 0.5623 1.0000index = 1k = 10修改U=[1 2 3 4]修改M0=1e-4m = 2.6813u = 0.8576 0.6934 0.5623 1.0000index = 1k = 9修改M0=1e-3m = 2.6805u = 0.8576 0.6934 0.5622 1.0000index = 1k = 7修改M0=0m = 2.6814u = 0.8576 0.6934 0.5623 1.0000index = 1k = 9修改U=[3 5 6 7]修改M0=1e-4m = 2.6819u = 0.8577 0.6937 0.5624 1.0000index = 1k = 7修改M0=1e-3m = 2.6814u = 0.8576 0.6934 0.5623 1.0000index = 0k = 1001修改M。

9、0=0m = 2.6820u = 0.8577 0.6937 0.5624 1.0000index = 1k = 7总结以上,幂法如下:Um0muindexk[1 1 1 1]0.00012.6813[0.8576 0.6934 0.5623 1.0000]1490.0012.6814[0.5876 0.6934 0.5623 1.0000]0100102.6815[0.8576 0.6935 0.5623 1.0000]110[1 2 3 4]0.00012.6813[0.8576 0.6934 0.5623 1.0000]190.0012.6805[0.8576 0.6934 0.5622 1.0000]1702.6814[0.8576 0.6934 0.5623 1.0000]19[3 5 6 7]0.00012.6819[0.8577 0.6937 0.5624 1.0000]17。

10、0.0012.6914[0.8576 0.6934 0.5623 1.0000]0100102.692[0.8577 0.6937 0.5624 1.0000]17反幂法结果显示:在m0为0时M0=0.001 U=[1 1 1 1]M0=0.1 u=[1 1 1 1]M0=0 u=[1 3 5 7]M0=0.1 u=[1 3 5 7]M0=0.5 u=[1 3 5 7]M0=0 u=[2 3 4 5]M0=0.1 u=[2 3 4 5]M0=0.7 u=[2 3 4 5]综上,反幂法结果如下:um0muindexk[1 1 1 1]0.10.3847[-0.8996 1.0000 0.2726 -0.2364]1150.0010.3847[-0.8996 1.0000 0.2726 -0.2364]11600.3847[-0.8996 1.0000 0.2726 -0.2364]116[1。

11、 3 5 7]0.50.3847[-0.8995 1.0000 0.2726 -0.2364]1270.10.3847[-0.8996 1.0000 0.2726 -0.2364]11700.3847[-0.8996 1.0000 0.2726 -0.2364]120[2 3 4 5]0.70.7091[-0.6962 -0.4497 0.2196 1.0000]150.10.3847[-0.8995 1.0000 0.2726 -0.2364]11700.3847[-0.8996 1.0000 0.2726 -0.2364]119五、结果分析采用幂法和反幂法,求矩阵的最大和最小特征值,从原理上看,这两种方法都是迭代法,因此迭代初始向量的选择对计算结果会产生一定影响,主要表现在收敛速度上。同时,原点位移m的选取也影响收敛的速度。但原点位移m0的适当选取依赖于对矩阵A的大致了解。成员辛志贤张 容罗言月。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值