幂法及反幂法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

随机产生一对称矩阵,对不同的原点位移和初值(至少取3个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量。 要求

1)比较不同的原点位移和初值说明收敛性 2)给出迭代结果,生成DOC 文件。 3)程序清单,生成M 文件。

解答:

>> A=rand(5) %随机产生5*5矩阵 求随机矩阵 A =

0.7094 0.1626 0.5853 0.6991 0.1493 0.7547 0.1190 0.2238 0.8909 0.2575 0.2760 0.4984 0.7513 0.9593 0.8407 0.6797 0.9597 0.2551 0.5472 0.2543 0.6551 0.3404 0.5060 0.1386 0.8143 >> B=A+A' %A 矩阵和A 的转置相加,得到随机对称矩阵B B =

1.4187 0.9173 0.8613 1.3788 0.8044 0.9173 0.2380 0.7222 1.8506 0.5979 0.8613 0.7222 1.5025 1.2144 1.3467 1.3788 1.8506 1.2144 1.0944 0.3929 0.8044 0.5979 1.3467 0.3929 1.6286

B=⎥⎥⎥

⎥⎥⎥⎦

⎤⎢⎢⎢

⎢⎢

⎢⎣⎡6286.13929.03467.15979.08044.03929.00944.12144.18506.13788.13467.12144.15025.17222.08613.05979.08506.17222.02380.09173.08044.03788.18613.09173.04187.1

编写幂法、反幂法程序:

function [m,u,index,k]=pow(A,u,ep,it_max)

% 求矩阵最大特征值的幂法,其中

% A为矩阵;

% ep为精度要求,缺省为1e-5;

% it_max为最大迭代次数,缺省为100;

% m为绝对值最大的特征值;

% u为对应最大特征值的特征向量;

% index,当index=1时,迭代成功,当index=0时,迭代失败if nargin<4

it_max=100;

end

if nargin<3

ep=1e-5;

end

n=length(A);

index=0;

k=0;

m1=0;

m0=0.01;

% 修改移位参数,原点移位法加速收敛,为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)

index=1;

break;

end

m=m+m0;

m1=m;

k=k+1;

end

function[m,u,index,k]=pow_inv(A,u,ep,it_max)

% 求矩阵最大特征值的反幂法,其中

% A为矩阵;

% ep为精度要求,缺省为1e-5;

% it_max为最大迭代次数,缺省为100;

% m为绝对值最大的特征值;

% u为对应最大特征值的特征向量;

% index,当index=1时,迭代成功,当index=0时,迭代失败if nargin<4

it_max=100;

end

if nargin<3

ep=1e-5;

end

n=length(A);

index=0;

k=0;

m1=0;

m0=0;

% 修改移位参数,原点移位法加速收敛,为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=v/m;

if abs(m-m1)

index=1;

break;

end

m1=m;

k=k+1;

end

m=1/m;

m=m+m0;

修改输入的m0的值,所得结果:

⎢⎣15

相关文档
最新文档