MATLAB实现用幂法/反幂法求矩阵的最大/最小特征值问题(有追加!)。
发布网友
发布时间:2022-05-13 16:39
我来回答
共2个回答
热心网友
时间:2023-10-16 12:57
%A为矩阵;ep为精度要求;N为最大迭代次数;m为绝对值最大的特征值;u为对应最大特征值的特征向量。
A=[2,-1,0;-1,2,-1;0,-1,2];
N=100;
ep=1e-6;
n=length(A);
u=ones(n,1);
index=0;
k=0;
m1=0;
while k<=N
v=A*u;
m=max(abs(v));
u=v/m
if abs(m-m1)<ep
index=1;
break;
end
m1=m;
k=k+1;
end
m %特征值
u/norm(u) %特征向量
[vv,ll]=eig(A); %matlab求解的特征值和特征向量
[mm,ii]=max(abs(diag(ll)));
m_matlab=mm
v_matlab=vv(:,ii)
这个是你的幂法,你的方法基本没有问题。
热心网友
时间:2023-10-16 12:57
可以先做两次迭代,然后计算norm(x2-x1,inf),norm(x2+x1,inf),如果是双特征值矩阵,这两项会各有一次取2