层次分析法RI计算

这里的平均随机一致性指标(RI)
是由大量随机试验得出的平均数据

代码部分

function RI=getRI(n)
times=10000;
CIS=zeros(1,times);
for t=1:times
    CI=getCI(n);
    CIS(t)=CI;
end
RI=sum(CIS)/times;
    function CI=getCI(n)
    A=eye(n);
    mat=[9 8 7 6 5 4 3 2 1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9];
    for i=1:n-1
        for j=i+1:n
            randnum=randi(17);
            A(i,j)=mat(randnum);
            A(j,i)=mat(18-randnum);    
        end   
    end
    Asum=sum(A,1);
    Aprogress=A./(ones(n,1)*Asum);
    W=sum(Aprogress,2)./n;
    w=A*W;
    lam=sum(w./W)/n;
    CI=(lam-n)/(n-1);
    end
end

经过计算得到矩阵大小为(1-33)时RI大小
层次分析法RI计算_第1张图片
可以看出与标准值还是由一定的出入的,可能是由于matlab随机数生成的机制导致的

你可能感兴趣的:(笔记,matlab,层次分析法,RI)