小世界网络简介及MATLAB建模
小世界网络

4.2 小世界网络4.2.1 小世界网络简介1998年, Watts和Strogatz 提出了小世界网络这一概念,并建立了WS模型。
实证结果表明,大多数的真实网络都具有小世界特性(较小的最短路径)和聚类特性(较大的聚类系数)。
传统的规则最近邻耦合网络具有高聚类的特性,但并不具有小世界特性;而随机网络具有小世界特性但却没有高聚类特性。
因此这两种传统的网络模型都不能很好的来表示实际的真实网络。
Watts和Strogatz建立的小世界网络模型就介于这两种网络之间,同时具有小世界特性和聚类特性,可以很好的来表示真实网络。
4.2.2 小世界模型构造算法1、从规则图开始:考虑一个含有N个点的最近邻耦合网络,它们围成一个环,其中每个节点都与它左右相邻的各K/2节点相连,K是偶数。
2、随机化重连:以概率p随机地从新连接网络中的每个边,即将边的一个端点保持不变,而另一个端点取为网络中随机选择的一个节点。
其中规定,任意两个不同的节点之间至多只能有一条边,并且每一个节点都不能有边与自身相连。
在上述模型中,p=0对应于完全规则网络,p=1则对应于完全随机网络,通过调节p 的值就可以控制从完全规则网络到完全随机网络的过渡。
相应程序代码(使用Matlab实现)ws_net.m (位于“代码”文件夹内)function ws_net()disp('小世界网络模型')N=input('请输入网络节点数');K=input('请输入与节点左右相邻的K/2的节点数');p=input('请输入随机重连的概率');angle=0:2*pi/N:2*pi-2*pi/N;x=100*cos(angle);y=100*sin(angle);plot(x,y,'r.','Markersize',30);hold on;%生成最近邻耦合网络;A=zeros(N);disp(A);for i=1:Nif i+K<=Nfor j=i+1:i+KA(i,j)=1;endelsefor j=i+1:NA(i,j)=1; endfor j=1:((i+K)-N) A(i,j)=1; endendif K<ifor j=i-K:i-1 A(i,j)=1;endelsefor j=1:i-1A(i,j)=1; endfor j=N-K+i:N A(i,j)=1; endendenddisp(A);%随机化重连for i=1:Nfor j=i+1:Nif A(i,j)==1pp=unifrnd(0,1); if pp<=pA(i,j)=0; A(j,i)=0;b=unidrnd(N); while i==bb=unidrnd(N); endA(i,b)=1; A(b,i)=1; endendendend%根据邻接矩阵连线for i=1:Nfor j=1:Nif A(i,j)==1plot([x(i),x(j)],[y(i),y(j)],'linewidth',1); hold on;endendendhold offaver_path=aver_pathlength(A);disp(aver_path);4.2.3小世界网络模型平均路径长度与聚类系数对于纯粹的规则网络,当其中连接数量接近饱和时,集聚系数很高,平均路径长度也十分短。
如何使用MATLAB进行网络分析与建模

