- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于幂法与反幂法的研究
东北大学秦皇岛分校
数值计算课程设计报告
幂法及反幂法
?????
学 院 数学与统计学院 专 业 学号 姓名 指导教师 *** *** 成 绩 教师评语:
指导教师签字:
2014年7月07日1 绪 论
课题的背景阶矩阵,若存在数和维向量满足:,则称为矩阵的特征值,为相应的特征向量。
病态矩阵:求解方程组时对数据的小扰动很敏感的矩阵。希尔伯特矩阵是一类著名的病态矩阵个线性无关的特征向量,即有一个完全的特征向量组。
2 MATLAB特征值计算工具简介
说明:(1)输入参量必须是方阵;
(2)输出参量是一个矩阵,它的各列是方阵的特征向量;
(3)输出方阵是一个对角阵,其元素是方阵的特征值,与同列向量相对应;
(4)当不写输出格式时,只输出由得特征值为元素的列阵;
(5)如果中含有小到跟截断误差相当的元素时,加写输入参数“nobalance”,它可以提高小元素的作用,通常可以省略该参数,以免使结果误差变大。
例题检验:求方阵的特征值和特征向量。
MATLAB实现过程如下:
A=[2 1 0;1 3 1;0 1 4];
[V,D]=eig(A)
V =
0.7887 -0.5774 0.2113
-0.5774 -0.5774 0.5774
0.2113 0.5774 0.7887
D =
1.2679 0 0
0 3.0000 0
0 0 4.7321
3 幂 法
3.1 幂法算法的理论基础及推导
设实矩阵有一个完备的特征向量组(矩阵有个线性无关的特征向量),其特征值为,相应的特征向量为。已知A的主特征值是实根,且满足条件。
现在讨论求及的方法:
幂法的基本思想是任取一个非零的初始向量,由矩阵构造一向量序列
称为迭代向量。
由假设,可表示为 (设) (3.1)
于是
(3.2)
其中。由假设,故,从而。这说明序列越来越接近的对应于的特征向量,或者说当充分大时,即迭代向量为的特征值的近似向量。
下面再考虑主特征值的计算,用表示的第个分量,则,故。也就是说两相邻的迭代向量分量的比值收敛到主特征值。
通过以上推论可以得出结论,设有个线性无关的特征向量(即非亏损的),主特征值满足,则对任何非零初始向量,构造的向量序列收敛到主特征向量;收敛到主特征值。(定理一)
幂法只能对非亏损矩阵求实的主特征值,且常用于实对称矩阵。
3.2 幂法算法的迭代向量规范化
应用幂法计算的主特征值及对应的特征向量时,如果(或),迭代向量的各个不等于零的分量将随而趋向于无穷(或趋向于零),这样在计算机实现时就可能“溢出”。为了克服这个缺点,就需要将迭代向量加以规范化。
设有一向量,将其规范化得到向量,其中表示向量的绝对值最大的分量,即如果有,则,且为所有绝对值最大的分量中的最小下标。
任取一初始向量,构造向量序列:
由(3.1)式有,
同理,可得到
结论:设有个线性无关的特征向量,主特征值满足,则对任意非零初始向量,按下述方法构造的向量序列,:
则有;。
3.3 幂法算法
1、算法步骤
(1)取初始向量(例如取),置精度要求,置。
(2)计算
,,
(3)若,则停止计算(作为绝对值最大特征值,作为相应的特征向量)否则置,转(2)。
2、实现过程
在MATLAB中没有提供现成的函数幂法,通过自定义编写函数实现幂法。其代码如下:
function [l,v,s]=mifa(A,x0,eps)
%A为已知矩阵
%x0为迭代初始向量
%eps为迭代精度
%l为求得的矩阵主特征值
%v为求得的矩阵主特征向量
%s为迭代步数
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;
文档评论(0)