幂法程序1:
function
[lambda,x,k]=Pow_Meth(A,x0,eps,N)
%幂法求成对比较阵A的主特征值lambda及其特征向量x
%x0为迭代初始向量,eps为预先给定的精度,N为最大迭代次数
%k为迭代次数
n=length(x0);
x0=x0/sum(x0);
%初始向量x0归一化
for
k=1:N
x1=A*x0;
x=x1/sum(x1);%归一化
err=max(abs(x-x0));
if
err<=eps
break;
end
x0=x;
end
lambda=sum(x1./x0)/n;
幂法程序2(计算方法规范乘幂法):
function
[lambda,x,k]=Pow_Meth1(A,x0,eps)
%规范化乘幂法求成对比较阵A的主特征值lambda及其特征向量y
%x0为迭代初始向量,eps为预先给定的精度
%k为迭代次数
n=length(x0);
x0=x0/sum(x0);%规范化
err=1;k=0;
while
err>eps
x=A*x0;
lambda=sum(x);
x=x/lambda;%规范化
err=max(abs(x-x0));
x0=x;
k=k+1;
end
主程序:
A=[1
2
5;1/2
1
2;1/5
1/2
1];
x0=[0.4
0.3
0.3]';
eps=1e-5;N=100;
[lambda,x,k]=Pow_Meth(A,x0,eps,N)