matlab程序 层次分析一致性检验

clc;clear;disp('请输入判断矩阵A(n阶)');A=[12;1/21];[n,n]=size(A);x=ones(n,100);y=ones(n,100);... clc;clear;
disp('请输入判断矩阵A(n阶)');
A=[1 2;1/2 1];
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
while k>p
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;t=m(i);
disp('权向量');
disp(w);
disp('最大特征值');
disp(t); %以下是一致性检验CI=(t-n)/(n-1);
CI=(t-n)/(n-1);
RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
CR=CI/RI(n);
if CR<0.10
disp('此矩阵的一致性可以接受!');
disp('CI=');
disp(CI);
disp('CR=');
disp(CR);
else
disp('此矩阵的一致性不可以接受!');
end
为什么通不过一致性检验呢?要怎么改?
展开
 我来答
吓栋栋
2014-08-26 · TA获得超过2833个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:196万
展开全部

一致性检验能不能通过和RI矩阵有关系的,你这个检验要求更严格一些所以通过不了。我这有推荐的RI矩阵,你可以用我的这个函数试试,应该没问题。或者你自己更改一下RI矩阵。不过不能改的太大,如果要求太松了,检验就没有意义了。

function A=myjudge()
disp('输入要判定的矩阵');
A=input('A=');
disp('特征值为:');
[V,D]=eig(A);
D1=diag(D);
D1=D1.'
disp('对应的特征向量为:');
V
disp('最大特征值为:');
m=max(D(:))
[n,z]=size(A);
CI=(m-n)/(n-1);
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
ri=RI(n);
CR=CI/ri
disp('是否通过一致性检验?');
if(CR>0.1)
    disp('not pass')
else
        disp('pass')
        [r,c]=find(m==D);
        v=V(:,c);
        disp('权向量为')
        B=v./sum(v)
    
end
end
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
小鱼煌淛癨Tmr
2014-08-17 · 超过61用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:116万
展开全部
用MATLAB进行一致性检验,必须有UGYK程序才可以。
追问
可以进行一致性检验,只是没法通过,但是书上一模一样的矩阵是能通过的,不知道是不是我程序的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式