| 查看: 2741 | 回复: 0 | ||
[求助]
基于WS小世界下的SIR模型
|
|
流行病模型 sir dI/dt=a*S*I-b*I dS/dt=-a*S*I dR/dt=b*I m文件 function y=SIR(t,x) a=10;b=0.4; y=[a*x(1)*x(2)-b*x(1); -a*x(1)*x(2); b*x(3)]; 窗口命令 ts=0:50; x0=[0.04,0.96,0]; [t,x]=ode45('SIR',ts,x0); figure,plot(t,x(:,1),t,x(:,2),t,x( :,3)) 最近听说基于WS小世界网络系统可以解决SIR模型问题,而且更加真实,我想请问下怎样基于WS小世界网络系统构建SIR模型,求matlab代码。 这是找到的一个其他小世界模型,可能对大神们有帮助 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); disp(A); for i=1:N if i+K<=N for j=i+1:i+K A(i,j)=1; end else for j=i+1:N A(i,j)=1; end for j=1 (i+K)-N)A(i,j)=1; end end if K for j=i-K:i-1 A(i,j)=1; end else for j=1:i-1 A(i,j)=1; end for j=N-K+i:N A(i,j)=1; end end end disp(A); %随机化重连 for i=1:N for j=i+1:N if A(i,j)==1 pp=unifrnd(0,1); if pp<=p A(i,j)=0; A(j,i)=0; b=unidrnd(N); while i==b b=unidrnd(N); end A(i,b)=1; A(b,i)=1; end end end end %根据邻接矩阵连线 for i=1:N for j=1:N if A(i,j)==1 plot([x(i),x(j)],[y(i),y(j)],'linewidth',1); hold on; end end end hold off aver_path=aver_pathlength(A); disp(aver_path); |
» 猜你喜欢
实验室接单子
已经有4人回复
全日制(定向)博士
已经有4人回复
假如你的研究生提出不合理要求
已经有6人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
所感
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有28人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复












(i+K)-N)
回复此楼