- 在线时间
- 114 小时
- 最后登录
- 2021-5-14
- 注册时间
- 2020-4-3
- 听众数
- 3
- 收听数
- 3
- 能力
- 0 分
- 体力
- 1518 点
- 威望
- 0 点
- 阅读权限
- 50
- 积分
- 661
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 409
- 主题
- 69
- 精华
- 0
- 分享
- 1
- 好友
- 6
升级   15.25% TA的每日心情 | 开心 2020-9-13 05:34 |
---|
签到天数: 149 天 [LV.7]常住居民III
网络挑战赛参赛者
群组: 2013认证赛C题讨论群组 |
在层次分析法中,我们都要用到判断矩阵。而判断矩阵一致性的检验有一个很重要的指标: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 |
zan
|