当前位置:首页 > 大学生数学建模有关传染病论文
数的增长率和感染人数有关,是其线性函数的假设,可得增长率关于感染者人数的线性函数关系式:
r(x)?r0?kx
进一步,由最大感染时对应的增长率为零可确定参数k的值为:k?r0 xm因此,在该模型的假设下,感染人数 x(t) 应满足如下的微分方程:
x?dx?r(x)x?r(1?)x0?dtx ?m?x(0)?x0?MATLAB >>dsolve(‘Dx=r0*(1-x/xm)*x’,’x(0)=x0’) ans=xm/(1+exp(-r0*t)*(xm-x0)/x0) ? 模型求解
这是一个非线性微分方程,利用微分方程中的分离变数法,求得其解为:
x(t)=
xm?xm??r0t?1???1?x?e?0?
X=[39,53,72,96,129,171,232,314,386,502,629,760,920,1065,1232] ;
r1=0.3067;t=0:14;X1=39*exp(r1*t) r2=r2=-log(75933/103933); r2=-log(75933/103933); ans=0.3139;
五、模型分析及评价
? 模型分析
根据前述微分方程作出dx/dt~x的曲线图,见图1-1,这是一条拋物线。由该图可看出感染人数增长率随感染人数的变化规律:增长率随着感染人数的增加而先增后减,在xm/2时达到最大。这预示着传染病高潮的到来,是医疗卫生部门关注和需要密切注意的时刻。因为感染人数增长率在一定程度上代表了医疗卫生水平,增长率越小卫生水平越高。所以改善保健设施、提高卫生水平可以推迟传染病高潮的到来
r0将问题所给出表中t=0时刻和t=1时刻的数据代入所建立的两个模型中,确定模型中的未知参数r和
,然后再利用它们得到t=2
到t=14时刻的仿真数据,进一步地可以得到两个模型的仿真误差百分比。两个模型仿真效果和性能可以从下面的表和图中清晰地看出。
实际感染人数与按两个模型计算的感染人数的比较表
X=[39,53,72,96,129,171,232,314,386,502,629,760,920,1065,1232] x1=dsolve('Dx=r1*x','x(0)=39')
r1=log(53/39)
x2=dsolve('Dx=r2*x-r2/2000*x^2','x(0)=39') r2=solve('78000/(39+1961*exp(-r2))=53') r1=0.3067;t=0:14;X1=39*exp(r1*t)
r2=-log(75933/103933); for t=0:14;
X2(1,t+1)=78000/(39+1961*exp(-r2*t)); end;
Y1=(X1-X)./X*100;Y2=(X2-X)./X*100;XX=[X;X1;X2;Y1;Y2]; Y2=abs(Y1);
3000原始数据模型1的仿真数据模型2的仿真数据25002000感染人数1500100050002468时间101214
a=1:15;
plot(a,X,'r--',a,X1,'b+-',a,X2,'g.:');
legend('原始数据','模型1的仿真数据','模型2的仿真数据','Location','NorthWest');
ylabel('感染人数'); xlabel('时间'); axis([1,15,0,3000]);
共分享92篇相关文档