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