《层次分析法matlab源程序.doc》由会员分享,可在线阅读,更多相关《层次分析法matlab源程序.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、层次分析法matlab源程序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 kp 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);e
2、nda=sum(y(:,i);w=y(:,i)/a;t=m(i);disp(w);disp(t); %以下是一致性检验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 CR0.1 disp(组合一致性不通过,请重新评分) returnend%下面根据比较阵的结果进行组合result=EigOfOpt*EigOfCri;resultfunction f=AHP1(dim,CmpMatrix)RI=0 0 0.58 0.90 1.12 1.24
3、1.32 1.41 1.45 1.49 1.51;%判断该比较阵是不是一致阵%判断该比较阵是不是一致阵V,D=eig(CmpMatrix);%求得特征向量和特征值%求出最大特征值和它所对应的特征向量tempNum=D(1,1);pos=1;for h=1:dim if D(h,h)tempNum tempNum=D(h,h); pos=h; endend eigVector=V(:,pos);maxeig=D(pos,pos);maxeigdimCI=(maxeig-dim)/(dim-1);CR=CI/RI(dim);if CR0.1 disp(准则对目标影响度评分生成的矩阵不是一致阵,请重新评分) returnendCI%归一化sum=0;for h=1:dim sum=sum+eigVector(h);endsumpause,for h=1:dim eigVector(h)=eigVector(h)/sum;endf=eigVector;CI;