如何使用MATLAB进行网络分析与建模网络分析与建模是数据科学领域中的重要研究方法之一,它涉及到了计算机科学、数学、统计学等多个学科领域。
而在现代信息爆炸的时代,网络数据的规模和复杂性不断增加,对于分析和建模工具的要求也越来越高。
MATLAB作为一个强大的数学计算软件,提供了丰富的功能和工具,可以帮助我们进行网络分析与建模。
本文将介绍如何使用MATLAB进行网络分析与建模。
第一部分:网络分析基础网络分析是研究网络结构、功能和演化规律的一种方法。
在网络分析中,我们通常需要描述网络的拓扑结构、节点与边的关系、节点的属性等信息。
而MATLAB提供了一些常用的工具和函数,可以方便地进行网络分析。
首先,我们需要将网络数据导入到MATLAB中。
MATLAB支持导入各种格式的网络数据,如邻接矩阵、边列表、节点属性等。
使用MATLAB的数据导入和读取函数,我们可以将网络数据转换成MATLAB中的矩阵或表格,方便后续的分析和建模。
其次,我们可以使用MATLAB提供的函数和工具来计算网络的基本属性,如网络的度分布、聚类系数、平均路径长度等。
这些属性可以帮助我们了解网络的结构和功能,并进行比较和分类。
MATLAB还提供了可视化工具,可以直观地展示网络的拓扑结构和属性分布。
第二部分:网络建模与预测网络建模是研究网络演化和行为规律的关键内容。
借助MATLAB的数学建模和机器学习工具,我们可以构建各种网络模型,并使用这些模型来预测网络的演化和行为。
常用的网络建模方法包括随机网络模型、小世界网络模型、无标度网络模型等。
我们可以使用MATLAB的随机数生成函数和图论工具,生成各种类型的网络模型,并进行参数调节和性能评估。
此外,MATLAB还提供了机器学习和深度学习工具箱,可以用于网络模型的训练和预测。
网络预测是网络分析与建模的重要应用之一。
通过分析网络的演化规律和行为模式,我们可以预测网络的未来走向和趋势。
MATLAB提供了一些预测模型和函数,如时间序列分析、回归分析、神经网络等。
小世界效应和无标度-概述说明以及解释

小世界效应和无标度-概述说明以及解释1.引言1.1 概述概述部分提供了关于小世界效应和无标度网络的背景和概要信息。
本节将介绍这两个概念的起源和基本定义,以及它们在网络科学领域的重要性和研究意义。
小世界效应是指在一个具有大量节点的网络中,任意两个节点之间的距离很短,通常只需要经过少数几个中间节点即可到达。
这个现象最早由社会学家斯坦利·米尔格拉姆在1967年的实验中发现,并在1998年由弗兰克和温图拉提出了更为系统的定义。
小世界网络在现实生活中存在广泛,例如社交网络、物流网络和互联网等,这种网络结构具有高效的信息传递和快速的交流特点。
无标度网络是另一个重要的网络拓扑结构,在这种网络中,节点的度数(即与其相连的边的数量)遵循幂律分布。
这意味着有少量的节点具有非常高的度数,而大多数节点的度数相对较低。
这种网络结构的重要性得到了巴拉巴西等学者的广泛研究和关注。
无标度网络具有高度的鲁棒性和抗击毁性,在信息传播、疾病传播和网络攻击等方面具有重要的应用价值。
小世界效应和无标度网络在网络科学领域被视为两个重要的研究课题。
研究人员通过模型构建、实证分析和理论解释等多种方法,探索了这两个概念之间的关系和相互作用。
理解小世界效应和无标度网络的特性和行为规律,有助于我们更好地理解和设计现实世界中的各种网络系统,并且对社会、经济和生物系统等领域的研究有着重要的启示作用。
在接下来的章节中,我们将从不同角度对小世界效应和无标度网络进行深入的研究和分析。
我们将讨论它们的定义、原理、特征,探索它们的影响和应用,并探究它们之间的关系和相互影响。
最后,我们将总结主要观点,评价小世界效应和无标度网络的意义和影响,并提出未来进一步研究的建议。
通过这篇长文的阅读,读者将对小世界效应和无标度网络有一个更全面和深入的了解。
文章结构部分的内容可以按照以下方式编写:1.2 文章结构本文主要分为五个部分:引言、小世界效应、无标度网络、小世界效应和无标度网络的关系以及结论。
复杂网络中的小世界性质研究

