基于Matlab的无标度网络仿真

1.问题描述:

        无标度网络具有严重的异质性,其各节点之间的连接状况(度数)具有严重的不均匀分布性:网络中少数称之为Hub点的节点拥有极其多的连接,而大多数节点只有很少量的连接。少数Hub点对无标度网络的运行起着主导的作用。从广义上说,无标度网络的无标度性是描述大量复杂系统整体上严重不均匀分布的一种内在性质。

2.部分程序:

function matrix = FreeScale(X)
%By 201121250314
N= X; m0= 3; m= 3;%初始化
adjacent_matrix = sparse( m0, m0);%初始化邻接矩阵
for i = 1: m0
    for j = 1:m0
        if j ~= i
            adjacent_matrix(i,j) = 1;
        end
    end
end
adjacent_matrix =sparse(adjacent_matrix);
node_degree = zeros(1,m0+1);
node_degree(2: m0+1) = sum(adjacent_matrix);
for iter= 4:N
    iter
    total_degree = 2*m*(iter- 4)+6;
    cum_degree = cumsum(node_degree);
    choose= zeros(1,m);
    % 选出第一个和新点相连接的顶点
    r1= rand(1)*total_degree;
    for i= 1:iter-1
        if (r1>=cum_degree(i))&( r1<cum_degree(i+1))
            choose(1) = i;
            break
        end
    end
    % 选出第二个和新点相连接的顶点
    r2= rand(1)*total_degree;
    for i= 1:iter-1
        if (r2>=cum_degree(i))&(r2<cum_degree(i+1))
            choose(2) = i;
            break
        end
    end
    while choose(2) == choose(1)
        r2= rand(1)*total_degree;
        for i= 1:iter-1
            if (r2>=cum_degree(i))&(r2<cum_degree(i+1))
                choose(2) = i;
                break
            end
        end
    end
    % 选出第三个和新点相连接的顶点
    r3= rand(1)*total_degree;
    for i= 1:iter-1
        if  (r3>=cum_degree(i))&(r3<cum_degree(i+1))
            choose(3) = i;
            break
        end
    end
 
        

3.仿真结论:

D00009

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/114897072
今日推荐