ism matlab,ism模型的matlab实现

41528d3028836879cd698677c3999917.gifism模型的matlab实现

ISM模型的 matlab实现张文龙、赵洋、张强、滕凤君程序设计思路:1、可达矩阵的求解A:邻接矩阵E=zeros( A);通过布尔运算求出 A^2、 A^3… 直至 A^n=A^n-1,停止运算,此时的 A^n便是要求的可达矩阵。具体实施:通过将上次循环得出来的 A赋给 E,并判断新一轮循环得出的 A是否与 E相等,决定是否终止循环。循环终止意味着此时的 A就是最终的可达矩阵。具体程序如下:n=( 请输入矩阵维数 : );A=( 请输入邻接矩阵 : );E=zeros(n);B=A;while(norm(A-E)>0)E=A;for i=1:nfor j=1:nfor k=1:nif A(i,k)endendendendendA2、区域划分找出各个元素相对应的可达集 P、先行集 Q以及两者的交集 S求解 P:找出每一行中元素为 1对应的列求解 Q:找出每一列中元素为 1对应的行求解 S:套用 Matlab本身自带的函数S=intersect(P,Q);或者编写 M文件函数,如下所示:具体程序如下:for i=1:nP=find(A(i,:));Q=find(A(:,i));S=intersect(P,Q);P;Q;S;3、级别划分因为 S是 P与 Q的交集,所以只需判断 P与 S的长度是否相等便可进行级别划分。M=zeros( n);r=1; r为第几级求出每个元素的 P、 Q、 S,再将相应的对角线元素 A( i, i)赋予 0,通过查找对角线为 0的元素位置将所对应的行列均赋值 0。每次循环 r自增 1,再进行循环,求出每一级的元素,直至 A==M。具体程序如下:r=1;M=zeros(n);while(~isequal(A,M))for i=1:nP=find(A(i,:));Q=find(A(:,i));S=intersect(P,Q);P;Q;S;if(~isempty(P)endendfor i=1:nif A(i,i)==0A(i,:)=0;A(:,i)=0;endendr=r+1;end4.课本例题程序验证请输入矩阵维数 :7请输入邻接矩阵 :1 1 1 0 1 1 00 1 0 0 1 1 00 1 1 0 1 1 00 1 1 1 1 1 00 0 0 0 1 0 00 1 0 0 1 1 00 1 1 0 1 1 1

相关资源:火凤凰软件安装包封装大师8.56中文已注册版本.exe_火凤打包…

来源:weixin_39625975

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月15日
下一篇 2021年2月15日

相关推荐