作业帮 > 综合 > 作业

在层次分析法中,知道了判断矩阵,用什么软件可以快速求得权重和一致性检验的值啦?看补充:

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 23:35:42
在层次分析法中,知道了判断矩阵,用什么软件可以快速求得权重和一致性检验的值啦?看补充:
matlab难道还要自己编写代码才能求到吗,yaahp先要画出层次模型图,才能求,我要的只是把矩阵输进去,就能求到结果,行吗,谢谢各位.
没有这种软件,但是我写了一个程序
经检验,效果不错,主要正对三层de
如果是四层的话,自己归类
PS:四类的应该能解,但是我没试过
一下是我的程序
function w=l_ahp(num,g)
% w:最后权重 num:层数 g:行向量(各层准则数量)
% 调运方式:w=l_ahp(num,g)
% EXAMPLE:
disp('-----层次分析系统(AHP)-------')
for i=2:num %控制各层
disp(['第',num2cell(i),'层分析'])
trace_w{i-1}(1:g(i),1:g(i-1))=zeros(g(i),g(i-1));
trace_l{i-1}(1,1:g(i-1))=zeros(1,g(i-1));
CI{i-1}(1:g(i-1))=zeros(1,g(i-1));
CR{i-1}(1:g(i-1))=zeros(1,g(i-1));
for j=1:g(i-1)
disp(['第',num2cell(i),'层','第',num2cell(j),'个判断矩阵分析'])
A=input('输入判断矩阵(按你的顺序)');
[w,l]=eig(A);
ll=(max(l));
[ll,index]=max(ll);
w=w(:,index);
w=abs(w);
w=w./sum(w)
trace_w{i-1}(:,j)=w
trace_l{i-1}(1,j)=ll
end
CI{i-1}(:)=(trace_l{i-1}(:)-g(i))./(g(i)-1);
RI=RI_process(g(i))
CR{i-1}(:)=CI{i-1}(:)./RI
c=find(CR{i-1}(:)>=0.1)
zhi=isempty(c);
if zhi==1
disp('一致性检验结果(层内单派层)')
disp(CR{i-1});
disp('各个判断矩阵权向量')
disp(trace_w{i-1});
disp('各个判断矩阵最大特征值')
disp(trace_l{i-1});
else
['请修改第',num2cell(c),'次的比较矩阵']
['以下结果无效']
break;
end
end
disp('层次总排序及其一致性检验')
w=trace_w{num-1}(1:end,1:end)*trace_w{1}(1:end,1:end);
w=abs(w);
w=w./sum(w);
CI=sum(trace_w{1}(:).*CI{2}(:));
CR=CI/RI_process(g(num));
if CR