目录
基础部分:
适用范围:
【数学建模|数学建模学习笔记(清风)——层次分析法】步骤:
局限性:
matlab相关代码:(判断矩阵转换为权重的算法)
matlab学习部分:
基础部分:
适用范围: 解决评价类、决策类问题(尤其是没有相关数据)
三个考虑因素:1、评价的目标2、可选的方案3、评价的准则
步骤: 1、建立系统的层次结构(目标层、准则层、方案层)
2、构建两两判断矩阵(准则层、方案层)进行一致性检验
3、三种方法计算权重(算数平均、几何平均、特征值法)
局限性: n不能太多,最多是15;
不能利用题目中的数据;
matlab相关代码:(判断矩阵转换为权重的算法)
A = [];
[n,n] = size(A);
if n>15
disp('n>15,该矩阵规模超出限度!')
else
[EVe, EVa] = eig(A);
MaxEVa=max(max(EVa));
%矩阵的特征向量:Eve(matrix eigenvectors)特征值:EVa(eigenvalues)最大特征值:MaxEVa
CI = (MaxEVa - 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];
CR = CI/RI(n);
disp('一致性指标CI=');
disp(CI);
disp('一致性比例CR=');
disp(CR);
if CR<0.1
disp('CR < 0.10, 判断矩阵一致性可接受');
else
disp('CR > 0.10, 判断矩阵一致性不可接受');
endSumA = sum(A);
SUMA = repmat(SumA,n,1);
StandA = A ./ SUMA;
sum(StandA,2);
disp('算术平均法求权重的结果为:');
disp(sum(StandA,2) / n);
PrductA = prod(A,2);
PrductnA = PrductA .^ (1/n);
disp('几何平均法求权重的结果为:');
disp(PrductnA ./ sum(PrductnA));
[r,c] = find(EVa == MaxEVa , 1);
EVe(:,c);
disp('特征值法求权重的结果为:');
disp( EVe(:,c) ./ sum(EVe(:,c)) );
end
matlab学习部分: disp函数的用法:disp('想要展示的内容'); (这里的分号不表示隐藏结果,只表示分隔)
size函数的用法:[row,column] = size(一个矩阵名); 得到两个参数,分别是行数和列数
eig函数的用法:[Vector, Value] = eig(一个矩阵名); 两个参数分别是特征向量和特征值
sum函数的用法:sum(一个矩阵); 得到矩阵按列求和,如果是列或行向量,求得各数之和
find函数的用法:[row, column] = find(一个矩阵); 得到的是最大特征值的行和列
max函数的用法:
得到的是每一列最大的一个数,相当于n维坐标系中离原点最远的点(每一列相当于一个维度)
repmat函数的用法:repmat(一个矩阵, m, n); 扩展到m行n列;
prod函数的用法:Prduct = prod(A, 2); 得到各行的累乘;
推荐阅读
- 数学建模及Matlab|清风数学建模学习笔记 层次分析法Matlab代码实现及代码优化问题
- MATLAB|数字图像处理(实验三 图像增强)
- 多目标优化算法|多目标优化算法(多目标袋獾优化算法MOTDO(提供MATLAB代码))
- 机器人学习|【机器人】Car-Like小车移动机器人控制实验(word报告+matlab程序代码)
- matlab|图像处理压缩Huffman编码方法实现
- 数据可视化|小波变换进行图像变换Matlab实现
- 数据可视化|离散余弦变换进行图像变换Matlab实现
- matlab|FPGA实现sobel边缘检测并Modelsim仿真,与MATLAB实现效果对比
- fpga开发|FPGA高斯滤波实现并Modelsim仿真,与MATLAB高斯滤波进行对比