数学建模评价模型---层次分析法matlab

       层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。

计算步骤:

1.构造判断矩阵:对某一准则,对其下的各方案进行两两对比,并按其重要性程度评定等级。具体评级方法如下表:数学建模评价模型---层次分析法matlab_第1张图片

2.计算判断矩阵的最大特征值,归一化特征向量。

3.通过一致性检验。

一致性检验CR<0.1,认为判断矩阵的一致性是可以接受的,否则应对其进行修正。

数学建模评价模型---层次分析法matlab_第2张图片

 

数学建模评价模型---层次分析法matlab_第3张图片

下面介绍一个实例:

请根据表 1 给出的 10 个学生 8 门课的成绩,给出这 10 个学生评奖学金的 评分排序。

数学建模评价模型---层次分析法matlab_第4张图片

 指标变量 x1,x2,...,x8分别表示学生的语文、数学、物理、化学、英语、政治、生物、历史成绩。

首先给出判断矩阵:

                                 数学建模评价模型---层次分析法matlab_第5张图片

将表1中的数据保存在文本文档data1中,matlab计算程序如下。

clc
clear
a=readmatrix('data1.txt');
a=a(:,2:end);
c=[1 2 4 4 4 6 6 6;1/2 1 2 2 2 3 3 3
1/4 1/2 1 1 1 1 2 2;1/4 1/2 1 1 1 1 2 2
1/4 1/2 1 1 1 1 2 2;1/6 1/3 1 1 1 1 2 2
1/6 1/3 1/2 1/2 1/2 1/2 1 1;1/6 1/3 1/2 1/2 1/2 1/2 1 1];
[w,lamda]=eigs(c,1)  %求最大特征值及对应的特征向量
CI=(lamda-8)/7  %计算一致性指标 
CR=CI/1.41  %计算一致性比例 
w=w/sum(w)  %特征向量归一化 
f=a*w %计算每个人的评分 
[sf,ind1]=sort(f,'descend') %把评分按照从大到小排序
if CR>=0.10
    disp([input('矩阵没通过一致性检验,请重新调整矩阵')]);
else
    disp([input('矩阵通过一致性检验')]);
end

结果分析:

归一化特征向量为:

0.3619

0.1810

0.0914

0.0914

0.0914

0.0839

0.0494

0.0494

 最大特征值为:   

 

 判断矩阵的一致性指标:CR= 0.0062<0.10符合判断矩阵的一致性标准。

计算各个学生的评价得分值为:

最后, 一般层次分析法是在找不到数据做客观分析时使用,同时也可以用于客观分析结果的参考,层次分析得到各指标权重后,接下来将权重w结合模糊综合评价的隶属度矩阵加权和得到研究对象的评价值。

 

 

 

 

 

 

 

 

你可能感兴趣的:(matlab)