www.pudn.com > question4.rar > question4.m, change:2017-04-21,size:4708b


%%层次分析法解决住房优选问题 
%%在考虑采光的基础上,建立选房模型,要求考虑价格、交通、环境和噪音的影响,给出此时消费者最优选房方案。 
%%作者:莫蔚强、陈欣、刘自鹏  单位:河海大学能源与电气学院  日期:2016年5月12日 
clear all 
clc 
 
%准则层的成对比较矩阵A 
A=[1 2 2 3 
   1/2 1 2 2 
   1/2 1/2 1 1 
   1/3 1/2 1 1];  
 
%方案层中对价格的成对比较矩阵B1 
B1=[1 5 3 7 1 5 1 5 1 5 1 5 
    1/5 1 1/3 3 1/5 1 1/5 1 1/5 1 1/5 1 
    1/3 3 1 5 1/3 3 1/3 3 1/3 3 1/3 3 
    1/7 1/3 1/5 1 1/7 1/3 1/7 1/3 1/7 1/3 1/7 1/3 
    1 5 3 7 1 5 1 5 1 5 1 5 
    1/5 1 1/3 3 1/5 1 1/5 1 1/5 1 1/5 1 
    1 5 3 7 1 5 1 5 1 5 1 5 
    1/5 1 1/3 3 1/5 1 1/5 1 1/5 1 1/5 1 
    1 5 3 7 1 5 1 5 1 5 1 5 
    1/5 1 1/3 3 1/5 1 1/5 1 1/5 1 1/5 1 
    1 5 3 7 1 5 1 5 1 5 1 5 
    1/5 1 1/3 3 1/5 1 1/5 1 1/5 1 1/5 1]; 
 
%方案层中对交通的成对比较矩阵B1 
B2=[1 1 2 2 3 3 4 4 6 6 7 7 
    1 1 2 2 3 3 4 4 6 6 7 7 
    1/2 1/2 1 1 2 2 3 3 5 5 6 6 
    1/2 1/2 1 1 2 2 3 3 5 5 6 6 
    1/3 1/3 1/2 1/2 1 1 2 2 4 4 5 5 
    1/3 1/3 1/2 1/2 1 1 2 2 4 4 5 5 
    1/4 1/4 1/3 1/3 1/2 1/2 1 1 3 3 4 4 
    1/4 1/4 1/3 1/3 1/2 1/2 1 1 3 3 4 4 
    1/6 1/6 1/5 1/5 1/4 1/4 1/3 1/3 1 1 2 2 
    1/6 1/6 1/5 1/5 1/4 1/4 1/3 1/3 1 1 2 2 
    1/7 1/7 1/6 1/6 1/5 1/5 1/4 1/4 1/2 1/2 1 1 
    1/7 1/7 1/6 1/6 1/5 1/5 1/4 1/4 1/2 1/2 1 1]; 
 
%方案层中对环境的成对比较矩阵B3 
B3=[1 1 1/5 1/5 1/3 1/3 5 5 5 5 4 4 
    1 1 1/5 1/5 1/3 1/3 5 5 5 5 4 4 
    5 5 1 1 3 3 9 9 9 9 8 8 
    5 5 1 1 3 3 9 9 9 9 8 8 
    3 3 1/3 1/3 1 1 7 7 7 7 6 6 
    3 3 1/3 1/3 1 1 7 7 7 7 6 6 
    1/5 1/5 1/9 1/9 1/7 1/7 1 1 1 1 1/2 1/2 
    1/5 1/5 1/9 1/9 1/7 1/7 1 1 1 1 1/2 1/2 
    1/5 1/5 1/9 1/9 1/7 1/7 1 1 1 1 1/2 1/2 
    1/5 1/5 1/9 1/9 1/7 1/7 1 1 1 1 1/2 1/2 
    1/4 1/4 1/8 1/8 1/6 1/6 2 2 2 2 1 1 
    1/4 1/4 1/8 1/8 1/6 1/6 2 2 2 2 1 1]; 
 
