建模学习资料汇总2

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的实现:

【实例】市政部门管理人员需要对修建一项市政工程项目进行决策,可选择的方案是修建通往旅游区的高速路(简称建高速路)或修建城区地铁(简称建地铁)。除了考虑经济效益外,还要考虑社会效益、环境效益等因素。

递阶层次结构及判断矩阵分别见下:层次分析法(AHP)实例的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)]      

猜你喜欢

转载自blog.csdn.net/bellediao/article/details/82153128