层次聚类分析Matlab编码计算

01

AHP层次决策分析计算函数

  • 求判断矩阵最大特征根和归一化特征向量:

function [maxEigVal,w] = maxEigValVec(A)%求最大特征值及对应的归一化特征向量%A为判断矩阵%maxEigval:最大特征根;w:归一化特征向量[eigvec,eigval]=eig(A);eigval=diag(eigval);                  %特征向量eigvalmag=imag(eigval);realind=find(eigvalmagrealeigval=eigval(realind);             %实特征根maxEigVal=max(realeigval);            %最大特征值index=find(eigval==maxEigVal);vecinit=eigvec(:,index);               %最大特征值对应的特征向量w=vecinit./sum(vecinit);               %特征向量归一化end
  • 层次单排序的一致性检验:

function [RI,CI]=sglSortExamine(maxEigVal,A)%层次分析法单排序一致性检验%maxEigVal为最大特征值,A为判断矩阵%RI随机一致性指标;CI实际一致性指标n=size(A,1);RIT= [0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51,1.54,1.56,1.58,1.59]; RI=RIT(n);CI=(maxEigVal-n)/(n-1);CR=CI/RI; %一致性比例要求<0.10if CR>=0.10    fprintf('矩阵没通过一致性检验,请重新调整判断矩阵!\n');else    fprintf('一致性比例CR=%f\n',CR);    fprintf('矩阵通过一致性检验\n');endend
  • 求层次总排序权重并进行一致性检验:

function [W,CR]=tolSortVec(uwVec,dwVec,CIVec,RIVec)%   求层次总排序权重并进行一致性检验%   uwVec为上一层因素的总排序权重行向量%   dwVec为下一层因素相对于上一层各因素的层次单排序权重矩阵%   CIVec为一致性指标列向量%   RIVec为随机一致性指标列向量W=dwVec*uwVec; %权重加权成绩求和得出总排序的权重CR=uwVec'*CIVec/(uwVec'*RIVec);  %总排序一致性比例CRfprintf('层次总排序一致性比例CR=%f\n',CR)if CR>=0.10    fprintf('层次总排序没通过一致性检验,请重新调整判断矩阵')else    fprintf('层次总排序通过一致性检验')end

02

AHP层次决策分析主函数

  • 代码:

clear;%总目标A,准则层B:6个元素,对象层C:3个元素,完全层次连接关系%A-B判断矩阵(1个,6*6)A= [1,1,1,4,1,1/2;    1,1,2,4,1,1/2;    1,1/2,1,5,3,1/2;    1/4,1/4,1/5,1,1/3,1/3;    1,1,1/3,3,1,1;    2,2,2,3,3,1];%B-C判断矩阵(6个,3*3)B1 = [1,1/4,1/2;4,1,3;2,1/3,1];B2 = [1,1/4,1/5;4,1,1/2;5,2,1];B3 = [1,3,1/3;1/3,1,1/7;3,7,1];B4 = [1,1/3,5;3,1,7;1/5,1/7,1];B5 = [1,1,7;1,1,7;1/7,1/7,1];B6 = [1,7,9;1/7,1,1;1/9,1,1];%总目标A→准则层B:排序计算与一致性检验[maxEigVal(1),wA]=maxEigValVec(A);fprintf('******总目标A→准则层B******\n')fprintf('判断矩阵最大特征根为:%f\n',maxEigVal(1))fprintf('最大特征根对应的特征向量为:\n')wA'[RIA,CIA]=sglSortExamine(maxEigVal(1),A);%准则层B→对象层C:层次单排序计算与一致性检验[maxEigVal(2),wB1]=maxEigValVec(B1);fprintf('\n\n******准则层B1→对象层C******\n')fprintf('判断矩阵最大特征根为:%f\n',maxEigVal(2))fprintf('最大特征根对应的特征向量为:\n')wB1'[RIB1,CIB1]=sglSortExamine(maxEigVal(2),B1);[maxEigVal(3),wB2]=maxEigValVec(B2);fprintf('\n\n******准则层B2→对象层C******\n')fprintf('判断矩阵最大特征根为:%f\n',maxEigVal(3))fprintf('最大特征根对应的特征向量为:\n')wB2'[RIB2,CIB2]=sglSortExamine(maxEigVal(3),B2);[maxEigVal(4),wB3]=maxEigValVec(B3);fprintf('\n\n******准则层B3→对象层C******\n')fprintf('判断矩阵最大特征根为:%f\n',maxEigVal(4))fprintf('最大特征根对应的特征向量为:\n')wB3'[RIB3,CIB3]=sglSortExamine(maxEigVal(4),B3);[maxEigVal(5),wB4]=maxEigValVec(B4);fprintf('\n\n******准则层B4→对象层C******\n')fprintf('判断矩阵最大特征根为:%f\n',maxEigVal(5))fprintf('最大特征根对应的特征向量为:\n')wB4'[RIB4,CIB4]=sglSortExamine(maxEigVal(5),B4);[maxEigVal(6),wB5]=maxEigValVec(B5);fprintf('\n\n******准则层B5→对象层C******\n')fprintf('判断矩阵最大特征根为:%f\n',maxEigVal(6))fprintf('最大特征根对应的特征向量为:\n')wB5'[RIB5,CIB5]=sglSortExamine(maxEigVal(6),B5);[maxEigVal(7),wB6]=maxEigValVec(B6);fprintf('\n\n******准则层B6→对象层C******\n')fprintf('判断矩阵最大特征根为:%f\n',maxEigVal(7))fprintf('最大特征根对应的特征向量为:\n')wB6'[RIB6,CIB6]=sglSortExamine(maxEigVal(7),B6);%准则层B→对象层C:层次总排序计算与一致性检验dw=zeros(3,6);dw(:,1)=wB1;dw(:,2)=wB2;dw(:,3)=wB3;dw(:,4)=wB4;dw(:,5)=wB5;dw(:,6)=wB6;fprintf('\n\n******准则层B→对象层C的权重计算汇总:n******\n')dwfprintf('\n\n******准则层B各元素对总目标A的权重计算汇总:n******\n')wA'CIC=[CIB1;CIB2;CIB3;CIB4;CIB5;CIB6];RIC=[RIB1;RIB2;RIB3;RIB4;RIB5;RIB6];tw=tolSortVec(wA,dw,CIC,RIC)';fprintf('\n\n******对象层C各元素对总目标A的权重计算汇总:n******\n')tw[MAX,CHOICE] = max(wA);        %最佳选择fprintf('\n\n******准则层最佳决策准则为第%g个准则!******\n', CHOICE)[MAX,CHOICE] = max(tw);        %最佳选择fprintf('\n\n******对象层最佳决策对象为第%g个对象!******\n', CHOICE)
  • 结果:

