| 查看: 2857 | 回复: 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人回复
HXDI做水性聚氨酯乳液,是不是特别容易出渣
已经有3人回复
小木虫看见有人已经知道结果了
已经有19人回复
2026年国自然面上资助率
已经有8人回复
系统今天又提示维护了,估计离放榜不远了
已经有15人回复
微信指数没变化,科研之友没阅读
已经有17人回复
申请2027年材料/化学类博士
已经有5人回复
你们的时间戳变了吗
已经有4人回复
今年的WR进展到哪一步了?
已经有9人回复
产物和副产物价值比较
已经有5人回复










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