精华内容
下载资源
问答
  • 20190905层析分析法matlab,未通过一致性检验时,重新构造判断矩阵再计算
    千次阅读
    2019-09-05 14:04:13

    层次分析法原理简单,matlab实现起来也较容易。
    对于matlab新手而言,主要在判断矩阵未通过一致性检验的时候,需要重新输入,重新计算。

    clc;
    clear;% 清除所有命令窗口,清除所有变量
    while true %无条件进入循环
    A=input('请输入判断矩阵A=');
    [m,n]=size(A);                     %获取指标个数
    RI=[  0	 0	 0.58 	0.90	1.12	1.26	1.36	1.41	1.46];
    [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为:');
     	break; 
    
    else
    	disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
    	continue;
    end    
       
    end
    
    Q=zeros(n,1);
    for i=1:n
      	Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
    end
    Q  %最后输出权重值
    
    更多相关内容
  • 设计了一种交互式的算法, 用该算法调整不一致性判断矩阵, 可以得到多个满足一致性要求的 合理方案, 专家或决策者可根据自己的意愿, 从这些方案中选择一个满意的方案. 实验表明: 该算法是有 效的、可行的. 关键词: ...
  • MATLAB---成对判断矩阵检验一致性和求权重,整理而来的
  • 结合模糊判断矩阵的构造和一致性检验2个步骤,利用人机交互的特点,在构造模糊判断矩阵的过程中,及时将矩阵的一致性信息反馈给决策者理论上证明:决策者按照反馈信息构造矩阵,能够保证该矩阵具有一致性。案例分析表明:...
  • 论文研究-语言判断矩阵的满意一致性检验方法.pdf, 分析了语言判断矩阵具有满意一致性定义的合理性, 定义了一个满意的一致性指标; 给出了满意一致性指标的计算方法, 通过...
  • 判断矩阵一致性检验的Matlab源程序代码

    千次阅读 多人点赞 2019-08-07 13:53:03
    disp('请输入判断矩阵A') A=input('A='); [n,n] = size(A) %方法1: 算术平均法 Sum_A = sum(A); SUM_A = repmat(Sum_A,n,1); Stand_A = A ./ SUM_A; Stand_A = A ./ Sum_A; % 这样也可以的 disp('算术平均法求权重...
    Matlab源程序代码如下:
    clc
    clear
    disp('请输入判断矩阵A')
    A=input('A=');
    [n,n] = size(A)
    %方法1: 算术平均法
    Sum_A = sum(A);
    SUM_A = repmat(Sum_A,n,1);
    Stand_A = A ./ SUM_A;
    Stand_A = A ./ Sum_A; % 这样也可以的  
    disp('算术平均法求权重的结果为:');
    disp(sum(Stand_A,2)./n)
    %方法2: 几何平均法
    Prduct_A = prod(A,2);
    Prduct_n_A = Prduct_A .^ (1/n);
    disp('几何平均法求权重的结果为:');
    disp(Prduct_n_A ./ sum(Prduct_n_A))
    %方法3: 特征值法求权重
    [V,D] = eig(A);
    Max_eig = max(max(D))
    [r,c]=find(D == Max_eig , 1);
    disp('特征值法求权重的结果为:');
    disp( V(:,c) ./ sum(V(:,c)) )
    %计算一致性比例CR
    CI = (Max_eig - n)/(n-1);
    RI=[0 0.0001 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]; 
    % 这里n=2时,一定是一致矩阵,所以CI = 0,为了避免分母为0,将这里的第二个元素改为了很接近0的正数
    CR=CI/RI(n);
    disp('一致性指标CI=');disp(CI);
    disp('一致性比例CR=');disp(CR);
    if CR<0.10
        disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
    else
        disp('注意:CR >=
    0.10,因此该判断矩阵A需要进行修改!');
    end
    展开全文
  • 通过"标度变换"把不具"可加性"的比例标度转化为评分标度,利用评分标度的"可加性"可计算比较对象的得分、并按得分率对比较对象排序。与已有单准则排序方法的实质性区别是,勿需进行一致性检验
  • 层次分析法判断矩阵求权值以及一致性检验程序function [w,CR]=mycom(A,m,RI)[x,lumda]=eig(A);r=abs(sum(lumda));n=find(r==max(r));max_lumda_A=lumda(n,n);max_x_A=x(:,n);w=A/sum(A);CR=(max_lumda_A-m)/(m-1)/RI...

    层次分析法判断矩阵求权值以及一致性检验程序

    function [w,CR]=mycom(A,m,RI)

    [x,lumda]=eig(A);

    r=abs(sum(lumda));

    n=find(r==max(r));

    max_lumda_A=lumda(n,n);

    max_x_A=x(:,n);

    w=A/sum(A);

    CR=(max_lumda_A-m)/(m-1)/RI;

    end

    本matlab程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性检验。

    其中A为判断矩阵,不同的标度和评定A将不同。

    m为A的维数

    RI为判断矩阵的平均随机一致性指标:根据m的不同值不同。

    RI值

    指标数123456789RI000.580.91.121.241.381.411.46

    当CR<0.1时 符合一致性检验,判断矩阵构造合理。

    下面是层次分析法的简介,以及判断矩阵构造方法。

    一.层次分析法的含义

    层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。

    层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后得用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。这里所谓“优先权重”是一种相对的量度,它表明各备择方案在某一特点的评价准则或子目标,标下优越程度的相对量度,以及各子目标对上一层目标而言重要程度的相对量度。层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。其用法是构造判断矩阵,求出其最大特征值。及其所对应的特征向量W,归一化后,即为某一层次指标对于上一层次某相关指标的相对重要性权值。建立系统的递阶层次结构;

    构造两两比较判断矩阵;(正互反矩阵)

    针对某一个标准,计算各备选元素的权重;

    计算当前一层元素关于总目标的排序权重。

    进行一致性检验。 模糊综合评价法是一种基于模糊数学的综合评标方法。该综合评价法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价。它具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决。…,Bn之间的相对重要性为:Bi与Bj的相对重要性为Bij, Bij,通常为1-9标度,此时Bij,取1,2,。。。,9及其倒数,1-9标度的含义为:

    表5-17 标度含义

    定义(Bij )标度Bi因素比Bj因素一样重要1Bi因素比Bj因素稍微重要3Bi因素比Bj因素明显重要5Bi因素比Bj因素重要得多7Bi因素比Bj因素极端重要9Bi因素比Bj因素重要性在两个判断尺度中间2,4,6,8

    判断矩阵的形式表示见表5-18

    表5-18 判断矩阵

    AkB1 B2 … Bj … BjB1

    B2

    BnB11 B12 … B1j … B1m

    B21 B22 … B2j … B1m

    …. …. … … … …

    Bn1 Bn2 … Bnj … Bnm②计算权重根据判断矩阵,先计算出判断矩阵的特征向量W,然后经过归一化处理,使其满足

    ∑W=1,即可求出Bi对于Ak的相对重要程度,即权重。

    A 计算判断矩阵B每一行数值的乘积Mi,并计算其n次方根:

    (5-8)

    B、计算的权数

    (5-9)

    C、计算判断矩阵的最大特征根

    (5-10)

    ③判断矩阵的一致性检验

    在评价过程中,评价者是不可能对所有因素的数值进行精确判断的,根据会存在误差,这就会导致判断矩阵的特征值会产生偏差。在构造判断矩阵时,并不要求判断具有完全一致性,但是要求判断具有大体的一致性却是必须的,否则将无法进行分析。因此,在求出最大特征根λmax后,还要进行一致性检验。

    计算一致性指标CI

    CI=(λmax-n)/(n-1) (4-11)

    当λmax稍大

    展开全文
  • 可在MATLAB中进行判断矩阵的权重计算,包括算术平均值法,特征值法,并进行一致性检验,亲测可用
  • 层次分析法中判断矩阵的填写方法一致性检验的步骤、以及根据判断矩阵计算权重的方法

    目录:

    • 准则层判断矩阵怎么填写
    • 方案层判断矩阵怎么填写
    • 关于判断矩阵和一致矩阵的知识点补充
    • 一致性检验的步骤
    • 怎样通过判断矩阵去计算权重(三种方法),及相应的代码示例
    准则层判断矩阵的填写:

    填写准则层判断矩阵的目的是确定各准则(指标)所占的比重,填写好层次分析表的指标权重列,例如在选择最佳旅游地问题的指标景色、花费、居住、饮食、交通各自占比是多少,后续可以通过这些指标占比计算出每一个可选方案的总分。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    填表的方法是依据标度表,两两比较指标的重要程度,只需要比较10次就可以完成准则层判断矩阵的填写


    方案层判断矩阵的填写

    填写方案层判断矩阵的目的是给出,对于某一特定指标,它在各个可选方案的具体得分是多少,也就是给出层次分析表的每一横行的数据。方法是依据标度表,填写好判断矩阵。有几个评价指标,就需要填多少此方案层判断矩阵。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    知识点补充:
    判断矩阵(正互反矩阵)
    • 首先判断矩阵一定是一个方阵
    • 判断矩阵每一个数据 Aij表示与指标 j相比 i的重要程度
    • i=j 时,两个指标相同,因此同等重要,记为1,因此判断矩阵的对角线元素为1
    • 每一个元素均大于零,且 Aij * Aji=1

    在层次分析法中,我们构造的矩阵的均为判断矩阵

    一致矩阵
    • 矩阵首先满足判断矩阵的所有特点
    • 若判断矩阵满足 Aij * Ajk = Aik,直观的看就是矩阵的各行(各列)成倍数关系

    注意点:在使用判断矩阵求权重之前,必须对其进行一致性检验


    一致性检验的步骤:

    第一步:计算一致性指标CI
    C I    =    λ max ⁡ − n n − 1 CI\,\,=\,\,\frac{\lambda _{\max}-n}{n-1} CI=n1λmaxn
    第二步:查找对应的平均随机一致性指标RI
    在这里插入图片描述
    第三步:计算一致性比例CR
    C R    =    C I R I CR\,\,=\,\,\frac{CI}{RI} CR=RICI
    判断:如果CR<0.1,则可认为判断举证的一致性可以接受;否则需要对判断矩阵进行修改

    一致性检验的MATLAB代码如下:

    disp('请输入判断矩阵A')
    A=input('A=');
    [n,n] = size(A);
    [V,D] = eig(A);%求出矩阵A的特征值和特征向量
    Max_eig = max(max(D));%找到矩阵A的最大特征值
    % 下面是计算一致性比例CR的环节 % 
    CI = (Max_eig - n) / (n-1);
    RI=[0 0.0001 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];
    %注意哦,这里的RI最多支持 n = 15
    % 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数
    CR=CI/RI(n);
    disp('一致性指标CI=');disp(CI);
    disp('一致性比例CR=');disp(CR);
    if CR<0.10
        disp('因为CR<0.10,所以该判断矩阵A的一致性可以接受!');
    else
        disp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
    end
    
    

    通过判断矩阵求权重

    方法一、算数平均法求权重

    第一步:将判断矩阵按照列归一化(每一个元素除以器所在列的和)

    第二步:将归一化的各列相加(按行求和)

    第三步:将相加后得到的向量中的每个元素除以n即可得到权重向量

    具体数学表达:

    假设判断矩阵为下面这个矩阵A:
    A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A=\left[ \begin{matrix} a_{11}& a_{12}& \cdots& a_{1n}\\ a_{21}& a_{22}& \cdots& a_{2n}\\ \vdots& \vdots& \ddots& \vdots\\ a_{n1}& a_{n2}& \cdots& a_{nn}\\ \end{matrix} \right] A=a11a21an1a12a22an2a1na2nann
    那么算数平均法求得的权重向量为:
    w i = 1 n ∑ j = 1 n a i j ∑ k = 1 n a k j    w_i=\frac{1}{n}\sum_{j=1}^n{\frac{a_{ij}}{\sum_{k=1}^n{a_{kj}}}}\,\, wi=n1j=1nk=1nakjaij
    MATLAB代码如下:

    disp('请输入判断矩阵A')
    A=input('A=');
    [n,n] = size(A);
    
    Sum_A = sum(A);   %sum函数默认是对矩阵的每一列进行累加,即按行求和
    SUM_A = repmat(Sum_A,n,1);    %将Sum_A这个行向量,重复n行,重复一列
    Stand_A = A ./ SUM_A;         %将矩阵A归一化,即每一个元素除以其所在列的和
    
    disp('算术平均法求权重的结果为:');
    disp(sum(Stand_A,2)./n)      %把归一化的矩阵的每一行累加,然后除以n,得到权重
    

    方法二、几何平均法求权重

    第一步:将A元素按照行相乘得到一个新的列向量

    第二步:将新的列向量的每个分量开n次方

    第三步:对该列向量进行归一化即可得到权重向量

    假设判断矩阵为下面这个矩阵A:
    A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A=\left[ \begin{matrix} a_{11}& a_{12}& \cdots& a_{1n}\\ a_{21}& a_{22}& \cdots& a_{2n}\\ \vdots& \vdots& \ddots& \vdots\\ a_{n1}& a_{n2}& \cdots& a_{nn}\\ \end{matrix} \right] A=a11a21an1a12a22an2a1na2nann
    那么几何平均法求得的权重向量为:
    w i = ( ∏ j = 1 n a i j ) 1 n ∑ k = 1 n ( ∏ j = 1 n a k j ) 1 n , ( i = 1 , 2 , … , n ) w_i=\frac{\left( \prod_{j=1}^n{a_{ij}} \right) ^{\frac{1}{n}}}{\sum_{k=1}^n{\left( \prod_{j=1}^n{a_{kj}} \right) ^{\frac{1}{n}}}},\left( i=1,2,…\text{,}n \right) wi=k=1n(j=1nakj)n1(j=1naij)n1,(i=1,2,n)
    注意:每一种方法求得的权重和应该为1,由于四舍五入导致的误差可以忽略,一般结果保留四位小数

    MATLAB代码如下:

    disp('请输入判断矩阵A')
    A=input('A=');
    [n,n] = size(A);  %获得矩阵A的行和列的大小
    
    Prduct_A = prod(A,2);       %把矩阵A的每一行累乘,即按照列累乘
    Prduct_n_A = Prduct_A .^ (1/n);   %将新的列向量的每个分量开n次方
    disp('几何平均法求权重的结果为:');
    disp(Prduct_n_A ./ sum(Prduct_n_A))  %对该列向量进行归一化即可得到权重向量
    

    方法三、特征值法求权重(常用)

    知识点提醒:一致矩阵有一个特征值为n,其余特征值均为0,并且当矩阵的特征值为n时,其对应的特征向量为
    k [ 1 a 11 , 1 a 12 , … , 1 a 1 n ] T , ( k ≠ 0 ) k\left[ \frac{1}{a_{11}},\frac{1}{a_{12}},…,\frac{1}{a_{1n}} \right] ^T,\left( k\ne 0 \right) k[a111,a121,,a1n1]T,(k=0)
    第一步:求出矩阵A的最大特征值和以及其对应的特征向量

    第二步:对求出的特征向量进行归一化即可得到所求的权重

    MATLAB代码如下:

    disp('请输入判断矩阵A')
    A=input('A=');
    
    %求矩阵A的全部特征值,构成对角阵D,求A的特征向量构成V的列向量(V的每一列都是D中与之相同列的特征值的特征向量)
    [V,D] = eig(A); 
    Max_eig = max(max(D));   %求出矩阵A的最大的特征值
    [r,c]=find(D == Max_eig , 1);  %返回最大特征值所在的行和列,其中C记录所在列
    disp('特征值法求权重的结果为:');
    disp( V(:,c) ./ sum(V(:,c)) )  %对最大特征值对应的特征向量进行归一化处理
    

    友情提示:在比赛当中,建议三种方法全部列出来,但仅适用特征值法求得的权重结果进行计算


    更多有关与层次分析法的经典获奖论文,以及建模论文模板等资料关注公众号,回复,“层次分析法”,即可免费领取!!!
    在这里插入图片描述

    展开全文
  • 论文研究-层次分析法判断矩阵一致性的形成机理和一种修正方法.pdf, 本文对层次分析法判断矩阵一致性的形成机理进行了探讨, 分析了构成判断误差及影响判断矩阵不满足...
  • 针对现有一致性改进方法中存在的缺陷,用行几何平均法和几何一致性指数分别作为确定权重的方法一致性检验的标准,根据可能满意度原理,定义了一致可信度,作为判断矩阵一致性改进的标准。在此基础上,提出了新的...
  • 论文研究-小生境遗传算法修正三角模糊数互补判断矩阵一致性及排序.pdf, 一致性检验、修正和权值排序作为一个整体处理,属于全局分析方法.采用遗传算法优化建立的一致性...
  • 为了方便检验语言判断矩阵一致性,通过引入导出矩阵的概念将语言判断矩阵转化为数量矩阵,并提出了语言判断矩阵完全一致性、满意一致性的简便的判定方法;针对基于语言判断矩阵的方案排序问题,根据导出矩阵的性质通过...
  • 一致性判断矩阵的专家直接构造方法,赵希男,王艳梅,本文根据判断矩阵一致性性质给出了专家直接构造一致性矩阵的方法,该方法由于减少了专家判断次数而提高了判断效率,同时由于由
  • 判断矩阵一致性检验与改进是层次分析法中的重要问题.针对现有检验与调整方法存在的不足,将"可能满意度"的概念引入该领域,提出一种新的优化调整算法.该方法利用判断...
  • 论文研究-区间数判断矩阵一致性检验及排序方法 .pdf,
  • 论文研究-一种检验判断矩阵次序一致性的实用方法.pdf, 论述了在层次分析法的研究与应用中保持两两比较判断矩阵次序一致性的必要性, 并给出一种检验次序一致性的实用方法...
  • 论文研究- 判断矩阵一致性检验与误差分析.pdf, 一、一致性指标μ与相对误差δ_(ij)的分布关系 在层次分析法中,关于判断矩阵的一致性指标μ有如下定理:若正互反矩阵A=(α_(ij))_(n×n)最大特征根对应的正特征向量W...
  • 针对AHP中不一致判断矩阵,提出了一种新的调整方法. 通过将AHP不一致判断矩阵的调整问题... 该方法与现有方法相比,不仅具有直观性,易于计算机编程实现,而且能够真正做到以最小的改动量实现判断矩阵满足一致性要求.
  • 对于matlab新手而言,主要在判断矩阵未通过一致性检验的时候,需要重新输入,重新计算。clc;clear;%清除所有命令窗口,清除所有变量whiletrue%无条件进入循环A=input('请输入判断矩阵A=');[m,n]=size(A);%获取指标个...
  • 主要解决验证矩阵一致性问题 定义一个函数,读取粘贴板(从复制excel复制表格) GetMatrix = function() { tmp = read.table("clipboard",sep = "\t",header = F) tmp = as.matrix(tmp) 9+1 weight(tmp) CRtest...
  • function [w,CR]=mycom(A,m,RI) [x,lumda]=eig(A; r=abs(sum(lumda; n=find(r==max(r; max_lumda_A=lumda(n,n; max_x_A=x,n;... end 本 matlab 程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性
  • 层次分析法可以用的代码,数模的同学可以用
  • matlab一致性检验

    千次阅读 2022-01-03 23:14:05
    % 一致性检验 a_max = max(eig(D));% a_max为最大特征值 disp(['λmax = ',num2str(a_max)]) [~,n] = size(D); % 使用不到的数可以替换为~ CI = (a_max-n)/(n-1); disp('CI = ');disp(CI) % RI为平均随机一致性指标...
  • 指出AHP 法中现有标度方法的主要缺陷是: 标度 “粒度...应判断矩阵构造方法, 其特点是标度值能较为准确地标度方案的重要程度, 所构造的判断矩阵是完全一 致的, 因而大大提高了AHP 方法决策的可靠和实用。</p>
  • 一致性检验(kappa一致性分析)

    千次阅读 2021-01-17 02:32:48
    层次分析法中一致性检验指标ci不可以小于0,cr小于0.1判断矩阵才满足一致性检验,有时候可以等于0,但不能为负。若为负的话,说明数值错了。请把原因解释的尽量详细一些,谢谢~~~首先要知道,...
  • 一、基础知识在数据分析或临床工作中,我们会经常遇到检验一致性的问题,如判断不同模型或者诊断方法在预测结果上是否具有一致性,如模型预测...Cohen于1960年提出Kappa分析,Kappa系数是一个用于一致性检验的指标,...
  • 论文研究-互补判断矩阵的两种排序方法——权的最小平方法及特征向量法...而且 ,基于转换矩阵 ,提出了互补判断矩阵排序的特征向量法 (CEM) ,给出了其相应的迭代算法及互补判断矩阵一致性检验方法 .最后进行了算例分析.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,799
精华内容 7,519
关键字:

判断矩阵的一致性检验 方法