您的当前位置:首页正文

传染病模型SI、SIS、SIR

2021-12-28 来源:好走旅游网
SI模型

利用MATLAB求解传染病模型中的SI模型的解析解: 程序中a即λ,y即i

>> y=dsolve('Dy=a*(y-y^2)','y(0)=y0') y =

1/(1-exp(-a*t)*(-1+y0)/y0)

画图:SI模型的i~t曲线 设λ=1, i(0)=

>> y=dsolve('Dy=y-y^2','y(0)=') y =

1/(1+9*exp(-t))

>> x=0::13;

y=1./(1+9.*exp(-x)); >> plot(x,y)

title('SI模型的i~t曲线'); xlabel('t'); ylabel('i'); axis([0 13 0 ]);

画图:SI模型的di/dt~i曲线 程序中x即i,y即di/dt,λ=1 >> x=0::1; y=x-x.*x; >> plot(x,y)

title('SI模型的di/dt~i曲线'); xlabel('i'); ylabel('di/dt'); >>

SIS模型

利用MATLAB求解传染病模型中的SIS模型的解析解: 程序中a即λ,b即μ,y即i

>> y=dsolve('Dy=a*(y-y^2)-b*y','y(0)=y0')

y =

(a-b)/(a-exp(-(a-b)*t)*(-a+b+y0*a)/y0/(a-b)*a+exp(-(a-b)*t)*(-a+b+y0*a)/y0/(a-b)*b)

画图:SIS模型的di/dt~i曲线(δ>1) 程序中x即i,y即di/dt,λ=1,μ= >> x=0::1; >> y=.*x-x.^2; >> plot(x,y)

title('SIS模型的di/dt~i曲线'); xlabel('i'); ylabel('di/dt'); >>

画图:SIS模型的i~t曲线(δ>1)

设λ=1,μ=,i(0)=

>> y=dsolve('Dy=*y-y^2','y(0)=') y =

7/(10+340*exp(-7/10*t))

>> x=0:1:16;

>> y=7./(10+340.*exp(-7./10.*x)); >> plot(x,y)

title('SIS模型的i~t曲线'); xlabel('t'); ylabel('i'); >>

画图:SIS模型的di/dt~i曲线(δ≤1)

程序中x即i,y即di/dt,λ=,μ= >> x=0::1; >> y=.*x.^.*x; >> plot(x,y)

title('SIS模型的di/dt~i曲线'); xlabel('i'); ylabel('di/dt'); >>

画图:SIS模型的i~t曲线(δ≤1)

设λ=,μ=,i(0)=

>> y=dsolve('Dy=*y^*y','y(0)=') y =

1/(-5+55*exp(1/10*t))

>> x=0:1:40;

>> y=1./(-5+55.*exp(1./10.*x)); >> plot(x,y)

title('SIS模型的i~t曲线'); xlabel('t'); ylabel('i'); >>

SIR模型

利用MATLAB求解传染病模型中的SIR模型的数值解: 程序中a=λ=1, b=μ=,i(0)=,s(0)= M文件中: function y=ill(t,x) a=1;b=;

y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; 命令窗口中:

>> [t,x]=ode45('ill',[0:50],[,]);[t,x]

ans =

0

>> plot(t,x(:,1),t,x(:,2)),grid,pause i(t),s(t)图形如下:

>> plot(x(:,2),x(:,1)),grid,pause i~s图形(相轨线)如下:

画图:SIR模型的相轨线

程序中y即i, x即s, λ=1,μ=

① s(0)=; ② s(0)=; ③ s(0)=; ④ s(0)=

>> x=0::1; >> y=1-x;

>> y1=1-x+.*(log(x)-log); >> y2=1-x+.*(log(x)-log); >> y3=1-x+.*(log(x)-log); >> y4=1-x+.*(log(x)-log);

>> plot(x,y,x,y1,x,y2,x,y3,x,y4) axis([0 1 0 1]);

title('SIR模型的i~s曲线'); xlabel('s'); ylabel('i');

因篇幅问题不能全部显示,请点此查看更多更全内容