📄 givens.asv
字号:
clc;
clear;
%%%%Givens旋转法求解对称阵的所有特征值和对应的特征向量
N=50;%矩阵阶数
v=[100 1:1:(N-1)];
A=toeplitz(v);
T=zeros(N,N);
B=zeros(1,N);
eigenvector=eye(N,N);%特征向量
eigenvalue=zeros(1,N);%特征值
%迭代过程
while(1)
for k=1:N;
B(k)=A(k,k);
end;
DA=sum(B.^2);%主对角线元素的平方和
SA=sum(sum(A.^2))-DA;%非主对角线元素的平方和
if SA>10^(-6)%设置精度
for m=2:N;
for n=1:(m-1);
T(m,n)=A(m,n);
end;
end;
[max,irow,jrow]=maxreturn(T);
i=jrow;
j=irow;
theta=atan(2*A(i,j)/(A(i,i)-A(j,j)))/2;
G=eye(N,N);
G(i,i)=cos(theta);
G(j,j)=cos(theta);
G(i,j)=sin(theta);
G(j,i)=-sin(theta);
A=G*A*G';
eigenvector=eigenvector*G';
else
break;
end;
end;
for i=1:N;
eigenvalue(i)=A(i,i);
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -