当前位置:文档之家› 数学实验“矩阵特征值及相应特征向量的Jacobi法,QR法”实验报告(内含matlab程序)

数学实验“矩阵特征值及相应特征向量的Jacobi法,QR法”实验报告(内含matlab程序)

西京学院数学软件实验任务书
实验十三实验报告
一、实验名称:矩阵特征值及相应特征向量的Jacobi法,QR法。

二、实验目的:熟悉矩阵特征值及相应特征向量的Jacobi法,QR 法。

三、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成程序设计。

四、实验内容:
%矩阵特征值及相应特征向量的Jacobi法
function [D,R]=Jacobi(A,eps)
if nargin==2
eps=1.0e-5;
end
n=length(A);
R=eye(n);
while 1
Amax=0;
for l=1:n-1
for k=l+1:n
if abs(A(l,k))>Amax
Amax=abs(A(l,k));
i=l;j=k;
end
end
end
if Amax<eps
break;
end
d=(A(i,i)-A(j,j))/(2*A(i,j));
if abs(d)<1e-10
t=1;
else
t=sign(d)/(abs(d)+sqrt(d^2+1));
end
c=1/sqrt(t^2+1);
s=c*t;
for l=1:n
if l==i
Aii=A(i,i)*c^2+A(j,j)*s^2+2*A(i,j)*s*c; Ajj=A(i,i)*s^2+A(j,j)*c^2-2*A(i,j)*s*c;
A(i,j)=(A(j,j)-A(i,i))*s*c+A(i,j)*(c^2-s^2);
A(j,i)=A(i,j);
A(i,i)=Aii;
A(j,j)=Ajj;
elseif l~=j
Ail=A(i,l)*c+A(j,l)*s;
Ajl=-A(i,l)*s+A(j,l)*c;
A(i,l)=Ail;A(l,i)=Ail;
A(j,l)=Ajl;A(l,j)=Ajl;
end
Rli=R(l,i)*c+R(l,j)*s;
Rlj=-R(l,i)*s+R(l,j)*c;
R(l,i)=Rli;
R(l,j)=Rlj;
end
end
D=diag(diag(A));
%矩阵特征值及相应特征向量的QR法
function l=qrtz(A,M)
for(i=1:M)
[q,r]=qr(A);
A=r*q;
l=diag(A);
end
五、实验结果:
>> A=[3 4 3;1 2 4;7 6 2];
>> esp=10^(-6);
>> [D,R]=Jacobi(A,eps)
D =
9.6873 0 0
0 -2.2229 0
0 0 -0.4644
R =
0.5970 -0.2958 -0.7457
0.5922 0.7895 0.1609
0.5411 -0.5377 0.6465
>> A=[3 4 3;1 2 4;7 6 2];
>> M=10^2;
>> l=qrtz(A,M)
l =
10.3687
-2.6373
-0.7314。

相关主题