
随机一致性指标求解.docx
3页东南大学《数学实验》报告学号11209117 姓名 袁骏杰 成绩实验内容: 随机一致性指标求解 一实验目的1) 掌握用matlab求解随机一致性指标的方法2) 加深对随机一致性指标概念的理解二实验内容与要求用matlab或C++编写程序分别计算n = 3-30时的n阶矩阵的随机一致性检验指标的 值RI为保证随机性,要求每阶创造1000个矩阵三实验原理层次分析发建模问题中,需要用到对矩阵A的一致性检验,然而对于一般的问题,尤 其当考虑实际因素比较多时,很难保证判断矩阵A为一致矩阵,因此在计算矩阵A的最大 特征值^ max之时,需要检验矩阵A的一致程度令:称CI为一致性指标显然CI = 0是矩阵A为一致矩阵的必要条件可以看出CI值越 大,A的不一致程度越严重但是对于一个具体的矩阵来书,很难说其一致性指标CI到底是很大还是很小, Saaty针对上述定义的不严格性,提出了用随机一致性指标RI来检验判断矩阵A是否具有 满意的一致性RI是按照下面的方式选取的:对于固定的n,随机构造正互反矩阵A’,他的元素a^'是从1~9及其倒数中随机选取 的,因此A’的一致性一般都是很差的,取充分大的子样儿得到A’最大特征值的平均值k, 定义:RI =CR = CIRI一般认为矩阵ACR称为随机一致性比率。
RI称为随机一致性指标当CR<0.1时, 的不一致程度再容许范围之内,可以用其特征向量作为权向量求解随机一致性指标可按如下步骤:构造1000个n阶随机正互反矩阵A’(元素0~9及其倒数) 求1000个矩阵的最大特征值的平均值k计算RI的值:四主要实验代码及结果M文件function RI=ri(n)%输入n值n=ceil(n);if n<=0, error('n 必须为正数');endif n==0 II n==1, RI=0;return;end%初始化times=1000;scaler=[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];A=zeros(n);lamda=zeros(times,1); %产生1000组随机正互反矩阵for num=1:timesrank=ceil(17*rand(n)); %产生一组n阶正互反矩阵for i=1:nfor j=i:nA(i,j)=scaler(rank(i,j));A(j,i)=1/A(i,j);A(i,i)=1;endendrigenvector=eig(A); % 求最大特征值lamda(num)=max(rigenvector); %求 1000 组最大特征值平均值endlamda_average=sum(lamda)/times;RI=(lamda_average-n)/(n-1); %求 RI 的值运行程序for n=3:30RI(n)=ri(n);RI(n) end运行结果n345678910RI0.51890.86381.09591.25501.33901.39541.43381.4901n11121314151617181920RI1.51181.53831.55501.58081.58481.59581.60441.61031.62511.6244n21222324252627282930RI1.63441.64261.64591.64441.65431.66061.66241.66591.67151.6720五实验总结本次实验通过实践学习了 Matlab编程的基本规则以及自定义函 数的调用方法。
实验虽然简单,但我也从中强化了层次分析法中权向 量求解的概念,进一步掌握了随机一致性指标求解方法以及随机一致 性检验的方法。
