Copyright◎huwangjian
AHP.m
clear all;
A = [ 1,1,1,4,1,1/2;
1,1,2,4,1,1/2;
1,1/2,1,5,3,1/2;
1/4,1/4,1/5,1,1/3,1/3;
1,1,1/3,3,1,1;
2,2,2,3,3,1]
B1 = [1,1/4,1/2;4,1,3;2,1/3,1]
B2 = [1,1/4,1/5;4,1,1/2;5,2,1]
B3 = [1,3,1/3;1/3,1,1/7;3,7,1]
B4 = [1,1/3,5;3,1,7;1/5,1/7,1]
B5 = [1,1,7;1,1,7;1/7,1/7,1]
B6 = [1,7,9;1/7,1,1;1/9,1,1]
BS = [B1,B2,B3,B4,B5,B6];
m = length(B1);n = length(A); %随机一致性指标 RI
RI = [0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51];
[WA,LA] = eigen(A); %求 A 的特征向量 WA 和特征根 LA
CIn = (LA - n) / (n - 1);
CRn = CIn / RI(n); %A 的一致性比率 CRn
if CRn < 0.10
fprintf('A 的 CR %f 通过一致性检验!',CRn);
else
fprintf('A 的 CR %f 未通过一致性检验!',CRn);
end
for k = 1:n %求 B 的特征向量 WK 和特征根 LK
[WK(:,k),LK(1,k)] = eigen( BS(1:3,(k-1)*m+1:(k-1)*m+3) );
CIm(1,k) = (LK(1,k) - m) / (m - 1);
RIm(k) = RI(m);
CRm(1,k) = CIm(1,k) / RIm(k); %B 的一致性比率 CRm
end
for k = 1:n
if CRm(1,k) < 0.10
fprintf('B%d 的 CR %f 通过一致性检验!',k,CRm(1,k));
else
fprintf('B%d 的 CR %f 未通过一致性检验!',k,CRm(1,k));
end