当前位置:文档之家› matlab层次分析法的组合一致性检验

matlab层次分析法的组合一致性检验

4409e-016 ans = 方案层对准则层的第4因素的特征向量和CI值: ans = 0.6337 0.1919 0.1744 ans = 0.0046 ans = 方案层对准则层的第5因素的特征向量和CI值: ans = 0.1667 0.1667 0.6667 ans = -4.4409e-016 ans = 组合一致性比率CR值 CR = 0.0188 ans = 方案层对目标层的组合权向量为:
function s(x,y) %层次分析的初始化 %默认只有两层 x为准则数,y为方案数 %A为准则层对目标层生成的比较阵 %B为方案层对准则层生成的比较阵 %EigA为准则层的特征向量 %EigB为方案层的特征向量 x=5;y=3; EigA=zeros(x,1); EigB=zeros(y,x); dim=x; RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];%RI标准 %准则层对目标层的成对比较阵 A=[1 1/2 4 3 3 21755 1/4 1/7 1 1/2 1/3 1/3 1/5 2 1 1 1/3 1/5 3 1 1] tempB=zeros(x+1); tempB=jianyan(dim,A); EigA=tempB(1:x); ci1=tempB(1+x); '准则层的特征向量:' EigA '准则层的ci值:' ci1 ci=zeros(1,x); dim=y; % 方案层对准则层各成对比较阵 B{1}=[1 2 5 1/2 1 2 1/5 1/2 1]; B{2}=[1 1/3 1/8 3 1 1/3 8 3 1];
0.3333 1.0000 1.0000 0.2500 1.0000 1.0000 ans = 1.0000 1.0000 0.2500 1.0000 1.0000 0.2500 4.0000 4.0000 1.0000 ans = 方案层对准则层的第1因素的特征向量和CI值: ans = 0.5954 0.2764 0.1283 ans = 0.0028 ans = 方案层对准则层的第2因素的特征向量和CI值: ans = 0.0819 0.2363 0.6817 ans = 7.7081e-004 ans = 方案层对准则层的第3因素的特征向量和CI值: ans = 0.4286 0.4286
result = 0.2993 0.2453 0.4554
ans = 准则层的特征向量: EigA = 0.2636 0.4758 0.0538 0.0981 0.1087 ans = 准则层的ci值: ci1 = 0.0180 ans = 方案层对准则层各成对比较阵: ans = 1.0000 2.0000 5.0000 0.5000 1.0000 2.0000 0.2000 0.5000 1.0000 ans = 1.0000 0.3333 0.1250 3.0000 1.0000 0.3333 8.0000 3.0000 1.0000 ans = 1.0000 1.0000 3.0000 1.0000 1.0000 3.0000 0.3333 0.3333 1.0000 ans = 1.0000 3.0000 4.0000
%判断该比较阵是不是一致阵 [V,D]=eig(CmpMatrix);%求得特征向量和特征值 %求出最大特征值和它所对应的特征向量 tempNum=D(1,1); pos=1; for h=1:dim if D(h,h)>tempNum tempNum=D(h,h); pos=h; end end eigVector=V(:,pos); maxeig=D(pos,pos); CI=(maxeig-dim)/(dim-1); CR=CI/RI(dim); if CR>0.1 disp('准则对目标影响度评分生成的矩阵不是一致阵,请重新评分') return end %归一化 sum=0; for h=1:dim sum=sum+eigVector(h); end for h=1:dim eigVector(h)=eigVector(h)/sum; end f=[eigVector;CI]; 结果: A= 1.0000 0.5000 4.0000 3.0000 3.0000 2.0000 1.0000 7.0000 5.0000 5.0000 0.2500 0.1429 1.0000 0.5000 0.3333 0.3333 0.2000 2.0000 1.0000 1.0000 0.3333 0.2000 3.0000 1.0000 1.0000
B{3}=[1 1 3 113 1/3 1/3 1]; B{4}=[1 3 4 1/3 1 1 1/4 1 1]; B{5}=[1 1 1/4 1 1 1/4 4 4 1]; '方案层对准则层各成对比较阵:' B{:} %判断该比较阵是不是一致阵 for k=1:x tempB=zeros(y+1); tempB=jianyan(dim,B{k}); EigB(:,k)=tempB(1:y); ci(k)=tempB(y+1); ['方案层对准则层的第',num2str(k),'因素的特征向量和CI值:'] EigB(:,k) ci(k) end %下面进行组合一致性检查 RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51]; CR=ci1/RI(x)+ci*EigA/RI(y); '组合一致性比率CR值' CR if CR>0.1 disp('组合一致性不通过,请重新评分') return end %下面根据比较阵的结果进行组合 result=EigB*EigA; '方案层对目标层的组合权向量为:' result function f=jianyan(dim,CmpMatrix) RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
相关主题