实验09 离散模型(2学时)(第8章离散模型)1. 层次分析模型1.1(验证,编程)正互反阵最大特征根和特征向量的实用算法p263~264已知正互反阵261????1/21A?4????1/461/1??注:[263]定理2 n阶正互反阵A的最大特征根≥n。
★(1) 用MATLAB函数求A的最大特征根和特征向量。
调用及运行结果(见[264]):1 3.0092k =1>> w=V(:,k)/sum(V(:,k))w =0.58760.32340.0890[263])(2) 幂法(见n正互反矩阵,算法步骤如下:A为n×(0)w 1);a. 任取n 维非负归一化初始列向量(分量之和为)k?1)((k2,0,1,?Aww,k?;计算b.1)?(k w1)k?(?w1)k?(w归一化,即令c. ;n?1)?(k w i1i?)(1)k(k?1)k?(?)n|?|w,(i?w?1,2,w即,当d. 对于预先给定的精度ε时,iib;为所求的特征向量;否则返回到步骤1)?(kn w1??i?。
e. 计算最大特征根)(k wn1i?i 注:)k(k?1)(((k)k)???wAw??ww?1)(k? w?i n,i?1,2,??)k(w i文件如下:函数式m [lambda w]=p263MI(A,d)function——求正互反阵最大特征根和特征向量%幂法% A 正互反方阵% d 精度 2 % lambda 最大特征根归一化特征列向量% w0.000001,则d取if(nargin==1) %若只输入一个变量(即A)d=1e-6;end的阶数取方阵A n=length(A); %任取归一化初始列向量w0=w0/sum(w0);%w0=rand(n,1);1while ww=A*w0;%归一化w=ww/sum(ww);all(abs(w-w0)<d) if; breakendw0=w;endlambda=sum(ww./w0)/n;的最大特征根和特征向量。
用幂法函数求A☆(2):)调用及运行结果([264])和法(见(3) [264]3A为n×n正互反矩阵,算法步骤如下:a~ij w?a. 将A的每一列向量归一化得;ijn?a iji?1n~~~?w?w w b. 对;按行求和得iijij1j?~w~Ti)ww,,ww,w(,???w即为近似特征向量;归一化 c. 将?w i1?in(Aw)1??i?,作为最大特征根的近似值。
d. 计算nw1?ii函数n2i1ni~式m文件如下:function [lambda w]=p264HE (A)%和法——求正互反阵最大特征根和特征向量% A正互反方阵% lambda最大特征% w归一化特征列向AA=A/diag(sum(A));%a.的每一列向量归一ww=sum(AA,2);%b.A按行求和w为列向w=ww./sum(ww);%c.归一化,为近似特征列向lambda=sum(A*w./w)/ length(A) %d.计算最大特征根的近似☆(3) 用和法函数求A的最大特征根和特征向量。
调用及运行结果([264]):4[264])(4) 根法(见n正互反矩阵,算法步骤如下:A为n×a~ij?w 将A的每一列向量归一化得;a. ijn?a ij1?i1n~~~?ww)?(n w对次方得按行求积并开nb. ;ijiij1?j~w~w T归一化c. 将即为近似特征向量;i),wwww,(,w,???i?w i1i?n)Aw(1?计算,作为最大特征根的近似值。
d. ?i?wn1?ii的最ni21n~大特征根和特征向量。
★(4) 编写根法函数,用该函数求A sum, prod, diag][提示:sum(A, 2)。
对矩阵A按行求和的调用为按行求积的调用为Aprod(A, 2)。
对矩阵Vdiag(V),用向量构造对角矩阵。
5nargin,存放函数输入自变量的数目。
编写的程序和调用及运行结果(见[264]):function [lambda w]=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), 6p250fun.m中调用另一个函数式m文件p264HE.m(求A的最大特征根及归一化特征列向量)。
(1) 脚本式m文件如下:78本式层的数据。
显示第2★①;一致性比率;一致性指标CIλ包括:最大特征根;特征向量(权向量)w 。
CR :[254]添加的命令和运行结果(见)9 lambda2,w2,CI2,CR2层的数据。
★②显示第3 CI。
;最大特征根包括:特征向量(权向量)w λ;一致性指标3):表添加的命令和运行结果(见[255]w3k,lambda3,CI3k10★③显示最下层(第3层)对目标(第1层)的组合权向量。
添加的命令和运行结果(见[255]):w3★④显示第2层和第3层的组合一致性比率,以及最下层对第1层的组合一致性比率。
添加的命令和运行结果(见[256]):CR2,CR3,CR2. 循环比赛的名次2.1(编程,验证)双向连通竞赛图(4顶点)的名次排序p270, 271~2724个顶点的竞赛图(教材p270中图3(4))如下:111243,},4)31,2),({24个队得分(获胜场数)为(,2,1,1)由得分排名为(种类型,可通过以下方法给出名次排序。
该竞赛图是双向连通图,属于第2 该图的邻接矩阵为:0101????1100???A??1000??0001??级得分向8级得分向量,并依据(1) 编写一个程序,求出1~8★:量给出排名。
给出程序和运行结果(比较[272]); gshort clear; clc; format compact; format邻接矩阵% A=[0 1 1 0;0 0 1 1;0 0 0 1;1 0 0 0];n=length(A);%方阵A的阶数s=A*ones(n,1); disp(s');for k=2:8s=A*s; disp(s');end[~,k]=sort(s,'descend'); %降序k' %排名12(2) 求元素互不相等的得分向量法得分向量为s=A*ones1????1???ones其中,??1??1??(1)=s记s(k)(k)(k-1)k级得分向量)(s称为ks =A*s=A, …*ones, k=2, 3程序如下:%双向连通竞赛图的名次排序(求元素不等的得分向量)p272_1.m%文件名:; short g; format clear; clc; format compact%A=[0 1 1 0;0 0 1 1;0 0 0 1;1 0 0 0]; 邻接矩阵A%n=length(A);方阵的阶数13 s=A*ones(n,1); k=1;中的重复元素%unique(s)去掉s while length(unique(s))<ns=A*s; k=k+1;end级得分向% k元素不等的得分列向s'降[~,kk]=sort(s'descend);排kk'运行求元素互不相等的得分向量法程序。
运行结果(比较☆(2) [272]特征根法(3),rA为素阵(存在正整数对于n≥4个顶点的双向连通竞赛图,其邻接矩阵r)A使,且有>0k1Aslim?k???k s为最大实特征根且为正,为其特征列向量。
λ11其中,为全列向量,双向连通竞赛图的名次排序(特征根法)%14 p272_2.m 文件名:%; ; format short g clear; clc; format compact%邻接矩阵A=[0 1 1 0;0 0 1 1;0 0 0 1;1 0 0 0]的特征值和特征向量[,D]=eig(A);返的特征值构成的对角阵,每个特征其的列为属于该特征值的一个特征向量对应的对角线元素构成列向量返回矩D=diag(D);代替,实数的则不D=D.*(imag(D)==0);复数特征值[lamda,k]=max(D);lamda归一最大特征根对应的特征列向s=V(:,k)/sum(V(:,k));降'descend);[~,k]=sort(ss', k'[272(3)运行特征根法程序。
给出运行结果(比较序次排)6顶点的名(赛通向)验2.2(证双连竞图p270,272~273 )如下:中图个顶点的竞赛图(教材6p2701151 23645该图的邻接矩阵为:111100????110001????001101?A??110000????100100??000100??要求:使用上题的程序。
级得分向量给出排名。
运级得分向量,并依据4(1) ☆求出1~4 :)行结果(比较[272]16☆(2) 运行求元素互不相等的得分向量法程序。
运行结果:[273(3)运行特征根法程序。
运行结果(比较3. 公平的席位分配p278~2793.1(验证)参照惯例的席位分配方法人,63103人,乙系有其中甲系有某学校有甲乙丙三个系共有200名学生,丙系有34人。
个代表席位,采用参照惯例的席位分配方法,分别求出甲乙丙系有20(1)。
的“席位分配结果”个代表席位,采用参照惯例的席位分配方法,分别求出甲乙丙系(2) 有21 。
的“席位分配结果”17下面是参照惯例的席位分配方法的求解函数:要求:①在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5位数字)控制命令format short g)。
②两个结果比较,合理吗?18☆题(1)(20个代表席位)的调用及结果(比较[279]表1)。
表1)(☆题(2)21个代表席位)的调用及结果(比较[279]p280~281(验证)Q值方法3.2(教材:8.4 公平的席位分配)人,63人,名学生,其中甲系有103乙系有200某学校有甲乙丙三个系共有人。
丙系有34 值法分别求出甲乙丙系的“席位分配结果”。
Q(1) 有20个代表席位,采用Q个代表席位,采用值法分别求出甲乙丙系的“席位分配结果”。