层次分析法matlab源程序.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
层次分析法matlab源程序

层次分析法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)); end a=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.10 ??? disp(此矩阵的一致性可以接受!); ??? disp(CI=);disp(CI); ??? disp(CR=);disp(CR); end function AHPInit1(x,y) %层次分析的初始化 %默认只有两层 x为准则数,y为方案数 %CToT为准则对目标生成的比较阵 %EigOfCri为准则层的特征向量 %EigOfOpt为选项层的特征向量 EigOfCri=zeros(x,1);%准则层的特征向量 EigOfOpt=zeros(y,x); dim=x;%维度 RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];%RI标准 %生成成对比较阵 for i=1:dim ??????? CToT(i,:)=input(请输入数据:); end CToT %输出 pause, tempmatrix=zeros(x+1); tempmatrix=AHP1(dim,CToT); EigOfCri=tempmatrix(1:x); ci1=tempmatrix(1+x); EigOfCri ci1 pause, matrix=cell(x);%元胞数组 ci=zeros(1,x); dim=y; for k=1:x ??? matrix{k}=zeros(dim,dim); %生成成对比较阵 for i=1:dim ??????? matrix{k}(i,:)=input(请输入数据:); end %判断该比较阵是不是一致阵 tempmatrix=zeros(y+1); tempmatrix=AHP1(dim,matrix{k}); EigOfOpt(:,k)=tempmatrix(1:y); ci(k)=tempmatrix(y+1); EigOfOpt(:,k) ci(k) pause, end %下面进行组合一致性检查 RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51]; CR=ci1/RI(x)+ci*EigOfCri/RI(y); CR if CR0.1 ??? disp(组合一致性不通过,请重新评分) ??? return end %下面根据比较阵的结果进行组合 result=EigOfOpt*EigOfCri; result function f=AHP1(dim,CmpMatrix) RI=[0 0 0.58 0.90 1.12 1.24 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; ??? end end??? eigVector=V(:,pos); maxeig=D(pos,pos); maxeig dim CI=(maxeig-dim)/(dim-1); CR=CI/RI(dim); if CR0.1 ??? disp(准则对目标影响度评分生成的矩阵不是一致阵,请重新评分) ??? return end CI %归一化 sum=0; for h=1:dim ??? sum=sum+eigVector(h); e

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档