⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fit_2.m

📁 复杂网络中的适应度模型
💻 M
字号:
%function 
clc;clear;
tic;
starttime=datestr(now)
m0=5;m=5;
t=1500;
N=2000;
%t1=5;t2=95;
A=sparse([]);
node1_degree=zeros(1,m0);
node2_degree=zeros(1,N);
%先生成全耦合网络
for i=1:m0
    for j=1:m0
        if j~=i
            A(i,j)=1;
        end
    end
end
y=exprnd(1,1,N);%产生服从指数分布的适应度随机数

for j=m0+1:N %增长
    M=size(A,1);
    p=sparse(1,M);
    
    k=sum(A,1);%每个节点的度

    for i=1:M
        summ(i)=k(i)*y(i);%每个节点的度k(i)与其适应度y(i)的乘积
    end
    for i=1:M 
      p(1,i)=k(i)*y(i)/(sum(summ));%优先连接的概率
    end
    sump=cumsum(p);          %求累计概率
    while(1)
        for i=1:m
            rand_dat=rand(1);
            choose(i)=min(find(sump>rand_dat));%择优选择一个节点
        end
        if(length(unique(choose))==length(choose))%选择m的不同的点就退出while循环
            break;
        end
    end 
    
    for i=1:m
        A(j,choose(i))=1 ;%把m个节点添加到新的网络中
        A(choose(i),j)=1 ;
    end
    
    if j==t
       n=size(A,2);
      for i=1:n
           Degree(i)=sum(A(i,:));
      end
        max1=max(Degree);
       for i=1:max1+1
           DeN(i)=sum(Degree==i-1);
      end
      figure;
      loglog([0:max1(1)],DeN(1:max1+1)/sum(DeN),'rs','markersize',4);
      hold on;       
    end
    
   % if j>=t1
   %     node1_degree(j)=sum(A(t1,:));   %t1的增长度
   % end
    
   % if j>=t2
   %     node2_degree(j)=sum(A(t2,:));   %t2的增长度
   % end
    %
end
n=size(A,2);
for i=1:n
    Degree(i)=sum(A(i,:));
end
max1=max(Degree);
for i=1:max1+1
    DeN(i)=sum(Degree==i-1);
end
loglog([0:max1(1)],DeN(1:max1+1)/sum(DeN),'o','markersize',4);
hold on;

%y1=2*m^2*k .^(-2.9);
%loglog(k,y1,'r');% 与平均场结果进行比较 p(k)=2*m^2*k^(-3)

title('适应度服从指数分布,m0=m=5,N=2000');
legend('1500','2000');
xlabel('j');
ylabel('P(j)');
%figure
%loglog(1:N,node1_degree,'r*','markersize',4);
%hold on;
%loglog(1:N,node2_degree,'*','markersize',4);
%hold on;
%title('适应度模型,m0=m=5,N=2000');
%legend('t1=5','t2=95');
%xlabel('t');
%ylabel('k_i(t)');
endtime=datestr(now)
toc; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -