幂法和反幂法求矩阵特征值-课程设计(可编辑)【完整版】.doc
上传人:天马****23 上传时间:2024-09-10 格式:DOC 页数:34 大小:1.6MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

幂法和反幂法求矩阵特征值-课程设计(可编辑)【完整版】.doc

幂法和反幂法求矩阵特征值-课程设计(可编辑)【完整版】.doc

预览

免费试读已结束,剩余 24 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

幂法和反幂法求矩阵特征值_课程设计(可编辑)【完整版】(文档可以直接使用,也可根据实际需要修订后使用,可编辑放心下载)幂法和反幂法求矩阵特征值_课程设计题目幂法和反幂法求矩阵特征值课程设计具体内容随机产生一对称矩阵,对不同的原点位移和初值(至少取3个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量,并比拟不同的原点位移和初值说明收敛。要求1.认真读题,了解问题的数学原形;2.选择适宜问题求解的数值计算方法;3.设计程序并进行计算;4.对结果进行解释说明;采用方法及结果说明对于幂法和反幂法求解矩阵特征值和特征向量的问题将从问题分析,算法设计和流程图,理论依据,程序及结果进行阐述该问题。一.问题的分析:求n阶方阵A的特征值和特征向量,是实际计算中常常碰到的问题,如:机械、结构或电磁振动中的固有值问题等。对于n阶矩阵A,假设存在数和n维向量x满足Ax=x〔1〕那么称为矩阵A的特征值,x为相应的特征向量。由高等代数知识可知,特征值是代数方程|I-A|=+a+…+a+a=0〔2〕的根。从外表上看,矩阵特征值与特征向量的求解问题似乎很简单,只需求解方程〔2〕的根,就能得到特征值,再解齐次方程组〔I-A〕x=0〔3〕的解,就可得到相应的特征向量。上述方法对于n很小时是可以的。但当n稍大时,计算工作量将以惊人的速度增大,并且由于计算带有误差,方程〔2〕未必是精确的特征方程,自然就不必说求解方程〔2〕与〔3〕的困难了。幂法特别是用于大型稀疏矩阵。〔例如取u=(1,1,…1)〕,置精度要求,置k=1.〔2〕计算v=Au,m=(v),u=v/m〔3〕假设|m=m|<,那么停止计算〔m作为绝对值最大特征值,u作为相应的特征向量〕否那么置k=k+1,转〔2〕2、反幂法算法〔1〕取初始向量u〔例如取u=(1,1,…1)〕,置精度要求,置k=1.〔2〕对A作LU分解,即A=LU〔3〕解线性方程组Ly=u,Uv=y〔4〕计算m=(v),u=v/m〔5〕假设|m=m|<,那么停止计算〔1/m作为绝对值最小特征值,u作为相应的特征向量〕;否那么置k=k+1,转〔3〕.幂法流程图:反幂法流程图三、算法的理论依据及其推导〔一〕幂法算法的理论依据及推导幂法是用来确定矩阵的主特征值的一种迭代方法,也即,绝对值最大的特征值。稍微修改该方法,也可以用来确定其他特征值。幂法的一个很有用的特性是它不仅可以生成特征值,而且可以生成相应的特征向量。实际上,幂法经常用来求通过其他方法确定的特征值的特征向量。1、幂法的迭代格式与收敛性质设n阶矩阵A的特征值,,…,是按绝对值大小编号的,x(i=1,2,…,n)为对应的特征向量,且为单根,即||>||≥…≥||那么计算最大特征值与特征向量的迭代格式为v=Au,m=(v),u=v/m〔1〕其中(v)表示向量v绝对值的最大分量。2、对于幂法的定理按式〔1〕计算出m和u满足m=,u=〔二〕反幂法算法的理论依据及推导反幂法是用来计算绝对值最小的特征值突然相应的特征向量的方法。是对幂法的修改,可以给出更快的收敛性。1、反幂法的迭代格式与收敛性质设A是非奇异矩阵,那么零不是特征值,并设特征值为||≥||≥…≥||>||那么按A的特征值绝对值的大小排序,有||>||≥…≥||对A实行幂法,就可得A的绝对值最大的特征值1/和相应的特征向量,即A的绝对值最小的特征值和相应的特征向量。由于用A代替A作幂法计算,因此该方法称为反幂法,反幂法的迭代格式为v=Au,m=(v),u=v/m〔2〕2、对于反幂法的定理按式〔2〕计算出的m和u满足:m=,u=在式〔2〕中,需要用到A,这给计算带来很大的不方便,因此,把〔2〕式的第一式改为求解线性方程组Av=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_)ifnargin<4it_=1000;endifnargin<3ep=1e-5;endn=length(A);index=0;k=0;m1=0;m0=0;I=eye(n);T=A-m0*I;whilek<=it_v=T*u;[v,i]=(abs(v));m=v(