复杂网络中的小世界性质研究随着互联网的普及,我们已经进入了一个高度连通的时代。
如果把所有人、所有物理设备、所有数字设备联结起来形成一个大网络,这就是一个复杂网络,它已经不再是一棵简单的树形网络,而是拥有了各种各样的连接方式,从而形成了一个复杂的结构。
在这个复杂网络中,人们更容易形成自己的小世界。
什么是小世界性质小世界性质是指,在一个复杂网络中,大多数节点可以在很短的时间内通过不多的步骤到达任意其他节点。
这个现象是由于网络中普遍存在着两种链接:一种是“短链接”,即较短距离内的连接;另一种是“长链接”,即较长距离的连接。
在一个小世界网络中,大多数节点都是通过较短的链接连接的,只有少数节点通过较长的链接才能达到其他节点。
小世界网络的构建小世界网络的构建通常采用“随机重连”算法。
具体方法是:在一个有N个节点的圆环模型上,每个节点与相邻的m个节点相连。
随机地选择一个节点,断开它与其相邻的链接,然后随机地选取一个节点与其相连。
在这个过程中,短链接能够被保留下来,而一部分长链接会被替换成短链接。
通过这样的重连过程,原本的环形结构被打乱,形成了一个小世界网络。
小世界性质在现实生活中的应用小世界性质在现实生活中有着广泛的应用。
例如,社交网络中的朋友关系就是一个小世界网络。
在社交网络中,大多数人认识的人都是通过较少的步骤得到的,而每个人所认识的朋友圈也通常分布在全球范围内。
类似地,物理网络中的交通路径、电力系统、道路网络等也可以被视为小世界网络。
在这些系统中,信息传输的速度都非常快,但是网络之间的连接却比较稀疏。
小世界网络的拓扑结构小世界网络的拓扑结构由短链接和长链接构成,其中大量短链接形成了网络中的大部分路径,而只有少量的长链接连接了远离的节点。
对于一个小世界网络,我们通常关心的是三个指标:网络的直径、聚集系数和节点度分布。
网络的直径是指任意两个节点之间最短路径的最大值。
在一个小世界网络中,网络的直径很小,通常只有几个节点的距离。
小世界网络综述

关于小世界网络的文献综述一、小世界网络概念方面的研究Watts和Strogatz开创性的提出了小世界网络并给出了WS小世界网络模型。
小世界网络的主要特征就是具有比较小的平均路径长度和比较大的聚类系数。
所谓网络的平均路径长度,是指网络中两个节点之间最短路径的平均值。
聚类系数被用来描述网络的局部特征,它表示网络中两个节点通过各自相邻节点连接在一起的可能性,以及衡量网络中是否存在相对稳定的子系统。
规则网络具有大的特征路径长度和高聚类系数,随机网络则有短的特征路径长度和比较小的聚类系数[1]。
Guare于1967年在《今日心理学》杂志上提出了“六度分离”(Six Degrees of Separation) 理论,即“小世界现象”。
该理论认为,在社交网络中存在短路径,即人们只要知道自己认识的人,就能很快地把信息传递到任何远方目标[2]。
.Stanleymilgram的邮件试验,后来的“培根试验”,以及1998年《纽约时代周刊》的关于莱温斯基的讽刺性游戏,都表现出:似乎在庞大的网络中各要素之间的间隔实际很“近”,科学家们把这种现象称为小世界效应[3]。
研究发现,世界上任意两个人可以平均通过6个人联系在一起,人们称此现象为“六度分离”[2]。
二、小世界网络模型方面的研究W-S模型定义了两个特征值:a.特征路径的平均长度L。
它是指能使网络中各个结点相连的最少边长度的平均数,也就是上面说的小世界网络平均距离。
b.集团化系数C。
网络结点倾向于结成各种小的集团,它描述网络局部聚类特征。
稍后,Newman和WattS对上述的WS模型作了少许改动,提出了另一个相近但较好的(NW)小世界网络模型[5],其做法是不去断开原来环形初始网络的任何一条边、而只是在随机选取的节点对之间增加一条边(这时,新连接的边很可能是长程边)。
这一模烈比WS模型容易分析,因为它在形成过程中不会出现孤立的竹点簇。
其次,还有Monasson小世界网络模型[6]以及一些其它的变形模型包括BW 小世界网络模型等等[7]。
Matlab中的网络分析与复杂系统建模

