数学建模评价类问题-层次分析法(部分)matlab代码

一、层次分析法原理

确定层级结构,两两比较确定权重指标,确定待选方案在某一指标的得分,综合所有指标确定各个方案的得分。即将方案层对准则层的权重及准则层对目标层的权重进行综合,最终确定方案层对目标层的权重。

二、两种求矩阵权重的方法

2.1算数平均法求权重

Sum_A=sum(A);%将A矩阵按列求和
SUM_A=repmat(Sum_A,n,1)
Stand_A=A./SUM_A;

disp('算术平均法求权重的结果为:');
w1=sum(Stand_A,2)/n;
disp(w1);

##2.2 特征值法求权重

[V,D]=eig(A);
Max_eig=max(max(D));
[r,c]=find(D==Max_eig,1);
disp('特征值法求权重的结果为:');
w2=V(:,c)./sum(V(:,c));
disp(w2);
disp('两种方法的平均权值为:');
disp((w1.*w2)./2);

三、计算一致性比例

计算一致性指标

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];

CR=CI/RI(n);
disp('最大特征值为:');
disp(Max_eig);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.1
    disp('CR<0.1,该判断矩阵A的一致性可以接受');
end
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
层次分析法是一种常用的决策分析方法,可以用于处理多个因素之间的复杂关系。以下是一个与层次分析法相关的数学建模题,并提供了MATLAB代码来实现。 问题描述: 某公司计划购买新的生产机器,他们需要在4种不同的机器中进行选择,包括机器A、机器B、机器C和机器D。他们希望选出最适合他们需求的一台机器。他们将考虑以下6个因素来进行评估:成本、生产效率、质量、可靠性、维护成本和售后服务。现在需要通过层次分析法进行权重的计算,以选择最佳的机器。 解决方案: 1. 构建层次结构:通过对问题的分析,我们可以建立以下层次结构: 层次1:选择机器 层次2:因素权重 层次3:成本、生产效率、质量、可靠性、维护成本和售后服务 2. 构建判断矩阵:根据专家意见或数据分析,我们可以构建一个3×3的判断矩阵来衡量因素之间的相对重要性。例如,我们可以根据专家意见将生产效率、质量和可靠性相对地评为9、5和7,那么判断矩阵如下: 1 9 7 1/9 1 3/5 1/7 5/3 1 3. 计算权重:根据判断矩阵,我们可以通过计算特征向量和特征值的方法来计算权重。这里可以使用MATLAB中的eig函数来计算判断矩阵的特征向量和特征值,并归一化得到权重向量。 4. 评估选择:根据每个机器的因素权重,可以通过加权求和来评估每个机器的总权重,并选择最高的一台机器作为最佳选择。 MATLAB代码示例: ``` % 构建判断矩阵 A = [1 9 7; 1/9 1 3/5; 1/7 5/3 1]; % 计算特征向量和特征值 [~, eig_vals] = eig(A); % 获取最大特征值 max_eig_val = max(max(eig_vals)); % 获取最大特征值对应的特征向量 max_eig_vec = eig_vals(:, max(eig_vals) == max_eig_val); % 归一化计算权重向量 weights = max_eig_vec ./ sum(max_eig_vec); % 各机器得分 machine_scores = [0.6, 0.7, 0.8, 0.9]; % 假设都是随机得分 % 计算各机器的总权重 weighted_scores = machine_scores * weights; % 找到最高得分机器 [~, max_index] = max(weighted_scores); % 输出结果 disp(['最佳机器是机器', num2str(max_index)]); ``` 以上代码可以帮助解决该问题,根据输入的判断矩阵和各机器的得分,计算出每个机器的总权重,并选出最优机器。请根据具体的需求和数据进行修改和适配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值