本文最后更新于24 天前,其中的信息可能已经过时,如有错误请发送邮件到2428505532@qq.com
一致性检验代码实现
判断矩阵一致性检验MATLAB代码
% 判断矩阵一致性检验脚本
A = input("判断矩阵A=");
[n,n] = size(A);
V = eig(A);
Max_eig = max(V);
% 随机一致性指标RI表
RI = [0, 0.0001, 0.52, 0.89, 1.12, 1.26, 1.41, 1.46, 1.49, 1.52, 1.54, 1.56, 1.58, 1.59];
CI = (Max_eig - n) / (n - 1);
CR = CI / RI(n);
disp("一致性指标CI=");
disp(CI);
disp("一致性比率CR=");
disp(CR);
if CR < 0.10
disp("CR<0.10,该判断矩阵一致性可以接受");
else
disp("CR≥0.10,该判断矩阵一致性不满足要求,矩阵需修改");
end
常用的加权平均数计算权重代码实现 (最后是使用三种方法的平均值)
权重计算MATLAB代码
%算数平均法
A =input("判断矩阵A=");
SUMA =sum(A,1);
[n,n] =size(A);
Ar=repmat(SUMA,n,1);
Stand_A=A./Ar;
SUMAR =sum(Stand_A,2);
a=SUMAR/n;
%几何平均法
PROD_A= prod(A,2);
PROD_n_A=PROD_A.^(1/n);
b=PROD_n_A/sum(PROD_n_A);
%特征值计算权重
[V,D]=eig(A);
MAX=max(max(D));
[r,c]=find(MAX == D,1);
f=V(:,c)./sum(V(:,c));
%三者平均权重
disp((a+b+f)/3);