QR基本法和位移QR法矩阵特征值求解Word文档下载推荐.docx
《QR基本法和位移QR法矩阵特征值求解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《QR基本法和位移QR法矩阵特征值求解Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。
![QR基本法和位移QR法矩阵特征值求解Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/8ea74d61-f646-41ae-9a86-58990521e272/8ea74d61-f646-41ae-9a86-58990521e2721.gif)
在MATLAB中变成实现的QR基本算法的函数为:
qrtz
功能:
QR基本算法求矩阵全部特征值。
调用格式:
l=qrtz(A,M).
其中,A为已知矩阵;
M为迭代步数;
L为矩阵A的全部特征值。
QR基本算法的流程图:
QR基本算法的MATLAB程序代码如下:
functionl=qrtz(A,M)
fori=1:
M
[q,r]=qr(A);
A=r*q;
l=diag(A);
end
task11.m
formatlong
A=[1,5,6;
4,7,0;
8,11,3]
l=qrtz(A,20)
disp('
¾
«
È
·
½
â
'
)
l=eig(A)
运行过程和结果:
2.位移QR算法
位移QR法是为了加快QR算法的收敛速度,其算法的迭代过程如下:
给定循环步数M,A1=Hessenberg(A),
k=1,2,…M,选择μk,然后计算:
Ak-μkI=QkRk
Ak+1=QkQk+μkI
一般μk的选择有以下两种考虑方法:
(1)选μk=μk,即瑞利商位移;
(2)迭代过程中,如果子矩阵
的两个特征值为实数时,选最接近akn,n的那个作为μk,即威尔森位移
瑞利商位移QR法流程图如下:
在MATLAB中编程实现的瑞利商位移的QR算法的函数为:
rqrtz。
瑞利商位移的QR算法求矩阵全部特征值。
T=rqrt(A,M)
其中,A为已知矩阵:
l为矩阵A的全部特征值
瑞利商位移的QR算法的MATLAB程序如下:
functionl=rqrtz(A,M)
%瑞利商位移QR算法求矩阵全部特征向量¿
%已知矩阵:
A;
迭代步数:
M;
求得的矩阵:
l;
A=hess(A);
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);
end;
l=diag(A);
威尔金森位移的QR算法流程图如下:
输入矩阵A,步数M
在MATLAB中编程实现的威尔金森位移的QR算法的函数为:
wilkqrtz
威尔金森的QR算法求矩阵全部特征值。
T=wilkqrtz(A,M)
威尔金森的QR算法的MATLAB程序如下:
functionl=wilkqrtz(A,M)
%威尔金森位移的QR算法求矩阵全部特征值
求的矩阵特征值:
l
A1=A((n-1):
n,(n-1):
n);
t=Chapoly(A1);
if(imag(t(1,1))==0&
&
imagt(2,1)==0)%两特征值是否为实数
if(abs(t(1,1)-A(n,n))<
abs(t(1,1)-A(n,n)))
u=t(1,1);
else
u=t(2,1);
%选最接近A(n,n)的那个作为u
end
task12.m
A=[6,3,2;
4,3,8;
7,9,5]
ð
À
û
É
Ì
Î
»
Ò
Æ
QRË
ã
¨
£
º
l=rqrtz(A,13)
wilkÎ
l=wilkqrtz(A,13)
运行结果如下:
实验二:
编程解决以下科学计算问题
1)
M文件:
functiony=fun(x)
y=(1-(927.5/7782.5)^
(2)*(sin(x).)^
(2))^(0.5);
程序:
4*7782.5*int('
fun'
0,1.57)
结果:
ans=
76732337/2000
2)
3)
由图中数据可推测x与y之间的回归方程应该是y=a+bx型因此输入程序:
>
x=[37.037.538.038.539.039.540.040.541.041.542.042.543.0];
y=[3.403.003.002.272.101.831.531.701.801.902.352.542.90];
[a,b]=polyfit(x,y,1)
得结果为
a=
-0.10706.6136
b=
R:
[2x2double]
df:
11
normr:
1.9235
因此y与x之间的回归方程为y=-0.107x+6.6136