******总目标A→准则层B******判断矩阵最大特征根为:6.617780最大特征根对应的特征向量为:ans =    0.1507    0.1792    0.1886    0.0472    0.1464    0.2879一致性比例CR=0.099642矩阵通过一致性检验******准则层B1→对象层C******判断矩阵最大特征根为:3.018295最大特征根对应的特征向量为:ans =    0.1365    0.6250    0.2385一致性比例CR=0.015771矩阵通过一致性检验******准则层B2→对象层C******判断矩阵最大特征根为:3.024595最大特征根对应的特征向量为:ans =    0.0974    0.3331    0.5695一致性比例CR=0.021203矩阵通过一致性检验******准则层B3→对象层C******判断矩阵最大特征根为:3.007022最大特征根对应的特征向量为:ans =    0.2426    0.0879    0.6694一致性比例CR=0.006053矩阵通过一致性检验******准则层B4→对象层C******判断矩阵最大特征根为:3.064888最大特征根对应的特征向量为:ans =    0.2790    0.6491    0.0719一致性比例CR=0.055938矩阵通过一致性检验******准则层B5→对象层C******判断矩阵最大特征根为:3.000000最大特征根对应的特征向量为:ans =    0.4667    0.4667    0.0667一致性比例CR=-0.000000矩阵通过一致性检验******准则层B6→对象层C******判断矩阵最大特征根为:3.007022最大特征根对应的特征向量为:ans =    0.7986    0.1049    0.0965一致性比例CR=0.006053矩阵通过一致性检验******准则层B→对象层C的权重计算汇总:n******dw =    0.1365    0.0974    0.2426    0.2790    0.4667    0.7986    0.6250    0.3331    0.0879    0.6491    0.4667    0.1049    0.2385    0.5695    0.6694    0.0719    0.0667    0.0965******准则层B各元素对总目标A的权重计算汇总:n******ans =    0.1507    0.1792    0.1886    0.0472    0.1464    0.2879层次总排序一致性比例CR=0.011700层次总排序通过一致性检验******对象层C各元素对总目标A的权重计算汇总:n******tw =    0.3952    0.2996    0.3052******准则层最佳决策准则为第6个准则!************对象层最佳决策对象为第1个对象!******

