一道简单的层次分析法题目

本文展示了如何使用MATLAB代码执行层次分析法,通过计算给定矩阵A、B1、B2、B3和B4的最大特征值、一致性指数和一致性比率,以及对应的权重向量,以评估各因素的相对重要性。
摘要由CSDN通过智能技术生成

题目如图所示

MATLAB层次分析法代码:

clc
% 初始化随机一致性指数 RI 的常用值
RI = [0, 0, 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45];

% 定义函数来处理矩阵
function [lambda_max, CI, CR, priority_vector] = processMatrix(matrix, RI)
    normalized_matrix = matrix ./ sum(matrix, 1);
    priority_vector = mean(normalized_matrix, 2);
    composite_score = matrix * priority_vector;
    lambda_max = mean(composite_score ./ priority_vector);
    n = size(matrix, 1);
    CI = (lambda_max - n) / (n - 1);
    CR = CI / RI(n);
end

% 矩阵 A, B1, B2, B3, B4 的定义
matrices = {
    'A', [1, 3, 7, 8; 1/3, 1, 5, 5; 1/7, 1/5, 1, 3; 1/8, 1/5, 1/3, 1];
    'B1', [1, 2, 3; 1/2, 1, 2; 1/3, 1/2, 1];
    'B2', [1, 1/5, 1/2; 5, 1, 7; 2, 1/7, 1];
    'B3', [1, 3, 5; 1/3, 1, 4; 1/5, 1/4, 1];
    'B4', [1, 1/5, 3; 5, 1, 7; 1/3, 1/7, 1];
};

% 循环处理每个矩阵,并显示结果
for i = 1:size(matrices, 1)
    matrix_name = matrices{i, 1};
    matrix = matrices{i, 2};
    [lambda_max, CI, CR, priority_vector] = processMatrix(matrix, RI);
    
    % 输出结果
    fprintf('对于矩阵 %s:\n', matrix_name);
    fprintf('最大特征值: %f\n', lambda_max);
    fprintf('一致性指数 CI: %f\n', CI);
    fprintf('一致性比率 CR: %f\n', CR);
    fprintf('权重向量: [');
    fprintf('%g ', priority_vector);
    fprintf(']\n\n');
end

输出结果为:

对于矩阵 A:
最大特征值: 4.206029
一致性指数 CI: 0.068676
一致性比率 CR: 0.076307
权重向量: [0.575485 0.276142 0.0965361 0.0518362 ]

对于矩阵 B1:
最大特征值: 3.009209
一致性指数 CI: 0.004604
一致性比率 CR: 0.007939
权重向量: [0.538961 0.297258 0.163781 ]

对于矩阵 B2:
最大特征值: 3.122316
一致性指数 CI: 0.061158
一致性比率 CR: 0.105445
权重向量: [0.11092 0.73107 0.15801 ]

对于矩阵 B3:
最大特征值: 3.086691
一致性指数 CI: 0.043345
一致性比率 CR: 0.074734
权重向量: [0.619352 0.284228 0.0964194 ]

对于矩阵 B4:
最大特征值: 3.065819
一致性指数 CI: 0.032909
一致性比率 CR: 0.056740
权重向量: [0.193186 0.723506 0.0833079 ]

>> 

 习题解答:

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值