我正在使用 Jacobi 迭代方法来查找厄米特矩阵或对称矩阵的特征值和特征向量。对应于特征值的特征向量并不精确。第三个特征向量完全关闭。我已经实现并阅读了有关 Jacobi 的信息。可能的原因是什么?
这是我在 scilab 中的函数文件:
function [eig,eigv]=Jacobimethod(A, I)
r=0
while [1]
B=A-diag(diag(A))
[m, index]=max(abs(B))
if m==0
break
end
p=min(index)
q=max(index)
R=eye(n,n)
if A(p,p)==A(q,q)
theta=%pi/4
else
theta=(atan(2*A(p,q)/(A(p,p)-A(q,q))))/2
end
c=cos(theta)
s=sin(theta)
R(p,p)=c
R(q,q)=c
R(p,q)=-s
R(q,p)=s
Anew=clean((R')*A*R,10^-4)
//disp(Anew)
eig=diag(Anew)
A=Anew
X=I*R
eigv=X
I=X
r=r+1
end
disp(r,"No of iterations")
endfunction