Matlab中的网络分析与复杂系统建模随着科技的进步和数据的爆炸性增长,网络分析和复杂系统建模成为了解决现实世界问题的有力工具。
Matlab作为一种强大的数值计算软件,提供了丰富的工具和函数,可以应用于网络分析和复杂系统建模领域。
本文将探讨Matlab在这两个领域的应用。
一、网络分析网络分析是研究网络结构和节点之间关系的领域。
在现实生活中,许多复杂的系统可以被抽象成网络,如社交网络、互联网、蛋白质相互作用网络等。
Matlab为网络分析提供了丰富的函数库,可以进行网络的建模、分析和可视化。
首先,Matlab提供了一些常用的网络模型生成函数,如随机图模型、小世界网络模型和无标度网络模型。
这些函数可以根据用户的需求生成具有特定结构的网络,从而帮助用户更好地理解和研究网络的特性和行为。
其次,Matlab提供了一些网络分析的基本函数,如节点度分布、网络直径、平均最短路径等。
这些函数可以帮助用户对网络进行定量分析,了解网络的全局特征和局部特征,比如网络的连通性、紧密度和集聚系数等。
此外,Matlab还支持网络的可视化,用户可以通过绘制网络图来展示网络的结构和关系。
除了基本的网络分析函数,Matlab还提供了一些高级的网络分析工具,如社区检测、节点重要性度量和网络动力学模拟。
社区检测可以将网络分割成不同的子图,每个子图代表一个社区,帮助用户理解网络中的组织结构和功能模块;节点重要性度量可以评估网络中节点的重要程度,从而帮助用户找到关键节点和中心节点;网络动力学模拟可以模拟网络的演化和传播过程,帮助用户研究网络的时序性和动态性。
二、复杂系统建模复杂系统建模是研究复杂系统行为和性质的领域。
复杂系统往往由大量的相互作用的组件组成,如天气系统、金融市场和生态系统等。
Matlab作为一种数值计算软件,提供了丰富的工具和函数,可以用于构建和分析复杂系统的数学模型。
在复杂系统建模中,Matlab可以用于构建系统的数学模型,包括微分方程、差分方程和代数方程等。
课题:WS小世界网络模型构造

课题:WS小世界网络模型构造姓名赵训学号 2班级计算机实验班一、WS 小世界网络简介1998年, Watts和Strogatz 提出了小世界网络这一概念,并建立了WS模型。
实证结果表明,大多数的真实网络都具有小世界特性(较小的最短路径) 和聚类特性(较大的聚类系数) 。
传统的规则最近邻耦合网络具有高聚类的特性,但并不具有小世界特性;而ER 随机网络具有小世界特性但却没有高聚类特性。
因此这两种传统的网络模型都不能很好的来表示实际的真实网络。
Watts 和Strogatz建立的WS小世界网络模型就介于这两种网络之间,同时具有小世界特性和聚类特性,可以很好的来表示真实网络。
二、WS小世界模型构造算法1、从规则图开始:考虑一个含有N个点的最近邻耦合网络,它们围成一个环,其中每个节点都与它左右相邻的各K/2节点相连,K是偶数。
2、随机化重连:以概率p随机地从新连接网络中的每个边,即将边的一个端点保持不变,而另一个端点取为网络中随机选择的一个节点。
其中规定,任意两个不同的节点之间至多只能有一条边,并且每一个节点都不能有边与自身相连。
在上述模型中,p=0对应于完全规则网络,p=1则对应于完全随机网络,通过调节p的值就可以控制从完全规则网络到完全随机网络的过渡,如图a所示。
图a相应程序代码(使用Matlab实现)ws_net.m (位于“代码”文件夹内)function ws_net()disp('WS小世界网络模型')N=input('请输入网络节点数');K=input('请输入与节点左右相邻的K/2的节点数');p=input('请输入随机重连的概率');angle=0:2*pi/N:2*pi-2*pi/N;x=100*cos(angle);y=100*sin(angle);plot(x,y,'r.','Markersize',30);hold on;%生成最近邻耦合网络;A=zeros(N);for i=1:Nif i+K<=Nfor j=i+1:i+KA(i,j)=1;endelsefor j=i+1:NA(i,j)=1;endfor j=1:((i+K)-N)A(i,j)=1;endendif K<ifor j=i-K:i-1A(i,j)=1;endelsefor j=1:i-1A(i,j)=1;endfor j=N-K+i:NA(i,j)=1;endendenddisp(A);%随机化重连for i=1:Nfor j=i+1:Nif A(i,j)==1pp=unifrnd(0,1);if pp<=pA(i,j)=0;A(j,i)=0;b=unidrnd(N);while i==bb=unidrnd(N); endA(i,b)=1;A(b,i)=1;endendend%根据邻接矩阵连线for i=1:Nfor j=1:Nif A(i,j)==1plot([x(i),x(j)],[y(i),y(j)],'linewidth',1); hold on;endendendhold offaver_path=aver_pathlength(A);disp(aver_path);对应输出(取网络节点数N=16,K=2;p分别取0,0.1,1)。
浅谈小世界网络