%方案层中对噪音的成对比较矩阵B4 
B4=[1 1 1/5 1/5 2 2 1 1 1/3 1/3 5 5 
    1 1 1/5 1/5 2 2 1 1 1/3 1/3 5 5 
    5 5 1 1 6 6 5 5 3 3 9 9 
    5 5 1 1 6 6 5 5 3 3 9 9 
    1/2 1/2 1/6 1/6 1 1 1/2 1/2 1/4 1/4 4 4 
    1/2 1/2 1/6 1/6 1 1 1/2 1/2 1/4 1/4 4 4 
    1 1 1/5 1/5 2 2 1 1 1/3 1/3 5 5 
    1 1 1/5 1/5 2 2 1 1 1/3 1/3 5 5 
    3 3 1/3 1/3 4 4 3 3 1 1 7 7 
    3 3 1/3 1/3 4 4 3 3 1 1 7 7 
    1/5 1/5 1/9 1/9 1/4 1/4 1/5 1/5 1/7 1/7 1 1 
    1/5 1/5 1/9 1/9 1/4 1/4 1/5 1/5 1/7 1/7 1 1]; 
 
[v,d]=eig(A); 
uA=d(1,1);                        %A的特征值 
Y(1)=uA; 
vA=v(:,1);                        %A的特征向量 
VA=vA(1)+vA(2)+vA(3)+vA(4); 
for i=1:1:4                       %特征向量归一化得到A的权向量 
    vA(i)=vA(i)/VA; 
end 
 
[v,d]=eig(B1); 
uB1=d(1,1);                       %B1的特征值 
Y(2)=uB1; 
vB1=v(:,1);                       %B1的特征向量 
VB1=0; 
for i=1:1:12 
    VB1=VB1+vB1(i); 
end 
for i=1:1:12                      %特征向量归一化得到B1的权向量 
    vB1(i)=vB1(i)/VB1; 
end 
 
[v,d]=eig(B2); 
uB2=d(1,1);                       %B2的特征值 
Y(3)=uB2; 
vB2=v(:,1);                       %B2的特征向量 
VB2=0; 
for i=1:1:12                 
    VB2=VB2+vB2(i); 
end 
for i=1:1:12                      %特征向量归一化得到B2的权向量 
    vB2(i)=vB2(i)/VB2; 
end 
 
[v,d]=eig(B3); 
uB3=d(1,1);                        %B3的特征值 
Y(4)=uB3; 
vB3=v(:,1);                        %B3的特征向量 
VB3=0; 
for i=1:1:12 
    VB3=VB3+vB3(i); 
end 
for i=1:1:12                       %特征向量归一化得到B3的权向量 
    vB3(i)=vB3(i)/VB3; 
end 
 
[v,d]=eig(B4); 
uB4=d(1,1);                        %B4的特征值 
Y(5)=uB4; 
vB4=v(:,1);                        %B4的特征向量 
VB4=0; 
for i=1:1:12 
    VB4=VB4+vB4(i); 
end 
for i=1:1:12                       %特征向量归一化得到B4的权向量 
    vB4(i)=vB4(i)/VB4; 
end 
 
%%一致性检验 
flag1=0; 
n=[4 12 12 12 12]; 
RI=[0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45 1.49 1.51 1.54];%平均随机一致性指标RI 
Y; 
for i=1:1:5 
    CI(i)=(Y(i)-n(i))/(n(i)-1);     %计算一致性指标RI 
    CR1(i)=(CI(i)/RI(n(i)));        %计算单排序一致性比例CR1 
    if max(CR1)<0.1                 %判断一致性是否可以接受 
        flag1=1; 
    end 
end 
 
flag2=0; 
wCI=0; 
wRI=0; 
if flag1==1                          %若一致性可接受则计算层次总排序 
    b=[vB1,vB2,vB3,vB4];            %方案层B关于Aj的层次单排序权重 
    a=vA;                           %准则层A的层次总排序权重 
    Wpi=b*a;                        %求得方案层B的层次总排序权值Wpi   
    for i=1:1:4                     %层次总排序一致性检验 
        wCI=a(i)*CI(i+1)+wCI; 
        wRI=a(i)*RI(12)+wRI; 
    end 
    CR2=wCI/wRI; 
    CR=CR1(1)+CR2 
    if CR<0.1 
       flag2=1; 
    end 
end 
 
%检查一致性 
flag1 
CR1 
flag2 
CR 
%查看特征值 
Y 
%查看权重 
a                    %准则层A的层次总排序权重 
b                    %方案层B关于Aj的层次单排序权重 
Wpi                  %求得方案层B的层次总排序权值Wpi