matlab 中层次分析CR=CIRI ,CR为负数,是不是错了

matlab 中层次分析CR=CIRI ,CR为负数,是不是错了,第1张

一楼说的没错。

%//一致性检验:需满足随机一致性比率CR<01//

% CR小于01判断矩阵才满足一致性检验

% CR不能为负值,CR如果为负值,要么是计算错误了,检查一下计算过程;另一种,要么是你构建的判断矩阵有问题,再调整矩阵里面数值的两两比较关系。

% 若CR=0有两种情况,其一就是你保留的小数位数少,其二就是真的等于0。但没关系,一般这个比值小于01证明矩阵一致性通过检验。

% 若CR>01,则判断矩阵需要调整,你两两比较的结果重要性需要调整

层次分析法很主观的说。。。权重什么的说是专家咨询,都是自己搞的。

编码:clc,clear

fid=fopen('txt3txt','r');

n1=6;n2=4;

a=[];

for i=1:n1

tmp=str2num(fgetl(fid));

a=[a;tmp]; %读准则层判断矩阵

end

for i=1:n1

str1=char(['b',int2str(i),'=[];']);

str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);

eval(str1);

for j=1:n2

tmp=str2num(fgetl(fid));

eval(str2); %读方案层的判断矩阵

end

end

ri=[0,0,058,090,112,124,132,141,145]; %一致性指标

[x,y]=eig(a);

lamda=max(diag(y));

num=find(diag(y)==lamda);

w0=x(:,num)/sum(x(:,num));

cr0=(lamda-n1)/(n1-1)/ri(n1)

for i=1:n1

[x,y]=eig(eval(char(['b',int2str(i)])));

lamda=max(diag(y));

num=find(diag(y)==lamda);

w1(:,i)=x(:,num)/sum(x(:,num));

cr1(i)=(lamda-n2)/(n2-1)/ri(n2);

end

cr1, ts=w1w0, cr=cr1w0

WebKit的C++应用程序接口提供了一系列的Class让我们可以在视窗上显示网页内容,并且实现了一些浏览器的特色,包含使用者连结点击、管理前后页面列表以及使用者曾经拜访过的历史页面等等。

以上就是关于matlab 中层次分析CR=CI/RI ,CR为负数,是不是错了全部的内容,包括:matlab 中层次分析CR=CI/RI ,CR为负数,是不是错了、求数学建模层次分析法详细的例题,要有matlab程序。。、如何用matlab层次分析法确定权重等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10142173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存