数学建模中十大算法实现步骤与代码 - CSDN博客 https://blog.csdn.net/lemaden520/article/details/77931930
数学建模算法总结(一) - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54800341
数学建模算法总结(二) - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54801723
数学建模算法总结(三) - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54802355
数学建模模型大全 - CSDN博客
https://blog.csdn.net/qwl755/article/details/73558416
数学建模常见的综合评价方法及预测方法 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54800283
(数学建模常见的综合评价方法及预测方法 - CSDN博客
https://blog.csdn.net/sanganqi_wusuierzi/article/details/54800283)
(https://blog.csdn.net/weixin_42616102/article/details/81008100)
数学建模四大模型总结 - CSDN博客 https://blog.csdn.net/qq_27848507/article/details/52160863
16种常用的数据分析方法汇总 - CSDN博客 https://blog.csdn.net/anxixiaomu/article/details/69075286
数学建模算法总结 - 简书 https://www.jianshu.com/p/7b4a86000a21?from=groupmessage
非常好的动态规划总结,DP总结 - CSDN博客
https://blog.csdn.net/mmc2015/article/details/73558346
图的四种最短路径算法 - CSDN博客
https://blog.csdn.net/wzy_2017/article/details/78910697贪心算法、蚁群算法、遗传算法、模拟退火算法介绍 - CSDN博客 https://blog.csdn.net/u010159842/article/details/67639262
数学建模学习笔记 - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54802718
《数学建模竞赛入门与提高》读书笔记 - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54800168
多指标综合评价方法汇总 - CSDN博客
https://blog.csdn.net/fanfanrenrenmi/article/details/52950357
评价模型 - CSDN博客
https://blog.csdn.net/weixin_42616102/article/details/81008100
100个经典的动态规划方程 - CSDN博客
https://blog.csdn.net/w_t_y_y/article/details/68952519
数学建模 ————统计问题之预测(一) - CSDN博客
https://blog.csdn.net/nightmare_dimple/article/details/74264491
数学建模————统计问题之分类/聚类(二) - CSDN博客
https://blog.csdn.net/nightmare_dimple/article/details/74275863
Matlab随笔之插值与拟合(上) - 墨初 - 博客园
https://www.cnblogs.com/vanker/p/4265031.html
1、关于等高线图:
MATLAB如何读取excel文件中的数据_百度经验 https://jingyan.baidu.com/article/925f8cb8177349c0dde056dd.html
如何用matlab做等高线图 – MATLAB中文论坛
http://www.ilovematlab.cn/thread-316801-1-1.html
A=xlsread('denggaoxian.xls');%这个文件要放在C:\Users\lenovo\Documents\MATLAB
x=A(:,1);%X是矩阵a中第一列所有的元素排成的列向量
y=A(:,2);
z=A(:,3);
% scatter(x,y,5,z)%散点图
% figure
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
% pcolor(X,Y,Z);shading interp%伪彩色图
figure,contourf(X,Y,Z) %等高线图
colorbar
figure,surfc(X,Y,Z)%三维曲面
colorbar
shading interp
关于从等高线图上获取点的个数问题:https://wenku.baidu.com/view/343b155d3b3567ec102d8a76.html
2、图论算法及其MATLAB实现[1]_百度文库
https://wenku.baidu.com/view/09fddcfe52ea551811a687d1.html?from=search
用途:求最短距离
3、
(1)层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:
clc;
clear;
A=[1 1.2 1.5 1.5;
0.833 1 1.2 1.2;
0.667 0.833 1 1.2;
0.667 0.833 0.833 1];
%因素对比矩阵A,只需要改变矩阵A
[m,n]=size(A); %获取指标个数
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
R=rank(A); %求判断矩阵的秩
[V,D]=eig(A); %求判断矩阵的特征值和特征向量,V特征值,D特征向量;
tz=max(D);
B=max(tz); %最大特征值
[row, col]=find(D==B); %最大特征值所在位置
C=V(:,col); %对应特征向量
CI=(B-n)/(n-1); %计算一致性检验指标CI
CR=CI/RI(1,n);
if CR<0.10
disp('CI=');disp(CI);
disp('CR=');disp(CR);
disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');
Q=zeros(n,1);
for i=1:n
Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
end
Q %输出权重向量
else
disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
end
(2)
层次分析法的matlab的实现:
【实例】市政部门管理人员需要对修建一项市政工程项目进行决策,可选择的方案是修建通往旅游区的高速路(简称建高速路)或修建城区地铁(简称建地铁)。除了考虑经济效益外,还要考虑社会效益、环境效益等因素。
表2 判断矩阵表
A | B1 | B2 | B3 |
| B1 | C1 | C2 |
| B2 | C3 | C4 |
| B3 | C5 | C6 |
B1 | 1 | 1/3 | 1/3 |
| C1 | 1 | 1 |
| C3 | 1 | 3 |
| C5 | 1 | 3 |
B2 |
| 1 | 1 |
| C2 |
| 1 |
| C4 |
| 1 |
| C6 |
| 1 |
B3 |
|
| 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C1 | D1 | D2 |
|
| C2 | D1 | D2 |
| C3 | D1 | D2 |
| C4 | D1 | D2 |
D1 | 1 | 5 |
|
| D1 | 1 | 3 |
| D1 | 1 | 1/5 |
| D1 | 1 | 7 |
D2 |
| 1 |
|
| D2 |
| 1 |
| D2 |
| 1 |
| D2 |
| 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C5 | D1 | D2 |
|
| C6 | D1 | D2 |
|
|
|
|
|
|
|
|
D1 | 1 | 1/5 |
|
| D1 | 1 | 1/3 |
|
|
|
|
|
|
|
|
D2 |
| 1 |
|
| D2 |
| 1 |
|
|
|
Matlab求解得到C层次与D层次的总排序分别为:
C1 | C2 | C3 | C4 | C5 | C6 |
0.0714 | 0.0714 | 0.3214 | 0.1071 | 0.3214 | 0.1071 |
D1 | D2 |
0.3408 | 0.6592 |
结果表明,建地铁(D2)的权重(0.6592)远远大于建高速路(D1)的权重(0.3408),因此,最终的决策方案是建地铁。
Matlab求解程序见下:
clc
a=[1,1/3,1/3
3,1,1
3,1,1];
[x,y]=eig(a);eigenvalue=diag(y);lamda=max(eigenvalue); %x为特征向量,y为特征值,lamda为最大特征值,lamda=max(eigenvalue)亦可为lamda=eigenvalue(2),第二个特征值恰为最大特征值
ci1=(lamda-3)/2;cr1=ci1/0.52
w1=x(:,2)/sum(x(:,2)) %准则层B对目标层的单排序,也是总排序
b1=[1,1;1,1];
[x,y]=eig(b1);eigenvalue=diag(y);lamda=max(eigenvalue);
ci21=(lamda-2)/1;cr21=ci21/0
w21=x(:,2)/sum(x(:,2)) %准则层C中C1、C2对B层中B1的单排序
b2=[1 3;1/3,1];
[x,y]=eig(b2);eigenvalue=diag(y);lamda=max(eigenvalue);
ci22=(lamda-2)/1;cr22=ci22/0
w22=x(:,1)/sum(x(:,1)) %准则层C中C3、C4对B层中B2的单排序
b3=[1 3;1/3 1];
[x,y]=eig(b3);eigenvalue=diag(y);lamda=max(eigenvalue);
ci23=(lamda-2)/1;cr23=ci23/0
w23=x(:,1)/sum(x(:,1)) %准则层C中C5、C6对B层中B3的单排序
c1=[1 5;1/5 1];
[x,y]=eig(c1);eigenvalue=diag(y);lamda=max(eigenvalue);
ci31=(lamda-2)/1;cr31=ci31/0
w31=x(:,1)/sum(x(:,1)) %措施层D对C层中C1的单排序
c2=[1 3;1/3 1];
[x,y]=eig(c2);eigenvalue=diag(y);lamda=max(eigenvalue);
ci32=(lamda-2)/1;cr32=ci32/0
w32=x(:,1)/sum(x(:,1)) %措施层D对C层中C2的单排序
c3=[1 1/5;5 1];
[x,y]=eig(c3);eigenvalue=diag(y);lamda=max(eigenvalue);
ci33=(lamda-2)/1;cr33=ci33/0
w33=x(:,1)/sum(x(:,1)) %措施层D对C层中C3的单排序
c4=[1 7;1/7 1];
[x,y]=eig(c4);eigenvalue=diag(y);lamda=max(eigenvalue);
ci34=(lamda-2)/1;cr34=ci34/0
w34=x(:,1)/sum(x(:,1)) %措施层D对C层中C4的单排序
c5=[1 1/5;5 1];
[x,y]=eig(c5);eigenvalue=diag(y);lamda=max(eigenvalue);
ci35=(lamda-2)/1;cr35=ci35/0
w35=x(:,1)/sum(x(:,1)) %措施层D对C层中C5的单排序
c6=[1 1/3;3 1];
[x,y]=eig(c6);eigenvalue=diag(y);lamda=max(eigenvalue);
ci36=(lamda-2)/1;cr36=ci36/0
w36=x(:,1)/sum(x(:,1)) %措施层D对C层中C6的单排序
w_sum1=[w21*w1(1,1)
w22*w1(2,1)
w23*w1(3,1)]