ISM模型的matlab实现

上传人:飞*** 文档编号:48664089 上传时间:2018-07-19 格式:PPT 页数:12 大小:319KB
返回 下载 相关 举报
ISM模型的matlab实现_第1页
第1页 / 共12页
ISM模型的matlab实现_第2页
第2页 / 共12页
ISM模型的matlab实现_第3页
第3页 / 共12页
ISM模型的matlab实现_第4页
第4页 / 共12页
ISM模型的matlab实现_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《ISM模型的matlab实现》由会员分享,可在线阅读,更多相关《ISM模型的matlab实现(12页珍藏版)》请在金锄头文库上搜索。

1、ISM模型的matlab实现张文龙、赵洋、张强、滕凤君程序设计思路:1、可达矩阵的求解 A:邻接矩阵 E=zeros(A); 通过布尔运算求出A2、A3直至An=An-1,停止运 算,此时的An便是要求的可达矩阵。 具体实施: 通过将上次循环得出来的A赋给E,并判断新一轮循环 得出的A是否与E相等,决定是否终止循环。循环终止 意味着此时的A就是最终的可达矩阵。具体程序如下:n=input(请输入矩阵维数:); A=input(请输入邻接矩阵:); 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

2、)endendend end end A2、区域划分找出各个元素相对应的可达集P、先行集Q以及两者的 交集S 求解P:找出每一行中元素为1对应的列 求解Q:找出每一列中元素为1对应的行 求解S:套用Matlab本身自带的函数 S=intersect(P,Q);或者编写M文件函数,如下所示:具体程序如下:for i=1:n P=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,再将相应的对

3、角线元素A(i,i) 赋予0,通过查找对角线为0的元素位置将所对应的行列均赋 值0。每次循环r自增1,再进行循环,求出每一级的元素,直 至A=M。具体程序如下:r=1; M=zeros(n); while(isequal(A,M) for i=1:n P=find(A(i,:); Q=find(A(:,i); S=intersect(P,Q);P;Q;S; if(isempty(P)end end for i=1:n if A(i,i)=0 A(i,:)=0; A(:,i)=0; end endr=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第r级:r = 1,元素为i =5 第r级:r =2,元素为i =2 第r级:r = 2,元素为i =6 第r级:r =3,元素为i =3 第r级:r =4,元素为i =1 第r级:r =4,元素为i =4 第r级:r = 4,元素为i =7THE END Thanks

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号