- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析实验报告基本QR算法求全部特征值
PAGE
PAGE 3
数值分析实验报告
专业 信息与计算科学 班级 信计101 姓名 学号
协作队员 实验日期 2013 年 1 月 5 日 星期 六
成绩评定 教师签名 批改日期
题目
问题提出
给定矩阵,
(1)用Matlab函数“eig”求矩阵全部特征值。
(2)用幂法求A的主特征值及对应的特征向量。
(3)用基本QR算法求全部特征值(可用Matlab函数“qr”实现矩阵的QR分解)。
模型建立
用幂法求A的主特征值及对应的特征向量的模型:选取v0=(1,1,1,1,1)T,按照下列公式构造向量序列{uk}{vk}
v0=u0≠0vk=Auk-1μk=maxvkuk=vk/μk
则有
limk→∞uk=x1maxx1 limk→∞μk=λ1
循环足够多次后,可以近似得出,
λ1=μk x1=uk
求解方法
(1)
A=[2 3 4 5 6;4 4 5 6 7;0 3 6 7 8;0 0 2 8 9;0 0 0 1 0];
a=eig(A)
(2)
pmethod.m
function [l,v,s]=pmethod(A,x0,eps)
if nargin==2
eps = 1.0e-6;
end
v = x0; %v为主特征向量
M = 5000; %迭代步数限制
m = 0;
l = 0;
for(k=1:M)
y = A*v;
m = max(y); %m为按模最大的分量
v = y/m;
if(abs(m - l)eps)
l = m; %到所需精度,退出,l为主特征值
s = k; %s为迭代步数
return;
else
if(k==M)
disp(迭代步数太多,收敛速度太慢!);
l = m;
s = M;
else
l = m;
end
end
end
(3)
function l = rqrtz(A,M)
%QR算法求矩阵全部特征值
%已知矩阵:A
%迭代步数:M
%求得的矩阵特征值:l
A = hess(A);
for i=1:M
N = size(A);
n = N(1,1);
u = A(n,n);
[q,r]=qr(A-u*eye(n,n));
A = r*q+u*eye(n,n);
l = diag(A);
end
输出结果
(1)
a = 13.1724 6.5519 1.5957 -0.3908 -0.9291
(2)
主特征值
x = 13.1724
对应的特征向量
y = 0.7250 1.0000 0.7930 0.3533 0.0268
(3)
所有特征值
x = 13.1724 6.5519 1.5957 -0.9291 -0.3908
结果分析
三种算法各有优势,但结果差不多,都较为适用。
文档评论(0)