【强烈推荐】幂法和反幂法求矩阵特征值_毕业论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、对于反幂法的定理
按式(2)计算出的m和u满足:
m=, u=
在式(2)中,需要用到A,这给计算带来很大的不方便,因此,把(2)式的第一式改为求解线性方程组
A v= u(3)
但由于在反幂法中,每一步迭代都需求解线性方程组(3)式,迭代做了大量的重复计算,为了节省工作量,可事先把矩阵A作LU分解,即A=LU
n=length(A);
index=0;
k=0;
m1=0;
m0=0;
I=eye(n);
T=A-m0*I;
while k<=it_max
v=T*u;
[vBiblioteka Baiduax,i]=max(abs(v));
m=v(i);
u=vm;
if abs(m-m1)<ep;
index=1;
break;
end
m=m+m0;
m1=m;
所以线性方程组(3)改为
Ly=u,Uv=y
四、算法程序设计代码
幂法程序,在matlab中建立一个M文件并保存。
%pow.m
function [m,u,index,k]=pow(A,u,ep,it_max)
if nargin<4
it_max=1000;
end
if nargin<3
ep=1e-5;
end
Ax=x(1)
则称为矩阵A的特征值,x为相应的特征向量。
由高等代数知识可知,特征值是代数方程
|I-A|=+a+…+a+a=0(2)
的根。从表面上看,矩阵特征值与特征向量的求解问题似乎很简单,只需求解方程(2)的根,就能得到特征值,再解齐次方程组
(I-A)x=0(3)
的解,就可得到相应的特征向量。
上述方法对于n很小时是可以的。但当n稍大时,计算工作量将以惊人的速度增大,并且由于计算带有误差,方程(2)未必是精确的特征方程,自然就不必说求解方程(2)与(3)的困难了。幂法是一种计算矩阵主特征值(矩阵按模最大的特征值)及对应特征向量的迭代方法,特别是用于大型稀疏矩阵。反幂法是计算海森伯格阵或三角阵的对应一个给定近似特征值的特征向量的有效方法之一。
(此文档为word格式,下载后您可任意编辑修改!)
题目
幂法和反幂法求矩阵特征值课程设计




随机产生一对称矩阵,对不同的原点位移和初值(至少取3个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量,并比较不同的原点位移和初值说明收敛。
要求
1.认真读题,了解问题的数学原形;
反幂法程序设计代码:
在matlab中建立一个M文件并保存。
%pow_inv.m
function[m,u,index,k]=pow_inv(A,u,ep,it_max)
if nargin<4
it_max=1000;
end
if nargin<3
ep=1e-5;
end
n=length(A);
index=0;
2.选择合适问题求解的数值计算方法;
3.设计程序并进行计算;
4.对结果进行解释说明;
采用方法
及结果
说明
对于幂法和反幂法求解矩阵特征值和特征向量的问题将从问题分析,算法设计和流程图,理论依据,程序及结果进行阐述该问题。
一.问题的分析:
求n阶方阵A的特征值和特征向量,是实际计算中常常碰到的问题,如:机械、结构或电磁振动中的固有值问题等。对于n阶矩阵A,若存在数和n维向量x满足
幂法是用来确定矩阵的主特征值的一种迭代方法,也即,绝对值最大的特征值。稍微修改该方法,也可以用来确定其他特征值。幂法的一个很有用的特性是它不仅可以生成特征值,而且可以生成相应的特征向量。实际上,幂法经常用来求通过其他方法确定的特征值的特征向量。
1、幂法的迭代格式与收敛性质
设n阶矩阵A的特征值,,…,是按绝对值大小编号的,x (i=1,2,…,n)为对应的特征向量,且为单根,即
||>||≥…≥||
则计算最大特征值与特征向量的迭代格式为
v=Au,m=max(v), u= v m(1)
其中max(v)表示向量v绝对值的最大分量。
2、对于幂法的定理
按式(1)计算出m和u满足
m=, u=
(二)反幂法算法的理论依据及推导
反幂法是用来计算绝对值最小的特征值忽然相应的特征向量的方法。是对幂法的修改,可以给出更快的收敛性。
k=0;
m1=0;
m0=0;
I=eye(n);
T=A-m0*I;
invT=inv(T);
while k<=it_max
v=invT*u;
[vmax,i]=max(abs(v));
m=v(i);
u=vm;
if abs(m-m1)<ep
index=1;
break;
end
m1=m;
k=k+1;
end
m=1m;
1、反幂法的迭代格式与收敛性质
设A是非奇异矩阵,则零不是特征值,并设特征值为
||≥||≥…≥||>||
则按A的特征值绝对值的大小排序,有
||>||≥…≥||
对A实行幂法,就可得A的绝对值最大的特征值1和相应的特征向量,即A的绝对值最小的特征值和相应的特征向量。
由于用A代替A作幂法计算,因此该方法称为反幂法,反幂法的迭代格式为v= Au,m=max(v), u= v m(2)
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的值改变原点位移,从而达到原点位移加速。
m=m+m0;
在matlab输入面板,输入
A=rand(4);%产生一个4维随机矩阵
B=A+A’;
u=[1 1 1 1]’;%设立初始向量
(2)对A作LU分解,即A=LU
(3)解线性方程组Ly=u,Uv=y
(4)计算
m=max(v), u= v m
(5)若|m=m|<,则停止计算(1m作为绝对值最小特征值,u作为相应的特征向量);否则置k=k+1,转(3).
幂法流程图:
反幂法流程图
三、算法的理论依据及其推导
(一)幂法算法的理论依据及推导
二.算法设计及流程图
1、幂法算法
(1)取初始向量u(例如取u=(1,1,…1)),置精度要求,置k=1.
(2)计算
v=Au,m=max(v), u= v m
(3)若| m= m|<,则停止计算(m作为绝对值最大特征值,u作为相应的特征向量)否则置k=k+1,转(2)
2、反幂法算法
(1)取初始向量u(例如取u=(1,1,…1)),置精度要求,置k=1.
相关文档
最新文档