利用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');
因篇幅问题不能全部显示,请点此查看更多更全内容