层析分析法(matlab简单程序)

简介:

这种方法特点是:在对复杂决策问题的本质,影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标多准则或无结构特性的复杂决策问题提供简单的决策方法。是对难以完全定量的复杂系统作出决策的模型和方法。

层次分析法根据问题的性质和要求的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案,措施等)相对最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。

构建模型时,大体可以分为以下四个步骤:

1.建立层次结构模型;

绘出层次结构图:最高层:决策的目的,要解决的问题;最低层:决策时的备选方案。中间层:考虑的因素,决策的准则。

 

2.构造判断(成对比较)矩阵;

在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接受,因而Santy等人提出:一致矩阵法,即:

  • 不把所有因素放在一起比较,而是两两相互比较
  • 对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准确度。

成对比较矩阵是表示本层所有因素对上一层某个因素的相对重要性的比较。成对比较矩阵矩阵的元素用Santy的1-9标度方法给出:

 

3.层次单排序及其一致性检验;

允许不一致,但要确定不一致的允许范围。

4.层次总排序及其一致性检验。

举例

 

程序:

disp('请输入判断矩阵A(n阶)');
A=input('A=');
[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(w);
         %以下是一致性检验
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);
end

求解效果

 

 

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值