• AHP层次分析法中的权重计算


    matlab中输入判断矩阵,之后即可得到各类方法计算出的权重

    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;
    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 = vpa((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=vpa(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
    
    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    ASP.Net Core -- Logging
    ASP.Net Core -- 文件上传
    ASP.Net Core -- 依赖注入
    ASP.Net Core -- 领域模型与数据库架构保持同步
    Entity Framework Core -- 种子数据
    ASP.Net Core -- Environment TagHelper
    ASP.Net Core -- 为什么要使用TagHelper?
    dotnet ef 无法执行,因为找不到指定的命令或文件
    ASP.Net Core 3.x -- 中间件流程与路由体系
    ASP.Net Core -- View Components
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/15433416.html
Copyright © 2020-2023  润新知