随机一致性指标求解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学《数学实验》报告
学号 11209117 姓名 袁骏杰 成绩 实验内容: 随机一致性指标求解
一 实验目的
1)掌握用matlab 求解随机一致性指标的方法
2)加深对随机一致性指标概念的理解
二 实验内容与要求
用matlab 或C++编写程序分别计算n=3-30时的n 阶矩阵的随机一致性检验指标的值RI 。为保证随机性,要求每阶创造1000个矩阵。
三 实验原理
层次分析发建模问题中,需要用到对矩阵A 的一致性检验,然而对于一般的问题,尤其当考虑实际因素比较多时,很难保证判断矩阵A 为一致矩阵,因此在计算矩阵A 的最大特征值max λ之时,需要检验矩阵A 的一致程度。
令: 1CI max --=
n n
λ 称CI 为一致性指标。显然CI=0是矩阵A 为一致矩阵的必要条件。可以看出CI 值越大,A 的不一致程度越严重。
但是对于一个具体的矩阵来书,很难说其一致性指标CI 到底是很大还是很小,Saaty 针对上述定义的不严格性,提出了用随机一致性指标RI 来检验判断矩阵A 是否具有满意的一致性。
RI 是按照下面的方式选取的:
对于固定的n ,随机构造正互反矩阵A ’,他的元素a ij ’是从1~9及其倒数中随机选取的,因此A ’的一致性一般都是很差的,取充分大的子样儿得到A ’最大特征值的平均值k ,定义:
1R --=
n n k I RI CI CR =
CR 称为随机一致性比率。RI 称为随机一致性指标。当CR<0.1时,一般认为矩阵A 的不一致程度再容许范围之内,可以用其特征向量作为权向量。
求解随机一致性指标可按如下步骤:
构造1000个n 阶随机正互反矩阵A ’(元素0~9及其倒数)
求1000个矩阵的最大特征值的平均值k
计算RI 的值:
1R --=
n n k I
四 主要实验代码及结果
M 文件
function RI=ri(n)
% 输入n 值
n=ceil(n);
if n<=0, error('n 必须为正数');
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
rank=ceil(17*rand(n)); % 产生一组n 阶正互反矩阵
for i=1:n
for j=i:n
A(i,j)=scaler(rank(i,j));
A(j,i)=1/A(i,j);
A(i,i)=1;
end
end
rigenvector=eig(A); %求最大特征值
lamda(num)=max(rigenvector); %求1000组最大特征值平均值
end
lamda_average=sum(lamda)/times;
RI=(lamda_average-n)/(n-1); %求RI 的值
运行程序
for n=3:30
RI(n)=ri(n);
RI(n)
end
运行结果
五实验总结
本次实验通过实践学习了Matlab编程的基本规则以及自定义函数的调用方法。实验虽然简单,但我也从中强化了层次分析法中权向量求解的概念,进一步掌握了随机一致性指标求解方法以及随机一致性检验的方法。