-
大小: 989B文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-05-09
- 語言: Matlab
- 標簽: bbv??matlab??weighted??scale-free??
資源簡介
該代碼是生成加權無標度網絡邊權演化模型的matlab源代碼。希望對大家的學習研究有幫助。

代碼片段和文件信息
tic
%%初始化
n=8;
w0=2;
w=w0*ones(n);???%%%構造初始網絡
for?i=1:n
????w(ii)=0;
end
while(n<5000)???
s=sum(w);
Bj=find(s);?
bsize=length(Bj);
k=s(Bj)/sum(s(Bj));?????%%%選擇連接:概率公式
k=cumsum(k);
k=[0k];
%%選擇連接點
w=[wzeros(n1)];
w=[w;zeros(1n+1)];?%%增加一個節點(孤立).
r1=rand(1);%連接第一個節點
for?i=1:bsize
????if(k(i)<=r1?&?k(i+1)>r1)
????????i1=i;
????????w(n+1Bj(i1))=w0;w(Bj(i1)n+1)=w0;??%增加連邊
%%%%%原來與新節點相連的邊權將發生變化
????????s=sum(w);??
????????for?j=1:n
????????????????if?w(Bj(i1)j)~=0
????????????????????w(Bj(i1)j)=w(Bj(i1)j)+w(Bj(i1)j)*w0/s(Bj(i1));??%%%??與之相關的邊的權發生改變
????????????????????w(jBj(i1))=w(jBj(i1))+w(jBj(i1))*w0/s(Bj(i1));?
????????????????end
????????end
????????break
????end
end
r2=rand(1);%連接第二個節點
while(k(i1)<=r2?&?k(i1+1)>r2)
????r2=rand(1);
end
for?i=1:bsize
????if(k(i)<=r2?&?k(i+1)>r2)
????????i2=i;
????????w(n+1Bj(i2))=w0;
????????w(Bj(i2)n+1)=w0;??%增加連邊
%%%%%原來與新節點相連的邊權將發生變化
????????s=sum(w);??
????????for?j=1:n
????????????????if?w(Bj(i2)j)~=0
????????????????????w(Bj(i2)j)=w(Bj(i2)j)+w(Bj(i2)j)*w0/s(Bj(i2));??%%%??與之相關的邊的權發生改變
????????????????????w(jBj(i2))=w(jBj(i2))+w(jBj(i2))*w0/s(Bj(i2));?
????????????????end
????????end
????????break
????end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%
n=n+1;
end
%%%1.strengh的分布圖???---取整再畫圖????
s2=fix(s);
pp1=tabulate(s2);
sw=find(pp1(:3)>0);
subplot(221);
loglog(pp1(sw1)pp1(sw3)/100‘k.‘);
title(‘strengh的分布圖‘)
xlabel(‘s‘);
ylabel(‘P(s)‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%下面畫出相應的度分布圖
df=sum(w>0);
pp2=tabulate(df);
sw=find(pp2(:3)>0);
subplot(222);
loglog(pp2(sw1)pp2(sw3)/100‘k*‘);
lsline?????%最小二乘擬合直線
title(‘度分布圖‘)
xlabel(‘k‘);
ylabel(‘P(k)‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%?下面畫出:度-勢相關圖
subplot(223);
plot(dfs2‘k.‘);??
lsline?????%最小二乘擬合直線
title(‘度-勢相關圖?‘)
xlabel(‘k‘);
ylabel(‘s‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%??下面畫出:權分布圖
wf=fix(w);
Aq=zeros(1n*n);
for?i=1:n
????Aq(1((i-1)*n+1):i*n)=wf(i:);
end
wfw=find(wf>0);
pp3=tabulate(Aq(wfw));
sw=find(pp3(:3)>0);
subplot(224);
plot(pp3(sw1)pp3(sw3)/100‘ko‘);
title(‘權分布圖‘)
xlabel(‘w‘);
ylabel(‘P(w)‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
toc
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2429??2008-09-28?22:24??bbv.m
-----------?---------??----------?-----??----
?????????????????2429????????????????????1
- 上一篇:位置式pid和增量式pid
- 下一篇:直方圖均衡化代碼matlab
評論
共有 條評論