数学建模社区-数学中国

标题: 计算判断矩阵的随机一致性指标RI [打印本页]

作者: 2863358207    时间: 2020-4-8 17:37
标题: 计算判断矩阵的随机一致性指标RI
在层次分析法中,我们都要用到判断矩阵。而判断矩阵一致性的检验有一个很重要的指标:RI,RI的大小仅仅与矩阵的阶数有关。
这里给出了一段求矩阵的阶数在3-30之间的RI的代码。由于样本有限,每一次计算出来的RI不一样,但是波动范围很小,误差小于0.01。
RI=zeros(1,28);%RI=[0 0 0 0 ......0 0 0 0]
enum=[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 n=3:30
    Vmax=0;
    A=ones(n,n);%生成一个全1的n阶矩阵
   for x=1:10000 %随机模拟一万次,求平均值
       for i=1:(n-1)
           for j=(i+1):n
               c=randperm(numel(enum));%这段代码的意思是把向量enum的元素打乱重排,生成一个乱序的新向量c
               A(i,j)=enum(c(1:1));%然后从新向量中抽取第一个元素,相当于是随机抽取
               A(j,i)=1/A(i,j);%构造正互反矩阵
           end
       end
       V=eig(A);%求特征值,注意:这里的特征值是n阶矩阵的n个特征值组成的一个向量
       Vmax=Vmax+max(V);%把这些特征值加起来,为下面求平均用
   end
   RI(1,n-2)=((Vmax/10000)-n)/(n-1);%这是RI的定义求法,公式详见课本
end
RI%输出RI




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5