您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 数学建模实验答案_离散模型
1实验09离散模型(2学时)(第8章离散模型)1.层次分析模型1.1(验证,编程)正互反阵最大特征根和特征向量的实用算法p263~264已知正互反阵14/16/1412/1621A注:[263]定理2n阶正互反阵A的最大特征根≥n。★(1)用MATLAB函数求A的最大特征根和特征向量。调用及运行结果(见[264]):A=[126;1/214;1/61/41];[V,D]=eig(A)V=0.8685-0.8685-0.86850.47790.2390-0.4139i0.2390+0.4139i0.13150.0658+0.1139i0.0658-0.1139iD=3.0092000-0.0046+0.1663i000-0.0046-0.1663iD=diag(D)D=3.0092-0.0046+0.1663i-0.0046-0.1663iD=D.*(imag(D)==0)D=3.009200[lambda,k]=max(D)lambda=3.0092k=12w=V(:,k)/sum(V(:,k))w=0.58760.32340.0890(2)幂法(见[263])A为n×n正互反矩阵,算法步骤如下:a.任取n维非负归一化初始列向量(分量之和为1)(0)w;b.计算(1)(),0,1,2,kkwAwk;c.(1)kw归一化,即令(1)(1)(1)1kknkii;d.对于预先给定的精度ε,当(1)()||(1,2,,)kkiiwwin时,(1)kw即为所求的特征向量;否则返回到步骤b;e.计算最大特征根(1)()11knikiiwnw。注:()()(1)()(1)()1,2,,kkkkkikiA函数式m文件如下:function[lambdaw]=p263MI(A,d)%幂法——求正互反阵最大特征根和特征向量%A正互反方阵%d精度%lambda最大特征根%w归一化特征列向量if(nargin==1)%若只输入一个变量(即A),则d取0.000001d=1e-6;endn=length(A);%取方阵A的阶数w0=rand(n,1);w0=w0/sum(w0);%任取归一化初始列向量while1ww=A*w0;w=ww/sum(ww);%归一化ifall(abs(w-w0)d)break;3endw0=w;endlambda=sum(ww./w0)/n;☆(2)用幂法函数求A的最大特征根和特征向量。调用及运行结果(见[264]):(3)和法(见[264])A为n×n正互反矩阵,算法步骤如下:a.将A的每一列向量归一化得niijijijaaw1~;b.对ijw~按行求和得njijiww1~~;c.将iw~归一化Tnniiii),,,(,~~211即为近似特征向量;d.计算niiiwAwn1)(1,作为最大特征根的近似值。函数式m文件如下:function[lambdaw]=p264HE(A)%和法——求正互反阵最大特征根和特征向量%A正互反方阵%lambda最大特征根4%w归一化特征列向量AA=A/diag(sum(A));%a.将A的每一列向量归一化ww=sum(AA,2);%b.对AA按行求和,ww为列向量w=ww./sum(ww);%c.归一化,得w为近似特征列向量lambda=sum(A*w./w)/length(A);%d.计算最大特征根的近似值λ☆(3)用和法函数求A的最大特征根和特征向量。调用及运行结果(见[264]):(4)根法(见[264])A为n×n正互反矩阵,算法步骤如下:a.将A的每一列向量归一化得niijijijaaw1~;b.对ijw~按行求积并开n次方得njnijiww11)~(~;c.将iw~归一化Tnniiii),,,(,~~211即为近似特征向量;d.计算niiiwAwn1)(1,作为最大特征根的近似值。★(4)编写根法函数,用该函数求A的最大特征根和特征向量。[提示:sum,prod,diag]对矩阵A按行求和的调用为sum(A,2)。对矩阵A按行求积的调用为prod(A,2)。5diag(V),用向量V构造对角矩阵。nargin,存放函数输入自变量的数目。编写的程序和调用及运行结果(见[264]):function[lambdaw]=p264GEN(A)%根法——求正互反阵最大特征根和特征向量%A正互反方阵%lambda最大特征根%w归一化特征列向量n=length(A);AA=A/diag(sum(A));%a.将A的每一列向量归一化ww=(prod(AA,2)).^(1/n);%b.对AA按行求积并开n次方,ww为列向量w=ww./sum(ww);%c.归一化,得w为近似特征列向量lambda=sum(A*w./w)/n;%d.计算最大特征根的近似值λ1.2(验证,编程)旅游决策问题p250~256在下面程序中,脚本式m文件p250.m调用函数式m文件p250fun.m(求A的最大特征根及归一化特征列向量、一致性指标值CI、一致性比率值CR),p250fun.m中调用另一个函数式m文件p264HE.m(求A的最大特征根及归一化特征列向量)。(1)脚本式m文件如下:%旅游决策问题%文件名:p250.mclear;clc;formatcompact;%层次分析法的基本步骤:%1.建立层次结构模型%见p250图1选择旅游地的层次结构%2.构造成对比较阵%第2层为准则层:景色、费用、居住、饮食和旅途5个准则6A=[11/2433;...21755;...1/41/711/21/3;...1/31/5211;1/31/5311];%第3层为方案层:P1、P2和P3等3个供选择地点B1=[125;1/212;1/51/21];B2=[11/31/8;311/3;831];B3=[113;113;1/31/31];B4=[134;1/311;1/411];B5=[111/4;111/4;441];B=['B1';'B2';'B3';'B4';'B5'];%3.计算权向量并做一致性检查%第2层[lambda2w2CI2CR2]=p250fun(A);ifCR2=0.1%成对比较阵A的一致性检验disp(['CR2=',num2str(CR2),'0.1,A没有通过一致性检查!'])return;end%第3层lambda3=zeros(1,5);w3k=zeros(3,5);CI3k=zeros(1,5);CR3k=zeros(1,5);fork=1:5[lambda3(k)w3k(:,k)CI3k(k)CR3k(k)]=p250fun(eval(B(k,:)));ifCR3k(k)0.1%成对比较阵B1的一致性检验disp(['CR3k(k)=',num2str(CR3k(k)),'0.1,B',num2str(k),'没有通过一致性检查!'])return;endend%4.计算组合权向量并做组合一致性检验w3=w3k*w2;%最下层(第3层)对目标(第1层)的组合权向量%第3层组合一致性检验(从第3层开始)CI3=CI3k*w2;%随机一致性指标RI的数值(下标对应成对比较方阵的阶数):RI=[000.580.901.121.241.321.411.451.491.51];RI3=RI([3,3,3,3,3])*w2;%标量CR3=CI3/RI3;ifCR30.1disp(['CR3=',num2str(CR3),'0.1,第3层没有通过组合一致性检查!'])return;end%最下层(第3层)对第1层的组合一致性比率为CR=CR2+CR3;7ifCR0.1disp(['CR=',num2str(CR),'0.1,没有通过组合一致性检查!'])return;end%添加命令用于显示有关结果:(2)函数式m文件如下:function[lamdawCICR]=p250fun(A)%求A的最大特征根及归一化特征列向量、一致性指标值CI、一致性比率值CR%A成对比较阵(正互反方阵)%lamda最大特征根值%wA的归一化特征列向量(权向量)%CI一致性指标值%CR一致性比率值[lamdaw]=p264HE(A);%求A的最大特征根及归一化特征列向量%随机一致性指标RI的数值(下标对应成对比较方阵的阶数):RI=[000.580.901.121.241.321.411.451.491.51];n=length(A);CI=(lamda-n)/(n-1);%一致性指标,CI=0时A为一致阵;CI越大A的不一致程度越严重CR=CI/RI(n);%一致性比率,CR0.1时认为A的不一致程度在容许范围之内要求:请仔细阅读以上程序,完成以下实验:在脚本式m文件后面添加命令,使★①显示第2层的数据。包括:最大特征根λ;特征向量(权向量)w;一致性指标CI;一致性比率CR。添加的命令和运行结果(见[254]):lambda2,w2,CI2,CR28★②显示第3层的数据。包括:特征向量(权向量)w;最大特征根λ;一致性指标CI。添加的命令和运行结果(见[255]表3):w3k,lambda3,CI3k★③显示最下层(第3层)对目标(第1层)的组合权向量。添加的命令和运行结果(见[255]):w39★④显示第2层和第3层的组合一致性比率,以及最下层对第1层的组合一致性比率。添加的命令和运行结果(见[256]):CR2,CR3,CR2.循环比赛的名次2.1(编程,验证)双向连通竞赛图(4顶点)的名次排序p270,271~2724个顶点的竞赛图(教材p270中图3(4))如下:104个队得分(获胜场数)为(2,2,1,1)由得分排名为{(1,2),(3,4)},该竞赛图是双向连通图,属于第2种类型,可通过以下方法给出名次排序。该图的邻接矩阵为:0001100011000110A★(1)编写一个程序,求出1~8级得分向量,并依据8级得分向量给出排名。给出程序和运行结果(比较[272]):clear;clc;formatcompact;formatshortg;A=[0110;0011;0001;1000];%邻接矩阵n=length(A);%方阵A的阶数s=A*ones(n,1);disp(s');fork=2:8s=A*s;disp(s');end[~,k]=sort(s,'descend');%降序k'%排名134211(2)求元素互不相等的得分向量法得分向量为s=A*ones其中,1111ones记s(1)=ss(k)=A*s(k-1)=Ak*ones,k=2,3,…(s(k)称为k级得分向量)程序如下:%双向连通竞赛图的名次排序(求元素不等的得分向量)%文件名:p272_1.mclear;clc;formatcompact;formatshortg;A=[0110;0011;0001;1000];%邻接矩阵n=length(A);%方阵A的阶数s=A*ones(n,1);k=1;whilelength(unique(s))n%unique(s)去掉s中的重复元素s=A*s;k=k+1;endk%k级得分向量s'%元素不等的得分列向量[~,kk]=sort(s,'descend');%降序kk'%排名12☆(2)运行求元素互不相等的得分向量法程序。运行结果(比较[272]):(3)特征根法对于n≥4个顶点的双向连通竞赛图,其邻接矩阵A为素阵(存在正整数r,使Ar0),且有1limkkkAs其中,1为全1列向量,λ为最大实特征根且为正,s为其特征列向量。%双向连通竞赛图的名次排序(特征根法)%文件名:p272_2.mclear;clc;formatcompact;formatshortg;A=[0110;0011;
本文标题:数学建模实验答案_离散模型
链接地址:https://www.777doc.com/doc-2331411 .html