今天用将近一天的时间学习了层次分析模型(AHP),主要参考了一份pdf,这个网站,和暨南大学章老师的课件,现写出一些自己总结的要点。

一、层次分析法的基本步骤:

角度一:

实际问题——分解——>多个因素——建立——>层次结构—

—确定——>诸因素的相对重要性——计算——>权向量—

—判断——>综合决策

角度二:

建立层次结构模型——>构造判断矩阵——>层次单排序——>一致性检验——>层次总排序。

二、几个理解的重点

1.正反矩阵

若矩阵A=(aij)mxn满足以下特征:

(1) aij>0

(2)aij=1/aji

则称矩阵A 为正互反矩阵。

2.一致阵

定义:满足a(ij)·a(jk)=a(ik), i,j,k=1,2,··,n的正互反阵A称一致阵。

性质:A的秩为1,A的唯一非0特征根为n;

A的任一列向量是对应于n的特征向量;

A的归一化特征向量可作为权向量。

注意:

这里想了下,用最大特征根的特征向量替代A,可能是为了最大限度的保存原始数据(A)的信息量(不确定。。。)

3.一致性检验

一致性检验,具体还要涉及组合一致性检验。

三、MATLAB实现

这里先是搜的资料,看到这段代码,代码写得很清晰,这里直接贴在这里。

clc;

clear;

A=[1 1.2 1.5 1.5;

0.833 1 1.2 1.2;

0.667 0.833 1 1.2;

0.667 0.833 0.833 1];

%因素对比矩阵A,只需要改变矩阵A

[m,n]=size(A); %获取指标个数

RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];

R=rank(A); %求判断矩阵的秩

[V,D]=eig(A); %求判断矩阵的特征值和特征向量,V特征值,D特征向量;

tz=max(D);

B=max(tz); %最大特征值

[row, col]=find(D==B); %最大特征值所在位置

C=V(:,col); %对应特征向量

CI=(B-n)/(n-1); %计算一致性检验指标CI

CR=CI/RI(1,n);

if CR<0.10

disp('CI=');disp(CI);

disp('CR=');disp(CR);

disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');

Q=zeros(n,1);

for i=1:n

Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化

end

Q %输出权重向量

else

disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');

end

这里是对AHP的一个初步的认识,之后还要深入学习,到时候再继续总结。

#############2016-10-11补更#######################

今天交流群有人问起AHP的一个问题,不太会,就回来再次复习一下,又学到一点知识。看看之前写的,感觉好乱。。。也不删除了,就当个预备知识和。。娱乐吧。

这里主要写下一些要点和细节。

一、AHP流程

1.建立层次结构模型

2.构建Z-C判断矩阵,设为A。

这里我们要确定准则层C中,各个因素的权重,为此我们要计算判断矩阵A的最大的特征值及其特征向量。

此时,我们要对A进行一致性检验,只有A为一致阵(关于一致阵,前文有说明)或者其不一致程度在一个特定范围内时,才能将其特征根对应的特征向量作为被比较因素的权量。

一般情况下,矩阵A是不一致的,所以我们此时要进行一致性检验(具体在前文也有说明)。

通过一致性检验后,就计算得到A的最大特征值及其对应的特征向量,这个特征向量即为各个准则的权重。

3.构建C-P矩阵,层次单排序。

对应的特征向量矩阵如下:

这个矩阵的每一行代表一个候选人的在健康,知识业务等六个方面的权重大小。

4.构建Z-P矩阵,层次总排序,决策。

总的来说AHP还是那句,先分解再综合。拿上面的例子来说,我要从三人中选一名领导,那么我通过6个不同的角度来为这三人打分,首先确定这6个角度在你心目中的比重大小(Z-C),之后再通过对比看三人分别在这6个角度的得分(C-P)。最后再和对应角度的权重相乘(Z-P),就得到总的分数,排序,作出决策。

