精华内容
下载资源
问答
  • ahp matlab
    千次阅读
    2020-04-04 00:01:54

    AHP算法MATLAB代码

    使用方法(详情请看这个视频的2P)

    数学建模算法之层次分析法详解

    代码如下

    (1)构造判断矩阵A
    (2)将下文代码复制粘贴到Matlab中即可

    例如:

    A=[1 3 5;0.33 1 3;0.2 0.33,1]
    
    disp('请输入准则层判断矩阵A(n阶)');
    A=input('A=');
    [n,n]=size(A);
    [V,D]=eig(A);%求得特征向量和特征值
                %求出最大特征值和它所对应的特征向量
    tempNum=D(1,1);
    pos=1;
    for h=1:n
        if D(h,h)>tempNum
            tempNum=D(h,h);
            pos=h;
        end
    end    
    w=abs(V(:,pos));
    w=w/sum(w);
    t=D(pos,pos);
    disp('准则层特征向量w=');disp(w);disp('准则层最大特征根t=');disp(t);
             %以下是一致性检验
    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 1.60 1.61 1.615 1.62 1.63];
    CR=CI/RI(n);
    if CR<0.10
        disp('此矩阵的一致性可以接受!');
        disp('CI=');disp(CI);
        disp('CR=');disp(CR);
    else disp('此矩阵的一致性验证失败,请重新进行评分!');
    end
    
    disp('请输入方案层各因素对准则层各因素权重的成对比较阵');
    for i=1:n
        disp('请输入第');disp(i);disp('个准则层因素的判断矩阵B');disp(i);
    
    更多相关内容
  • AHP计算主观权重matlab实现
  • ahp matlab 代码 code-of-matlab 基于matlab实现的关于AHP的代码。 对应的数据来自网上CSDN。
  • ahp matlab代码CSE470 CSE470是模糊逻辑入门课程,由先生在2018年Spring学期期间由孟加拉国达卡市北南大学提供。 作为课程的一部分,我们(我和我的同班同学)必须实施基于模糊逻辑理论的项目。 我们的项目是中学...
  • AHP matlab

    2014-08-31 22:01:38
    层次分析法(Analytic Hierarchy Process,简称AHP)是美国运筹学家、匹兹堡大学T. L. Saaty教授在20世纪70年代初期提出的, AHP是对定性问题进行定量分析的一种简便、灵活而又实用的多准则决策方法。
  • AHP matlab程序

    2018-09-20 15:57:01
    A为评分矩阵,只需要替换掉就行了,然后运行一下权重就出来了,亲测可用
  • AHP评估,层次分析法分析不同的权重,matlab代码
  • MATLAB编写的遗传算法路径规划,实现串口的数据采集,AHP层次分析法计算判断矩阵的最大特征值。
  • AHP,MATLAB代码实现

    2019-01-19 16:58:27
    AHP(层次分析法)的MATLAB代码实现,应用时只需要修改评判矩阵
  • 通过使用matlab,对层次分析法进行求解,从而进一步确定权重,更快的解决问题。
  • 运用一种新的AHP评价方法对分层指标进行评级,新颖之处在于利用了三角模糊数的概念改进评价。
  • 数学建模,层次分析模型(AHP)、DEA、TOPSIS及其MATLAB实现
  • 利用层次分析法来解决数学或经济学中的问题,里面有AHP程序以及相应的AHP建模的讲解说明
  • 对层次分析法的基本功能进行了描述,有利于初学者掌握层次分析法的过程
  • AHP法代码,可以自动检验一致性,开发环境为matlab
  • 计算模糊层次分析权重,主要基于MATLAB算法的程序,可运行
  • matlab代码这是我的数学模型课程的资料库,我在本课程中完成了三个项目。 首先,我们建立一个模型来解决有关选择会议主办城市的时间滞后的问题 已经应用了AHP方法和其他一些距离计算方法。 其次,我们使用华为收集的...
  • 层次分析法MATLAB的实现,程序是全自动的,粘贴进MATLAB编辑器即可运行,根据提示录入值进行计算。
  • 遗传算法无功优化,AHP层次分析法计算判断矩阵的最大特征值,pwm整流器的建模仿真。
  • 分总目标层、准则层、方案层进行层次分析,最后给出各个方案的抉择权重。可以根据具体问题改变判定矩阵对具体问题进行具体分析。
  • ahp matlab代码关于 我们研究了带有多个扩展的Morris-Lecar模型中的尖峰序列中尖峰时序的可靠性。 注入了叠加在直流电流上的冻结高斯噪声电流。 神经元以尖峰序列作为响应,这种尖峰序列显示了试验之间的变异性。 ...
  • ahp_matlab_源码

    2021-10-04 01:20:02
    AHP 层次分析法(Analytic Hierarchy Process,简称AHP)是将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。
  • matlab代码运动神经元 该存储库包含具有活动树突的三个运动神经元模型的源代码。 描述 实验结果指出,脊髓运动神经元的树状树不是被动的电阻-电容网络。 取而代之的是,沿着树状树存在电压门控离子电导,这解释了...
  • ahp matlab代码other_matlab_code 包括AHP,deeplearning_course_files,liquid_holdup_calculatioin等
  • AHP MATLAB

    2011-12-22 22:21:18
    MATLAB实现AHP
  • 层次分析法的代码实现,可以直接运行,不用更改代码路径相关的内容,直接输入判断矩阵就可以了
  • AHP MATLAB 程序 源码

    2010-06-16 22:39:54
    MATLAB中编写的AHP实现程序,比较简单,可实现两层权重的计算
  • 利用Matlab实现AHP模型

    千次阅读 2021-07-06 15:09:41
    一次性检验最后四、个人体会五、附页(AHPMatlab代码) 前言 闲来无事,写一下文章为生活加点料。本文简述了本人对于传统、简单的评价类模型之一的层次分析法(AHP)模型的理解和看法。利用高考生综合各个因素选择...


    前言

    闲来无事,写一下文章为生活加点料。本文简述了本人对于传统、简单的评价类模型之一的层次分析法(AHP)模型的理解和看法。利用高考生综合各个因素选择高校的例子,结合Matlab实现AHP模型,当然,利用Python也是同样的可行。(文章中出现的高校信息是本人学习过程中模拟的数据,毫无实际意义,仅为学习所用。)


    以下是本篇文章正文内容,下面案例可供参考

    一、用途

    可用来评价、分析以及选择有多个影响因素的多个决策、目标或者方案等。从而选出“最优解”。如下:

    图片出自《层次分析法在太阳镜产品质量评价中的应用》。

    二、基本思路

    流程图

    下面将按着流程图的各个步骤对AHP进行剖析。

    三、具体步骤

    1.得到关系矩阵(判断矩阵)

    即先确定各个指标(影响因素自身)的判断矩阵和各个影响因素与各个目标(方案、决策等)的判断矩阵。

    1. 各个指标(影响因素自身)的判断矩阵
      在这里插入图片描述
    2. 各个影响因素与各个目标(方案、决策等)的判断矩阵。
      在这里插入图片描述

    2.求得指标自身的权重

    求得权重的方法主要有3种:算术平均法、几何平均法以及特征值法。(出处不同叫法可能会有所差异)

    1. 算术平均法
      在这里插入图片描述
      即具体公式如下所示:
      在这里插入图片描述

    2. 几何平均法
      在这里插入图片描述
      即具体公式如下所示:
      在这里插入图片描述

    3. 特征值法

    对所求的最大特征值所对应的特征向量即是未归一化的权重向量,对该特征向量进行归一化处理,即可得各个指标的权重。

    相对于三种方法,我本人较为喜欢用第三种方法,因为Matlab已经提供了现有的函数来求得矩阵的特征向量与特征值。(如:eig(A) function)
    但出于结果的稳健性,可以利用三种方法分别求出权重,再加以求平均即可。

    eg:
    在这里插入图片描述

    3.一次性检验

    一次性检验,是为了说明你所使用的判断矩阵以及得到的权重是否合理、科学。为了保证结果的正确性,应该在每一个判断矩阵进行一次性检验。
    具体方法如下:

    1. 计算一次性指标CI
      在这里插入图片描述
      其中式中的 λ 为判断矩阵的特征值。
    2. 查表得到一致性指标RI

    在这里插入图片描述
    3) 计算得到一致性比例CR
    在这里插入图片描述

    如果CR<0.10,则该判断矩阵的一致性是可以接受的。否则,这说明判断矩阵数据不合理,得需要修改。

    eg:
    在这里插入图片描述
    在这里插入图片描述

    最后

    总结各组权重信息,计算出各个目标(决策、或者方案等)的最后得分,从而得出“最优解”:
    在这里插入图片描述

    四、个人体会

    虽然说AHP是一种经典的、相对科学的决策、评判算法,但是不免还存在这许多的不足:

    例如:
    填写判断矩阵时过于主观(一般判断矩阵的填写都是向专家咨询),从而导致所得结果很大程度会受决策者的主观影响。
    此次就是会发现层次分析法并没有引用过多的数据,我认为这也是它的一大弊病,缺乏数据的支持。

    但是不免也是一种经典的算法,学习一下也无妨。多学无害。
    那…那那怎么才能解决AHP的这些不足呢?笔者在这里想到了结合AHP或者熵权法的TOPSIS算法,我们下次再聊叭!!!=3=

    五、附页(AHPMatlab代码)

    A=input('A=');
    [n,m] = size(A);
    
    Sum_A = sum(A);
    SUM_A = repmat(Sum_A,n,1);
    Stand_A = A ./ SUM_A;
    
    disp('算术平均法求权重的结果为:');
    disp(sum(Stand_A,2)./n)
    
    Prduct_A = prod(A,2);
    Prduct_n_A = Prduct_A .^ (1/n);
    disp('几何平均法求权重的结果为:');
    disp(Prduct_n_A ./ sum(Prduct_n_A))
     
    [V,D] = eig(A);
    Max_eig = max(max(D));
    [r,c]=find(D == Max_eig , 1);
    disp('特征值法求权重的结果为:');
    disp( V(:,c) ./ sum(V(:,c)) )
    
    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
    
    展开全文
  • 层次分析法AHP matlab

    2021-03-31 09:11:20
    %层次分析法(AHP) 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...
    %层次分析法(AHP)
    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('权重为:');
    disp(w);
    %一致性检验
    CI = (t-n)/(n-1);
    RI = [0 0 0.52 0.89 1.12 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
    % function [Q]=AHP(B)
    % %Q为权值,B为对比矩阵
    % %导入判别矩阵B
    % [n,m]=size(B);
    % %判别矩阵具有完全一致性
    % for i=1:n
    %     for j=1:n
    %         if B(i,j)*B(j,i)~=1   
    %         fprintf('i=%d,j=%d,B(i,j)=%d,B(j,i)=%d\n',i,j,B(i,j),B(j,i))  
    %         end  
    %     end
    % end
    % %求特征值特征向量,找到最大特征值对应的特征向量
    % [V,D]=eig(B);
    % tz=max(D);
    % tzz=max(tz);
    % c1=find(D(1,:)==max(tz));
    % tzx=V(:,c1);%特征向量
    % %% quan=zeros(n,1);
    % for i=1:n
    % quan(i,1)=tzx(i,1)/sum(tzx);
    % end
    % Q=quan;
    % %一致性检验
    % CI=(tzz-n)/(n-1);
    % RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59];
    % %判断是否通过一致性检验
    % CR=CI/RI(1,n);
    % if CR>=0.1
    %    fprintf('没有通过一致性检验\n');
    % else
    %   fprintf('通过一致性检验\n');
    % end
    % end
    

    在这里插入图片描述

    展开全文
  • 层次分析法MATLAB源代码,可直接进行使用,注释简单易懂

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 899
精华内容 359
关键字:

ahp matlab

matlab 订阅