(完整)复杂网络模型的matlab实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(完整)复杂网络模型的 matlab 实现
(完整)复杂网络模型的matlab实现
编辑整理:
尊敬的读者朋友们:
这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)复杂网络模型的matlab 实现)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)复杂网络模型的 matlab 实现的全部内容。
(完整)复杂网络模型的 matlab 实现
度分布
function [DeD,aver_DeD]=Degree_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,:));
end
aver_DeD=mean(DeD);
if sum(DeD)==0
disp('该网络图只是由一些孤立点组成’);
return;
else
figure;
bar([1:N],DeD);
xlabel(’节点编号n’);
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 2]
end
P_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,aver_D] =Aver_Path_Length(A)
%%求复杂网络中两节点的距离以及平均路径长度
%%求解算法:首先利用 Floyd 算法求解出任意两节点的距离,再求距离的平均值得平均路径长度
% A————————网络图的邻接矩阵
% D—————--—返回值:网络图的距离矩阵
(完整)复杂网络模型的 matlab 实现% aver_D—-———-—返回值:网络图的平均路径长度
N=size(A,2);
D=A;
D(find(D==0))=inf;
身到自身的距离为 0。
f o r
e n d
f o r
i=1:N
D(i,i)=0;
k=1:N
for i=1:N
for
j=1:N
%将邻接矩阵变为邻接距离矩阵,两点无边相连时赋值为inf,自%Floyd 算法求解任意两点的最短距离
if D(i,j)〉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*(N—1)) %平均路径长度
if aver_D==inf
disp(’该网络图不是连通图’);
end
%%算法2:用时间量级 O(MN)的广度优先算法求解一个含 N 个节点和 M 条边的网络图的平均路径长度
聚类系数
function [C,aver_C] =Clustering_Coefficient(A)
%% 求网络图中各节点的聚类系数及整个网络的聚类系数
%%求解算法:求解每个节点的聚类系数,找某节点的所有邻居,这些邻居节点构成一个子图%% 从 A 中抽出该子图的邻接矩阵,计算子图的边数,再根据聚类系数的定义,即可算出该节点的聚类系数
%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’]);
(完整)复杂网络模型的 matlab 实现C(i )=0;
else
B=A(aa,aa) % 抽取子图的邻接矩阵
C(i )=length(find(B==1))/(m*(m-1) );
end
end
end
aver_C=mean(C)。