《(最新整理)复杂网络模型的matlab实现》由会员分享,可在线阅读,更多相关《(最新整理)复杂网络模型的matlab实现(6页珍藏版)》请在金锄头文库上搜索。
1、(完整)复杂网络模型的matlab实现(完整)复杂网络模型的matlab实现 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)复杂网络模型的matlab实现)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完整)复杂网络模型的matlab实现的全部内容。度分布function DeD,aver_DeD=Degree
2、_Distribution(A) 求网络图中各节点的度及度的分布曲线 求解算法:求解每个节点的度,再按发生频率即为概率,求P(k) A-网络图的邻接矩阵%DeD-网络图各节点的度分布aver_DeD-网络图的平均度N=size(A,2);DeD=zeros(1,N);for i=1:N DeD(i)=length(find(A(i,:)=1); DeD(i)=sum(A(i,:);endaver_DeD=mean(DeD); if sum(DeD)=0 disp(该网络图只是由一些孤立点组成); return;else figure; bar(1:N,DeD); xlabel(节点编号n);
3、ylabel(各节点的度数K); title(网络图中各节点的度的大小分布图);end figure;M=max(DeD);for i=1:M+1; %网络图中节点的度数最大为M,但要同时考虑到度为0的节点的存在性 N_DeD(i)=length(find(DeD=i-1)); DeD=2 2 2 2 2 2endP_DeD=zeros(1,M+1);P_DeD(:)=N_DeD(:)。/sum(N_DeD);bar(0:M,P_DeD,r);xlabel(节点的度 K);ylabel(节点度为K的概率 P(K));title(网络图中节点度的概率分布图); 平均路径长度 function D
4、,aver_D=Aver_Path_Length(A)% 求复杂网络中两节点的距离以及平均路径长度 求解算法:首先利用Floyd算法求解出任意两节点的距离,再求距离的平均值得平均路径长度 A网络图的邻接矩阵 D-返回值:网络图的距离矩阵% aver_D-返回值:网络图的平均路径长度 N=size(A,2); D=A; D(find(D=0))=inf; 将邻接矩阵变为邻接距离矩阵,两点无边相连时赋值为inf,自身到自身的距离为0。 for i=1:N D(i,i)=0; end for k=1:N Floyd算法求解任意两点的最短距离 for i=1:N for j=1:N if D(i,j)
5、D(i,k)+D(k,j) D(i,j)=D(i,k)+D(k,j); end end end end aver_D=sum(sum(D))/(N(N1)) 平均路径长度 if aver_D=inf disp(该网络图不是连通图); end % 算法2: 用时间量级O(MN)的广度优先算法求解一个含N个节点和M条边的网络图的平均路径长度 聚类系数 function C,aver_C=Clustering_Coefficient(A)% 求网络图中各节点的聚类系数及整个网络的聚类系数 求解算法:求解每个节点的聚类系数,找某节点的所有邻居,这些邻居节点构成一个子图% 从A中抽出该子图的邻接矩阵,计
6、算子图的边数,再根据聚类系数的定义,即可算出该节点的聚类系数%A-网络图的邻接矩阵C网络图各节点的聚类系数aver-整个网络图的聚类系数N=size(A,2);C=zeros(1,N);for i=1:N aa=find(A(i,:)=1); %寻找子图的邻居节点 if isempty(aa) disp(节点,int2str(i),为孤立节点,其聚类系数赋值为0); C(i)=0; else m=length(aa); if m=1 disp(节点,int2str(i),只有一个邻居节点,其聚类系数赋值为0); C(i)=0; else B=A(aa,aa) % 抽取子图的邻接矩阵 C(i)=length(find(B=1)/(m*(m-1)); end endendaver_C=mean(C)