matlab如何求指标的权向量_层次分析模型(AHP)及其MATLAB实现相关推荐

  1. matlab如何求指标的权向量_【Matlab】案例讲解层次分析法的Matlab实现

    我写过层次分析法的Matlab实现:张敬信:[评价算法]层次分析法​zhuanlan.zhihu.com 其中的ahp函数是来自<吴鹏. Matlab高效编程技巧与应用:25个案例分析>, ...

  2. matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...

    第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...

  3. 数学实验8 用matlab软件求级数的和_函数的泰勒级数和傅氏级数,数学实验8用matlab软件求级数的和函数的泰勒级数和傅氏级数.pdf-资源下载蚂蚁文库...

    数学实验8 用matlab软件求级数的和函数的泰勒级数和傅氏级数.pdf 数学实验八用Matlab软件求级数的和.函数的泰勒级数和傅氏级数一.求级数的和在Matlab中,可用symsum函数求数列或级 ...

  4. 指标实现层级_层次分析法指标权重的确定(C语言实现)

    /*************************看我 否则后果自负************************* 功能:层次分析法指标权重的确定 语言:C语言 编译器:GCC4.8 0错误 0 ...

  5. matlab pca求曲率和法向量_实践课堂 已给出实例的MATLAB求解大汇总(线性规划)...

    [例1]用图解法求解如下二维线性规划问题. 友情链接:例1详解可点击这里 [例1]的MATLAB求解. %原目标函数,为转化为极小,取目标函数中设计变量的相反数 c=[-1;-1]; %线性不等式约束 ...

  6. matlab中input输入多个数_你可能不知道的MATLAB操作技巧#第二话

    回顾链接  这是#第一话#的超链接,让大家对MATLAB有一个感性认识. 第二话 1-梳理一下MATLAB中的字符char.符号变量symbol和数值型变量double等的区别.经过图图长时间调研,发 ...

  7. matlab 神经网络设计多层隐含层_[rbf神经网络]请教关于MATLAB中RBF神经网络隐含层神经元个数的问题...

    rbf神经网络 请教关于MATLAB中RBF神经网络隐含层神经元个数的问题 问题补充:MATLAB中用newrb(P, T, goal, spread)创建的神经网络,用于数据的预测,程序可以运行并能 ...

  8. matlab中散点图的线性拟合_【在线等】Matlab 散点图线性拟合

    我着急做个图,具体题目是:有三组数据:分别为x,y,z,做一个散点图,然后线性拟合,并且在图中显示拟合直线方程,请写出全部运行语句并稍加解释.x坐标名称为H(m),y为S(mm),z为Sf(mm),数 ...

  9. 正交解调 matlab,MATLAB正交振幅调制解调仿真分析(一)_通信工程毕业论文范文

    MATLAB正交振幅调制解调仿真分析(一)_通信工程毕业论文范文 发布时间:2015-02-04 来源:人大经济论坛 MATLAB正交振幅调制解调仿真分析(一)_通信工程毕业论文范文 基于MATLAB ...

最新文章

  1. js 判断 是否为android
  2. 旷视CEO竟遭监听敲诈:不给300万就卖敏感信息录音!网友:利好无人驾驶?
  3. react 组件的属性
  4. bitmap格式分析
  5. pycharm如何修改默认浏览器?修改成chrome
  6. sql两个数字之差取最接近的_从零学DAX/Sql/Python030203SQL数据分类汇总续篇
  7. redis 存储数据不设置过期时间 会自动过期吗_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...
  8. java mvc引擎_Velocity是一种Java模版引擎技术,MVC架构的一种实现,但它更多的是关注在Model和View之间,作为它们的桥梁。服务端渲染,我们使用最多的就是用他...
  9. clickhouse的常见问题以及和mysql相关特性对比
  10. POJ 3421 X-factor Chains
  11. .NET Windows服务开发流程
  12. SQL Server 2008 R2 清除日志
  13. QT QDir(获取当前路径下的所有文件)
  14. 优质短信api接口具备的特点
  15. java 逆矩阵_用Java实现求逆矩阵
  16. 服务器无线存储器,教你把无线路由器打造成网络存储器
  17. java 崩溃监控,求大神分析drwtsn32 监控javaee程序崩溃日记
  18. CSS3基础(4)——CSS3 渲染属性
  19. 太极图(JAVA实现)
  20. Linux下架构安全邮件服务器之Sendmail

热门文章

  1. UITextField 键盘
  2. [原]IE9 DOM的自定义属性问题
  3. php 浅复制 和 深复制(clone)
  4. 一文学懂Java泛型,详细而全面,值得收藏~
  5. ARM CPU分析(一) 指令集
  6. 进程和线程的区别?什么时候用进程?什么时候用线程?
  7. Windows 系统下设置Nodejs NPM全局路径
  8. loadscript加载
  9. [物理学与PDEs]第3章习题1 只有一个非零分量的磁场
  10. 大数处理之一(加法和乘法)