ahp层次分析法matlab代码_(案例)AHP层次决策分析Matlab编码计算相关推荐

  1. 多准则决策问题评估方法 | 层次分析法(含代码)

    目前多准则决策问题的评估方法主要分为定性分析方法和定量分析方法两类.定性分析方法主要包括专家咨询.熵权法.案例研究和德尔菲法等:定量分析法主要包括层次分析法.主成分分析法.因子分析法.模糊综合评价法. ...

  2. 数学建模——层次分析法Python代码

    数学建模--层次分析法Python代码 import numpy as np class AHP: """ 相关信息的传入和准备 """ d ...

  3. 层次分析法原理及实例(AHP)

    层次分析法(AHP) 一.层次分析法概述 层次分析法(analytic hierarchy process),简称AHP,是指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之上进行定性和 ...

  4. AHP层次分析法及代码

    基本原理 AHP多用于决策和评价类的模型. 应用AHP分析决策问题时,首先要把问题构造为一个有层次的结构模型. 在这个模型下,复杂问题被分解为元素的组成部分.这些元素又按其属性及关系形成若干层次.这些 ...

  5. 层次分析法2:Matlab实现层次分析法的代码详解

    目录 读取数据 读取准则层判断矩阵 读取方案层的判断矩阵 一致性检验 求解权重值 寻找权重值最高的结果 代码分享及注释 例题:挑选合适的工作,经双方恳谈,已有三个单位表示愿意录用某毕业生.该生根据已有 ...

  6. 层次分析法python代码_Python 实现层次分析法

    import csv import numpy as np import tensorflow as tf #大概的思路是: #1.首先输入每个指标下面对应的对比矩阵,每个这个矩阵是由专家比较每两个 ...

  7. a*算法matlab代码_导向滤波算法及其matlab代码实现

    导向滤波同样是一种平滑滤波算法,其与最小二乘滤波和双边滤波相比,同样是一种具有边缘保持的功能的图形滤波算法,可以用于处理图形噪点较多的图像,而且此种滤波算法与最小二乘滤波和双边滤波相比,有其独特的特点 ...

  8. 【数学建模】层次分析法

    层次分析法 引例 层次分析法介绍 成对比较阵和一致性检验 组合权向量 层次分析法步骤 代码实现 RI 一致性检验 层次单排序 计算组合权向量(层次总排序) 经典案例 代码实现 练习训练 参考文献 引例 ...

  9. MATLAB实现层次分析法AHP及案例分析

    层次分析法(Analytic Hierarchy Process, AHP) 1 模型背景 美国运筹学家匹兹堡大学教授Saaty在20世纪70年代初提出的一种层次权重决策分析方法. 层次分析法(Ana ...

  10. 层次分析法及matlab代码

    数学建模算法(一) 层次分析法 The analytic hierarchy process(AHP) [清风数学建模课程笔记] 文章目录 数学建模算法(一) 层次分析法 The analytic h ...

最新文章

  1. R语言使用ggplot2包使用geom_density()函数绘制密度图(自定义颜色填充、线条色彩、分组、均值线)实战(density plot)
  2. LintCode: Max Tree
  3. Mysql 多表联合查询效率分析及优化
  4. ExtJs4学习(七)MVC中的Store
  5. MFC中静态文本控件显示的几种实现方式
  6. Lua 调试(Debug)
  7. java web权限_Javaweb权限管理设计思路
  8. 微软西雅图总部DevOps交流总结
  9. [家里蹲大学数学杂志]第041期中山大学数计学院 2008 级数学与应用数学专业《泛函分析》期末考试试题 A...
  10. webpack 谷歌地图_如何在Webpack中设置可靠且可维护的Google Analytics(分析)
  11. 【深度好文】ICLR 2022 | cosFormer:重新思考注意力机制中的Softmax
  12. CCF201909-4 推荐系统(100分)【模拟】
  13. AeroSpike踩坑手记1:Architecture of a Real Time Operational DBMS论文导读
  14. html----选项卡自动切换以及鼠标悬停时停止(js)
  15. 7z解压crc错误_7-Zip - 常见问题解答(FAQ)
  16. 让 Linux 更安全
  17. Java job interview:项目架构研发京东大数据价值最大化的应用实践
  18. Android程序报错:Anroid 6.0 权限问题java.io.FileNotFoundException: ……:open failed: EACCES (Permission denied)
  19. iOS 框架模式(简述 MVC,MVP,MVVM 和 VIPER CDD)
  20. 游戏设计艺术学习笔记之——第一章 太初之始,有设计师

热门文章

  1. 【t063】最聪明的机器人
  2. java+opencv+intellij idea实现人脸识别
  3. 使用Oracle的DBMS_SQL包执行动态SQL语句
  4. 第二阶段冲刺——个人总结07
  5. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
  6. python3 urllib模块
  7. sqlserver备份后无法还原的解决方法
  8. 8位深, 16位深,24位深,32位深图片显示原理及对比
  9. Android 制定安装重写迁移至SD卡 APP2SD
  10. ‘chromedriver.exe‘ executable needs to be in PATH.解决办法