随机一致性指标
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随机一致性指标求解
(一)实验目的:
1)掌握用matlab求解随机一致性指标的方法
2)加深对随机一致性指标概念的理解
(二)实验内容:
用matlab或C++编写程序分别计算n=2-30时的n阶矩阵的随机一致性检验指标的值RI。为保证随机性,要求每阶创造1000个矩阵。
(三)实验原理及分析:
层次分析发建模问题中,需要用到对矩阵A的一致性检验,然而对于一般的问题,尤其当考虑实际因素比较多时,很难保证判断矩阵A为一致矩阵,因此在计算矩阵A的最大特征值’max之时,需要检验矩阵A的一致程度。
令:
称CI为一致性指标。显然CI=0是矩阵A为一致矩阵的必要条件。可以看出CI 值越大,A的不一致程度越严重。
但是对于一个具体的矩阵来书,很难说其一致性指标CI到底
是很大还是很小,Saaty针对上述定义的不严格性,提出了用随机一致性指标RI来检验判断矩阵A是否具有满意的一致性。
RI是按照下面的方式选取的:
对于固定的n,随机构造正互反矩阵A',他的元素a j'是从1~9 及其倒数中随机选取的,因此A'的一致性一般都是很差的,取充分大的子样儿得到A'最大特征值的平均值k,定义:
CR 称为随机一致性比率。RI 称为随机一致性指标。当 CRvO.1时, 一般认为矩
阵A 的不一致程度再容许范围之内,可以用其特征向量 作为权向量。 (四)问题求解:
根据以上原理分析可得随机一致性指标值
RI 的求解方法,结
合题目要求,求解如下:
1、求RI 的函数流程图:
if n<=0, error( 'n 必须为正数’);求1000个矩阵的最 end
if n==0 || 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:times
ran k=ceil(17*ra nd( n)); % 产生一组n 阶正互反矩阵 for i=1:n
for j=i:n
A(i,j)=scaler(ra nk(i,j)); A(j,i)=1/A(i,j); A(i,i)=1; end end
rige nvector=eig(A); %求最大特征值
lamda( nu m)=max(rige nvector); %求 1000组最大特征值平均值 end lamda_average=sum(lamda)/times; RI=(lamda_average-n)/(n-1); %求RI 的值
2、求n=2~30的随机一致性指标值
编写程序:
for n=2:30
RI( n)=ri( n); RI( n)
End 执行结果如下: ans = 0 ans =
代码如下:
构造1000个n 阶随 机正互反矩阵A'(元 fun ctio n RI=ri( n)
% 定义函数
素0~9及其倒数)
大特征值的平均值k
计算RI 的值:
0.5189
ans =
0.8638
ans =
1.0959
ans =
1.2550
ans =
1.3390
ans =
1.3954
ans =
1.4338
ans =
1.4901
ans =
1.5118
ans =
1.5383
ans =
1.5550
ans =
1.5808
ans =
1.5848
ans =
1.5958
ans =
1.6044
ans =
1.6103
ans =
1.6251
ans =
1.6244
ans =
1.6344
ans =
1.6426
ans =
1.6459
ans =
1.6444
ans =
1.6543
ans =
1.6606 ans =
1.6624 ans =
1.6659 ans =
1.6715 ans =
1.6720
得到的结果为:
(五)、实验总结
本次实验通过实践学习了Matlab编程的基本规则以及自定义函数的调用方法。强化了层次分析法中权向量求解的概念,进一步掌握了随机一致性指标求解方法以及随机一致性检验的方法。