| 查看: 2767 | 回复: 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); |
» 猜你喜欢
284求调剂
已经有10人回复
一志愿山东大学药学学硕求调剂
已经有4人回复
07化学280分求调剂
已经有4人回复
298-一志愿中国农业大学-求调剂
已经有12人回复
求材料,环境专业调剂
已经有3人回复
335求调剂
已经有5人回复
求调剂
已经有7人回复
一志愿吉大化学322求调剂
已经有4人回复
环境学硕288求调剂
已经有8人回复
341求调剂(一志愿湖南大学070300)
已经有6人回复













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