浅谈小世界网络20世纪末,很多科学家发现研究过的自然、社会和技术网络中,大都具有这些特征:高度的集群性、不均衡的度分布以及中心节点结构。
这些特征的出现不是偶然的,为什么现实世界中的网络会具有这些特征呢?这是网络科学的主要问题,目前基本上已经通过建立网络的发展模型解决了。
其中有两类模型被深入地进行了研究,分别是小世界网络和无尺度网络,这里结合原始论文谈谈对小世界网络的认识。
1998年,邓肯·瓦特和斯托加茨在《自然》杂志上发表了关于小世界网络模型的论文Collectivedynamics of‘small-world’ n etworks,首次提出并从数学上定义了小世界概念,并预言它会在社会、自然、科学技术等领域具有重要的研究价值。
所谓小世界网络,就是相对于同等规模节点的随机网络,具有较短的平均路径长度和较大的聚类系数特征的网络模型。
以前,人们认为网络分为完全规则网和完全随机网,这两类网络具有各自的特征。
规则网具有较大的特征路径长度,聚类系数也较大,而随机网络具有较小的特征路径长度,但是聚类系数较小。
难道特征路径长度较大(小)一定伴随着较大(小)的聚类系数?另外,很多现实中的网络如电网,交通网络,脑神经网络,社交网络,食物链等都表现出小世界特性,即具有较小的特征路径长度。
Watt采用一种随机重连边的方法,以探求位于规则网和随机网的中间地带。
如图:规则网有N个节点,每个节点与K个最近邻节点相连(K是偶数)。
上图的规则网有20个节点,每个节点与相邻的4个节点互联。
然后,对每条边进行以概率P进行随机重连(0<=P<=1)。
P=0时对应规则网,P=1时对应完全随机网,通过调整P的值可以得到位于两种网络中间的网络模型,然后探究其特征。
通过实验并统计网络呈现出的特征,得到下图(归一化处理后)。
可见,在P较小时(P<0.01),特征路径长度急剧下降,而聚类系数几乎没有变化。
这样,我们发现这些网络具有较短的特征路径长度和较大的聚类系数,我们称其为“小世界网络”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小世界网络简介及MATLAB建模1.简介小世界网络存在于数学、物理学和社会学中,是一种数学图的模型。
在这种图中大部份的结点不与彼此邻接,但大部份结点可以通过任一其它节点经少数几步就可以产生联系。
若将一个小世界网络中的点代表一个人,而联机代表人与人之间是相互认识的,则这小世界网络可以反映陌生人通过彼此共同认识的人而起来产生联系关系的小世界现象。
在日常生活中,有时你会发现,某些你觉得与你隔得很“遥远”的人,其实与你“很近”。
小世界网络就是对这种现象的数学描述。
用数学中图论的语言来说,小世界网络就是一个由大量顶点构成的图,其中任意两点之间的平均路径长度比顶点数量小得多。
除了社会人际网络以外,小世界网络的例子在生物学、物理学、计算机科学等领域也有出现。
许多经验中的图可以用小世界网络来作为模型。
因特网、公路交通网、神经网络都呈现小世界网络的特征。
小世界网络最早是由邓肯·瓦茨(Duncan Watts)和斯蒂文·斯特罗加茨(Steven Strogatz)在1998年引进的,将高聚合系数和低平均路径长度作为特征,提出了一种新的网络模型,一般就称作瓦茨-斯特罗加茨模型(WS模型),这也是最典型的小世界网络的模型。
由于WS小世界模型构造算法中的随机化过程有可能破坏网络的连通性,纽曼(Newman)和瓦茨(Watts)提出了NW小世界网络模型,该模型是通过用“随机化加边”模式来取代WS小世界网络模型构造中的“随机化重连”。
在考虑网络特征的时候,使用两个特征来衡量网络:特征路径长度和聚合系数。
特征路径长度(characteristic path length):在网络中,任选两个节点,连同这两个节点的最少边数,定义为这两个节点的路径长度,网络中所有节点对的路径长度的平均值,定义为网络的特征路径长度。
这是网络的全局特征。
聚合系数(clustering coefficient):假设某个节点有k个边,则这k条边连接的节点之间最多可能存在的边的个数为k(k-1)/2,用实际存在的边数除以最多可能存在的边数得到的分数值,定义为这个节点的聚合系数。
所有节点的聚合系数的均值定义为网络的聚合系数。
聚合系数是网络的局部特征,反映了相邻两个人之间朋友圈子的重合度,即该节点的朋友之间也是朋友的程度。
我们可以发现规则网络具有很高的聚合系数,大世界(large world,意思是特征路径长度很大),其特征路径长度随着n(网络中节点的数量)线性增长,而随机网络聚合系数很小,小世界(small world,意思是特征路径长度小),其特征路径长度随着log(n)增长中说明,在从规则网络向随机网络转换的过程中,实际上特征路径长度和聚合系数都会下降,到变成随机网络的时候,减少到最少。
但这并不是说大的聚合系数一定伴随着大的路径长度,而小的路径长度伴随着小的聚合系数,小世界网络就具有大的聚合系数,而特征路径长度很小。
试验表明,少量的short cut的建立能够迅速减少特征路径长度,而聚合系数变化却不大,因为某一个short cut的建立,不仅影响到所连接的节点的特征路径长度,而且影响到他们邻居的路径长度,而对整个网络的聚合系数影响不大。
这样,少量的short cut的建立就能使整个网络不知不觉地变成小世界网络。
实际的社会、生态、等网络都是小世界网络,在这样的系统里,信息传递速度快,并且少量改变几个连接,就可以剧烈地改变网络的性能,如对已存在的网络进行调整,如蜂窝电话网,改动很少几条线路,就可以显著提高性能。
2.小世界网络构成原则WS小世界网络的构成原则为:从一个环状的规则网络开始,网络含有N个结点,每个结点向与它最近邻的K个结点连出K条边,并满足N>>K>>In(N)>>1。
随后进行随机化重连,以概率p随机地重新连接网络中的每个边,即将边的一个端点保持不变,而另一个端点取为网络中随机选择的一个节点。
其中规定,任意两个不同的节点之间至多只能有一条边,并且每一个节点都不能有边与自身相连。
这样就会产生pNK/2条长程的边把一个结点和远处的结点联系起来。
改变p值可以实现从规则网络(p=0)向随机网络(p=1)转变。
NW小世界网络的构成原则为:从一个环状的规则网络开始,网络含有N个结点,每个结点向与它最近邻的K个结点连出K条边,并满足N>>K>>In(N)>>1。
随后进行随机化加边,以概率p在随机选取的一对节点之间加上一条边。
其中,任意两个不同的节点之间至多只能有一条边,并且每一个节点都不能有边与自身相连。
改变p值可以实现从最近邻耦合网络(p=0)向全局耦合网络(p=1)转变。
在p足够小和N足够大时,NW小世界模型本质上等同于WS小世界模型。
3.MATLAB建模建立一个初始节点数为20的NW网络。
MATLAB程序如下:function matrix = SW()%By 201121250314ticN=20;m=4;%初始化网络数据p=0.1;%以概率p=0.1在随机选取的一对结点之间加上一条边matrix=sparse([],[],[],20,20,0);%创建一个20*20的全0稀疏矩阵%建立初始的环状的规则网络%结点网络有N个节点%每个结点向与它最近邻的m个结点连出边%求出邻接矩阵for i=m+1:N-mfor j=i-m:i+mmatrix(i,j)=1;endendfor i=1:mfor j=1:i+mmatrix(i,j)=1;endendfor i=N-m+1:Nfor j=i-m:Nmatrix(i,j)=1;endfor i=1:mfor j=N-m+i:Nmatrix(i,j)=1;matrix(j,i)=1;endend%逆时针的边重连,从节点到N-m-1for i=1:N-m-1for j=i+1:i+mr=rand(1);%随机选取一个数if r<=punconect=find(matrix(i,:)==0);%取出邻接矩阵中的非0元素位置M=length(unconect);%求出非0元素个数r1=ceil(M*rand(1));%正向取整matrix(i,unconect(r1))=1;matrix(unconect(r1),i)=1;%连接这一对点%matrix(i,j)=0; matrix(j,i)=0;%加上这个是SW小世界网络endendend%逆时针的边重新连接,从节点N-m到N-1for i=N-m+1:N-1for j=[i+1:N 1:i- N+m]r=rand(1);if r<=punconect=find(matrix(i,:)==0);r1=ceil(length(unconect)*rand(1));matrix(i,unconect(r1))=1;matrix(unconect(r1),i)=1;%matrix(i,j)=0;matrix(j,i)=0;endendend%逆时针的边重新连接,节点Nfor i=Nfor j=1:mr=rand(1);if r<=punconect=find(matrix(i,:)==0);r1=ceil(length(unconect)*rand(1));matrix(i,unconect(r1))=1;matrix(unconect(r1),i)=1;matrix(i,j)=0;matrix(j,i)=0;endend%恢复小世界网络的邻接矩阵for m=1:Nmatrix(m,m)=0;%去掉自身节点形成的环end%存储邻接矩阵%save data matrix;toc %计算程序耗时end上述程序建立了一个NW小世界网络,求出了其邻接矩阵,用tu_plot()函数画出邻接矩阵的图,就得出了该小世界网络的图形。
function tu_plot(rel,control)%由邻接矩阵画连接图,输入为邻接矩阵rel,必须为方阵;%control为控制量,0表示画出的图为无向图,1表示有向图。
默认值为0r_size=size(rel);%a=size(x)返回的是一个行向量,该行向量第一个元素是%x的行数,第2个元素是x的列数if nargin<2 %nargin是用来判断输入变量个数的函数control=0; %输入变量小于2,即只有一个,就默认control为0endif r_size(1)~=r_size(2)%行数和列数不相等,不是方阵,不予处理disp('Wrong Input! The input must be a square matrix!');return;endlen=r_size(1);rho=10;%限制图尺寸的大小r=2/1.05^len;%点的半径theta=0:(2*pi/len):2*pi*(1-1/len);[pointx,pointy]=pol2cart(theta',rho);theta=0:pi/36:2*pi;[tempx,tempy]=pol2cart(theta',r);point=[pointx,pointy];hold onfor i=1:lentemp=[tempx,tempy]+[point(i,1)*ones(length(tempx),1),point(i,2)*ones( length(tempx),1)];plot(temp(:,1),temp(:,2),'r');text(point(i,1)-0.3,point(i,2),num2str(i));%画点endfor i=1:lenfor j=1:lenif rel(i,j)link_plot(point(i,:),point(j,:),r,control); %连接有关系的点endendendset(gca,'XLim',[-rho-r,rho+r],'YLim',[-rho-r,rho+r]);axis offfunction link_plot(point1,point2,r,control)%连接两点temp=point2-point1;if (~temp(1))&&(~temp(2))return;%不画子回路endtheta=cart2pol(temp(1),temp(2));[point1_x,point1_y]=pol2cart(theta,r);point_1=[point1_x,point1_y]+point1;[point2_x,point2_y]=pol2cart(theta+(2*(theta<pi)-1)*pi,r); point_2=[point2_x,point2_y]+point2;if controlarrow(point_1,point_2);elseplot([point_1(1),point_2(1)],[point_1(2),point_2(2)]); end得出NW小世界网络的图像如下:4.分析由于采用的是随机加边的模式,故,每次得到的图形细节都有所不同。