数学建模:层次分析法

it2023-02-22  83

本文转载至:https://blog.csdn.net/weixin_40725491/article/details/82082466

原创为b站视频:https://www.bilibili.com/video/av20238704

简介:

层次分析法(AHP)是一种层次权重决策分析方法,日常生活中比如:冰箱品牌的选购(考虑到价格,性能,售后等因素);旅游景点的选择(交通,居住环境,饮食等)。

步骤:

1.建立层次结构模型

2.构造判断(成对比较)矩阵

3.一致性检验

 

1.建立层次结构模型(以选择旅游地为例)

2.构造判断(成对比较)矩阵

标度表

例:

3.一致性检验

 

以旅游问题为例:

成对比较矩阵是怎么得出来的呢(查找了大量的数据并综合了相关领域专家的意见后得到,,,)

程序:

disp('请输入判断矩阵A(n阶)'); A=input('A='); [n,n]=size(A); x=ones(n,100); y=ones(n,100); m=zeros(1,100); m(1)=max(x(:,1)); y(:,1)=x(:,1); x(:,2)=A*y(:,1); m(2)=max(x(:,2)); y(:,2)=x(:,2)/m(2); p=0.0001;i=2;k=abs(m(2)-m(1)); while k>p i=i+1; x(:,i)=A*y(:,i-1); m(i)=max(x(:,i)); y(:,i)=x(:,i)/m(i); k=abs(m(i)-m(i-1)); end a=sum(y(:,i)); w=y(:,i)/a; t=m(i); disp(w); %以下是一致性检验 CI=(t-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); if CR<0.10 disp('此矩阵的一致性可以接受!'); disp('CI=');disp(CI); disp('CR=');disp(CR); end

成对比较矩阵:

[1, 1/2, 4, 3, 3; 2, 1, 7, 5, 5; 1/4, 1/7, 1, 1/2, 1/3; 1/3, 1/5, 2, 1, 1; 1/3, 1/5, 3, 1, 1;] [1,2,5; 1/2,1,2; 1/5,1/2,1;] [1,1/3,1/8; 3,1,1/3; 8,3,1;] [1,1,3; 1,1,3; 1/3,1/3,1;] [1,3,4; 1/3,1,1; 1/4,1,1;] [1,1,1/4; 1,1,1/4; 4,4,1;]

运行结果:以A1和B1为例:

>> cengcifenxi 请输入判断矩阵A(n阶) A=[1, 1/2, 4, 3, 3; 2, 1, 7, 5, 5; 1/4, 1/7, 1, 1/2, 1/3; 1/3, 1/5, 2, 1, 1; 1/3, 1/5, 3, 1, 1;] 0.2636 0.4758 0.0538 0.0981 0.1087 此矩阵的一致性可以接受! CI= 0.0180 CR= 0.0161 >> cengcifenxi 请输入判断矩阵A(n阶) A=[1,2,5; 1/2,1,2; 1/5,1/2,1;] 0.5954 0.2764 0.1283 此矩阵的一致性可以接受! CI= 0.0028 CR= 0.0053 >>

得到权重值:

注:层次分析法主观性比较强,可用于建模中的一小问

最新回复(0)