层次分析法MATLAB程序
2017-08-13 22:09
183 查看
作为一个数学人,对于层次分析法,我的评价同下:
其主观作用太强,例如,那个矩阵的由来就无根据,仅仅是由若干尺度表主观推出来的,并不是真正定量的严谨的计算推理,类似的还有模糊评价里的专家评定,虽无力吐槽,作为一个知识,还是贴一段代码。
一个小例子:层次分析评价交通模型
虽然主观性太强,奈何还有太多学管理的同学老师偏爱这个,哎……
其主观作用太强,例如,那个矩阵的由来就无根据,仅仅是由若干尺度表主观推出来的,并不是真正定量的严谨的计算推理,类似的还有模糊评价里的专家评定,虽无力吐槽,作为一个知识,还是贴一段代码。
clear clc a=[1 3 5;1/3 1 3;1/5 1/3 1]; b1=[1 1/3;3 1]; b2=[1 5;1/5 1]; b3=[1 3;1/3 1]; c1=[1 3;1/3 1]; c2=[1 1/3;3 1]; c3=[1 1/5;5 1]; c4=[1 7;1/7 1]; c5=[1 1/7;7 1]; c6=[1 1/3;3 1]; b=max(eig(a));%b为a矩阵的最大特征值 d=[]; for i=1:(length(a)) c=prod(a(i,:))^(1/length(a));%计算每一行的几何平均值 d(i)=c; end for i=1:length(a) e=d(i)/sum(d); w(i)=e; end %w为几何平均值的权重比 CI=(b-length(a))/(length(a)-1); RI=[0 0 0.58 0.96 1.12 1.24 1.32 1.41 1.45]; CR=CI/RI(length(a)) B=[b1 b2 b3 c1 c2 c3 c4 c5 c6]; d=[]; ss=[]; for j=1:9 f=B(:,(1+(j-1)*length(b1):(j*length(b1)))); for i=1:(length(f)) c=prod(f(i,:))^(1/length(f)); d(i)=c; end for k=1:length(f) e=d(k)/sum(d); s(k)=e; end s1=s'; ss=[ss,s1]; end %ss装的是相应个数的几何平均数的权重比 t1=[]; for i=1:length(w) t=w(i)*ss(:,i); t1=[t1,t]; end %此步将第二层的几何权重比按顺序全部乘以一个第一层的几何平均权重比 t3=[]; for i=1:6 t2=ss(:,i+3)*t1(i); t3=[t3,t2]; end %同理,将上层打开往下乘 for i=1:length(t3(:,1)) zong(i)=sum(t3(i,:)); end zong %将最后一行的处理后的几何权重比按行相加
一个小例子:层次分析评价交通模型
clc clear a=[1 1/6 1/3 1/4;6 1 5 5;3 1/5 1 2;4 1/5 1/2 1] b1=[1 2 6 4;1/2 1 6 4;1/6 1/6 1 1/3;1/4 1/4 3 1] b2=[1 2 5 4;1/2 1 5 4;1/5 1/5 1 1/2;1/4 1/4 2 1] b3=[1 5 3 5;1/5 1 2 2;1/3 1/2 1 1/2;1/5 1/2 2 1] b4=[1 1/3 1/6 1/7;3 1 1/5 1/4;6 5 1 1/3;7 4 3 1] b=cat(3,b1,b2,b3,b4) lammax_a=max(eig(a));%b为a矩阵的最大特征值 CI=(lammax_a-length(a))/(length(a)-1); RI=[0 0 0.58 0.96 1.12 1.24 1.32 1.41 1.45]; CR=CI/RI(length(a)) for i=1:4 lammax_b(i)=max(eig(b(:,:,i))) CI_b(i)=(lammax_b(i)-4)/(4-1) CR_b(i)=CI_b(i)/RI(4) end for i=1:(length(a)) c=prod(a(i,:))^(1/length(a));%计算每一行的几何平均值 d(i)=c; end for i=1:length(a) e=d(i)/sum(d); w(i)=e; end for j=1:4 for i=1:4 c=prod(b(i,:,j))^(1/4) %计算每一行的几何平均值 d(i)=c; end for i=1:4 e=d(i)/sum(d); wb(j,i)=e; end end m=wb' for i=1:4 u=m*w' zong(i)=sum(u(i,:)) end
虽然主观性太强,奈何还有太多学管理的同学老师偏爱这个,哎……
相关文章推荐
- matlab练习程序(寻找凸包,Graham扫描法)
- matlab中的如何终止执行程序,如何设置断点,断点后继续运行
- matlab练习程序(力场变换)
- matlab:Excel数据导入C程序中
- java调用matlab程序
- VC中单步调试matlab mex程序
- 使用linux提交pbs任务:运行matlab或perl程序
- 一般凸二次规划的有效集算法 Matlab程序:
- Numerical Computing with MaTLAB 中的工具箱 ncm 以及习题答案和程序下载
- matlab练习程序(多圆交点)
- C语言调用MATLAB程序之简单样例[转载]
- 数值分析MATLAB算法程序附录
- MATLAB中的GUI程序:光标线选取曲线极大值
- matlab 实践程序2——批量将seq文件转化为avi文件
- matlab练习程序(k-means聚类)
- 用c语言移植matlab算法程序一点小小的经验
- matlab字符分割程序
- 图像拼接(不投影到柱面)(渐入渐出融合) matlab程序
- matlab在程序里%%是什么意思
- 矩阵的LU分解(Matlab程序)