大学生数学建模大赛知识笔记
Matlab编程Part2
前文
评价方法大体分为主观赋权和客观赋权两类。
主观赋权:采取综合咨询评分,包括层次分析法等,所需数据较少。
客观赋权:根据指标间相关关系或指标变异程度确定权数,包括Topsis等。
1.层次分析法
层次分析法(AHP)是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。
步骤
1.建立层次结构模型,将决策问题分为3个或多个层次:
最高层:目标层,通常只有一个总目标。
中间层:准则层,指标层等,表示实现总目标的中间环节。
最低层:方案层,通常有几个方案可选。

2.构造判断(成对比较)矩阵,使用一致矩阵法:
因素之间两两相互比较,每层对比的因素不宜超过9个,判断矩阵元素的标度方法由Santy的1-9标度方法给出

得到以下判断矩阵:

3.层次单排序及其一致性检验
层次单排序:
获得判断矩阵对于最大特征值的特征向量经过归一化(向量中各元素之和为1)后的矩阵 W W W。
注:归一化即为每一个数除以所有数的总和
一致性检验:
(1)求出判断矩阵的最大特征根 λ \lambda λ 进而求出特征向量(权向量) ω \omega ω。
(2)由一致性指标公式求出一致性指标( C I CI CI)
C I = λ − n n − 1 CI=\frac{\lambda-n}{n-1} CI=n−1λ−n
C I = 0 CI=0 CI=0有完全的一致性, C I CI CI越大,不一致越严重。
(3)通过查表随机一致性指标( R I RI RI)求出一致性比率( C R CR CR)
C R = C I R I CR=\frac{CI}{RI} CR=RICI
如果 C R < 0.1 CR<0.1 CR<0.1则层次单排序通过一致性检验。

4.层次总排序及其一致性检验
层次总排序:
计算某一层次所有因素对于最高层相对重要性的权值,从最高层到最底层依次进行。

B B B层第 i i i个因素对总目标的权值为: B i = ∑ j = 1 m a j b i j B_i=\sum_{j=1}^m{a_jb_{ij}} Bi=∑j=1majbij
一致性检验:
将权值转换成判断矩阵并归一化,求出一致性指标 C I CI CI和随机一致性指标 R I RI RI。
设 B B B层 B 1 , B 2 , ⋯ , B n B_1,B_2,\cdots,B_n B1,B2,⋯,Bn对上层( A A A层)中因素 A j ( j = 1 , 2 , ⋯ , m ) A_j(j=1,2,\cdots,m) Aj(j=1,2,⋯,m)的层次单排序一致性指标为 C I j CI_j CIj,随机一致性指标为 R I j RI_j RIj,则层次总排序的一致性比率为
C R = a 1 C I 1 + ⋯ + a m C I m a 1 R I 1 + ⋯ + a m R I m CR=\frac{a_1CI_1+\cdots+a_mCI_m}{a_1RI_1+\cdots+a_mRI_m} CR=a1RI1+⋯+amRIma1CI1+⋯+amCIm
如果 C R < 0.1 CR<0.1 CR<0.1则层次总排序通过一致性检验。到此,根据最低层的层次总排序做出决策。
编程实现
这是层次单排序及一致性检验的Matlab代码,可以根据题目进行修改优化为所需代码。
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
2.Topsis(理想解法)
Topsis是一种多指标评价方法,构造正理想解和负理想解,即最优解和最劣解,通过计算方案到理想方案的贴近度对方案进行排序。
步骤
1.求出规范决策矩阵
设多属性决策问题的决策矩阵为 A = ( a i j ) m × n A=(a_{ij})_{m\times n} A=(aij)m×n,变换后的决策矩阵为 B = ( b i j ) m × n B=(b_{ij})_{m\times n} B=(bij)m×

博客介绍了Matlab编程实现三种数学建模方法。包括主观赋权的层次分析法,客观赋权的Topsis理想解法,以及聚类分析法(谱系聚类法和K - 平均聚类算法)。详细阐述了各方法的步骤,并给出了部分Matlab编程实现示例。
最低0.47元/天 解锁文章
2174





