传染病模型建模.docx
《传染病模型建模.docx》由会员分享,可在线阅读,更多相关《传染病模型建模.docx(13页珍藏版)》请在冰豆网上搜索。
传染病模型建模
对传染病的传播的研究
摘要
本文以常见传染病的传播为研究方向,并结合微分方程的知识建立传染病的传播与控制模型。
在模型的基础上,运用MATLAB软件拟合出患者人数与时间的关系曲线,从而能够从图中直观地对该病的传播作出分析并提出应对措施。
在问题一,我们把该地区人群分为五类:
患者、疑似患者、治愈者、死亡者、正常人。
在对该传染病扩散与传播的控制模型的建立中,我们将疑似患者看作是潜伏期患者,主要考虑各项人数的增减情况,通过单位时间内正常人数的变化、单位时间内潜伏期患者人数的变化、单位时间内确诊患者人数的变化、单位时间内非参与者人数的变化联系建立微分方程模型。
在问题二、三中,利用所建立的微分方程模型代入给出的数据,从而用MATLAB拟合出各项人数随时间的变化曲线,分析所得图形及其合理性,得到有关该传染病的信息。
在问题四中,根据以上所建立的模型,提出相应的应对措施:
一旦发现患病情况就及时去医院就诊;加大隔离措施强度;个人应养成良好的卫生习惯,勤洗手,多通风,减少与病菌的接触可能,适当锻炼来防止被传染。
关键词:
传染病微分方程模型MATLAB曲线拟合应对措施
一、问题重述
1.1.相关情况
2013年,某种传染病的出现成为热点,尤其是其高致死率,引起了人们的恐慌,最近又有研究显示,这种传染病有变异的可能.现在假设有一种未知的病毒潜伏期为
--
天,患病者的治愈时间为
天,假设该病毒可以通过人与人之间的直接接触,患者每天接触的人数为
,因接触被感染的概率为
(
为感染率).为了控制疾病的传播与扩散,将人群分成五类,患者、疑似患者、治愈者、死亡者、正常人.潜伏期内的患者被隔离的比例为
(为潜伏期内患者被隔离的百分数)。
1.2.问题的提出
问题一:
在合理的假设下建立该病毒扩散与传播的控制模型。
问题二:
利用你所建立的模型对如下数据进行模拟:
初始发病人数100,疑似患者210,患者2天后入院,疑似患者2天后被隔离.由上面的数据请给出患者人数随时间变化的曲线,并分析所给结果的合理性。
问题三:
隔离强度由30%提高到80%,患者人数将有何变化。
问题四:
请据此模型,给出控制此传染病传播的建议。
二、模型假设
1、在该传染病的考察期内,该考察地区的总人数为常数,不考虑人口流动。
2、将病毒的所有传播途径都视为与病原体的直接接触造成。
3、忽略该考察时间内人口的自然死亡率和出生率。
4、被隔离的人群完全断绝与外界的接触,因此不具有传染性。
5、被治愈者获得抗体,不考虑其二次传染患病。
6、将治愈者和死亡者定义为非参与者,即退出研究的传染病传播体系。
7、疑似患者即为潜伏期的患者,是被有效接触后具有传染性且传染概率也为
,经过隔离治疗可转为治愈者(非参与者),治愈时间为
天。
8、潜伏期患者和确诊患者接触传染的均为易感病正常人,且均将其传染为潜伏期患者。
三、符号的约定和说明
:
确诊患者
:
潜伏期患者(即疑似患者)
:
非参与者(痊愈和死亡的患者)
:
普通易感的正常人
:
潜伏期患者和确诊患者的传染概率
:
传染性病毒的潜伏期
:
潜伏期患者和确诊患者被治愈的时间
:
该地区总人数
:
该人群的人均每天接触人数
:
潜伏期内患者被隔离的百分数
四、对问题一的解答
4.1.问题分析
根据人口守恒的前提,排除人口出生率、自然死亡率以及人口的流动,使该考察地区的总人口保持不变,所以将该地区分为:
:
确诊患者
:
潜伏期患者(被病毒有效接触后有传染性的人)
:
非参与者(痊愈和死亡的患者)
:
普通易感者(正常人)
建立上述五种情况的人数在单位时间变化的微分方程模型。
由上述五类得到以下关系图:
图表1
4.2.模型准备
(1)单位时间内正常人数变化:
易感正常人与未隔离潜伏期病人及确诊患者接触后均变为潜伏期患者,结合以上所给信息
故
即
··················
(1)
(2)单位时间内潜伏期患者(疑似患者)人数变化:
潜伏期患者的数量变化为正常人被感染为潜伏期患者人数减去潜伏期患者被治愈和转为确诊患者的人数,结合以上信息
即
·······
(2)
(3)单位时间内确诊患者人数变化:
确诊患者人数为潜伏期患者转变人数减去被治愈人数
即
·····························(3)
(4)单位时间内非参与者的人数变化:
非参与者人数为确诊患者被治愈人数或死亡数
即
·································(4)
(5)总人数:
···························(5)
对模型的部分说明:
1、传染病毒的平均潜伏期为
,即单位时间内潜伏期病人以比例常数
,转为感染者;
2、确诊病人平均死亡或痊愈的疗程为
即单位时间感染者的治愈率为
;
3、潜伏期患者平均疗程为
,即单位时间内潜伏期患者的治愈率为
;
4、单位时间内每个易感者与病人的接触率参数为
;
4.3.模型的建立
其中
,
,
,
,
,
为系统中各类的初始值。
五、对问题二的解答
5.1.问题分析
该问题是建立在问题一的基础上,利用问题一所建立的模型,代入题二中给出的数据,用MATLAB解该微分方程并得到患者人数随时间变化的曲线,然后对曲线图对该传染病的扩散和传播进行分析。
5.2.模型的建立
初始发病人数100(即
),疑似患者210(即
),患者2天后入院,疑似患者2天后被隔离。
这样可以得到患者人数随时间变化的曲线(如下图):
图表2
5.3.结果分析
从上图中可以看出患者人数先随时间急剧升高,说明这是病毒传播初期未有效控制的发展趋势,然后可以看到最高点(第13.31天)患者人数达到最大值7817000人,随后通过对确诊患者和潜伏期患者进行隔离治疗,使患病人数开始较平稳下降,并在100天后患者人数下降到2006000人,说明病情得到了有效控制,且可以看出该结果与实际情况相符,有良好的合理性。
六、对问题三的解答
6.1.问题分析
该问题是建立在问题二的基础上,利用问题二建立的模型,提高
值得到新的患者人数随时间变化的曲线图,并与问题二中曲线图作对比,分析患者人数的变化情况,从而可知道隔离强度大小对疫情控制的影响。
6.2.模型的建立
问题三中
初始发病人数100(即
),疑似患者210(即
),患者2天后入院,疑似患者2天后被隔离。
这样可得到与问题二的对比图(绿线为
的图,蓝线为
的图):
6.3.结果分析
分析绿线可以看到病毒传染初期患者人数依然急剧升高,最高点(第12.65天)患者人数达到最大值7555000人,100天后下降到1921000人。
最大值时间(天)
患病人数最大值(人)
隔离措施强度p
患病入院
天数n(天)
人均每天接触人数r(人)
问题二
13.31
7.817×10^6
30%
2
10
问题三
12.65
7.555×10^6
80%
2
10
对比
与
(即绿线与蓝线),可以看出患者人数在病毒传染初期发展趋势大致一样,但是明显可以看出
与
相比,达到最高点的时间明显提前且最多患者人数更小,且在100天后患者人数小于
时人数。
从对比中可以看出,提高隔离强度可以更好地控制疫情,减少患病人数。
6.4.对隔离强度
的灵敏度分析
对于该问题中的隔离强度
由30%变为80%,通过问题三的图像中两条曲线的对比,可以看出:
当
增大后患者人数最大值相较于问题二来说减少了,同时达到最大值的时间减少了,而且疫情消退的时间也稍微减短了,这说明隔离前度
增大时患者人数的最高峰减少了,同时达到最高峰的时间也相应的减短了。
因此政府和意愿应尽量增大隔离强度
。
七、对问题四的解答
随着社会的进步,科技的发展,一般的传统的传染病都能得到及时的防御和治疗。
要想及时有效地控制传染病的扩散和传播,关键在于尽早得到治疗。
根据题目我们建立出模型:
从模型中我们可以看出正常人的减少是由于被潜伏期患者以及确诊患者的传染,所以为了有效控制病情的恶性蔓延,应该一旦发现病情则立即前往医院隔离治疗。
从问题二中的结果看来,同样也反映了这样的情况。
相同的隔离程度下,发现并且隔离的时间越早,累计的患者数量越少。
政府和医院需要提高警惕,一旦察觉到有疫情的产生就要采取相应的疫情防范措施,疑似患者需要及时去医院进行确诊,既保护自己,又防止有更多人感染,在疫情发生阶段,尽量减少与外人的接触。
模型中
越大,
越少,而
增加也越来越少,因此对疫情的控制有很好的效果。
从问题三的结果中得出,在相同隔离时间下,隔离强度越大,疫情时间持续越短,累计的患者数量越少。
所以政府和医院需要增强隔离强度,做好防御措施,减少拖延患者前去医院治疗的时间,加派医生,保证医疗设施和医护人员的齐全,普通易感者也需要在家做好杀毒措施,保持通风,注意家人卫生,并使用84消毒药水拖地,做好杀菌工作。
结合模型和问题二、三的曲线图看来,曲线的拖尾较长,说明此次疫情持续时间长,需要长时间的防护措施应对来缩短疫情周期,以避免二次疫情高峰的可能性。
所以,防止患病的关键在于自己应提高防范意识,不可以懈怠,提升警惕性;少去人流量大的地方;多做运动,强身健体;勤洗手,多通风,养成良好的卫生习惯;早睡早起,保证营养,增强个人免疫力。
而在医疗方面,卫生部应加大隔离防治措施力度,且改进医疗手段,使治愈时间
减小来控制疫情。
八、模型的评价及推广
8.1.模型的优缺点
模型的优点:
(1)、将医学领域的问题转化到数学领域进行分析和讨论,可以清楚地定量地得出传染病的发展趋势和高峰以及未来的预测,具有很强的可靠性和实用性。
(2)、模型中各个变量的关系明确,易于模型的求解。
(3)、本文的数学模型是以连续的微分方程为基础,不会得出准确的解析解,本文在合理的参数确定的前提下,将参数进行拟合,准确模拟出传染病的发展趋势和走向的曲线,从宏观的角度上给社会一个清晰的概念,易于被社会接受,对政府和医院控制疫情传播提供有效地帮助,具有一定地实用价值和直观性。
模型的缺点:
(1)、采用微分方程方法建立数学模型,易受外界因素变化的影响,其稳定性具有相对性。
(2)、模型中的参数变量有其自身的随机性,虽然本文对已知数据进行统计平均的处理方法,但在计算过程中存在误差。
(3)、模型中涉及的参数较多,在实际生活中很难确定各参数,因此模型具有理想化。
8.2.模型的推广
本文建立的传染病模型的方法和思维对其他类似的问题也能很实用,可广泛应用于人口、肿瘤、社会、经济等方面。
根据传染病的模型建立研究进而可以推广产生SIR模型。
该模型是对进行理论性定量研究的一种重要方法,是根据种群生长的特性,疾病的发生及在种群内的传播、发展规律以及与之有关的社会等因素,建立能反映传染病动力学特性的数学模型,通过对模型动力学性态的定性,定量分析和数值模拟,来分析疾病的发展过程,揭示流行规律,预测变化趋势,分析疾病流行的原因和关键。
参考文献:
[1].杨启凡,《数学建模》,浙江:
浙江大学出版社,2006.6
[2].卓金武,《MATLAB在数学建模中的应用》,北京:
北京航空航天大学出版社,2011.4
[3].姜启源,数学建模案例选集,北京:
高等教育出版社,2006.7
[4].姜启源谢金星叶俊,数学模型(第三版),北京:
高等教育出版社,2003.8
[5]
[6].梁国业等,《数学建模》,北京:
冶金工业出版社,2004.9
[7].韩中庚等,《数学建模方法及其应用》,北京:
高等教育出版社,2005.6
[8].龚春王正林等,《精通MATLAB最优化计算》,北京:
电子工业出版社,2009.4
九、附录:
问题二
新建m文件夹:
functionx=pencil(t,x)
%s=x
(1)e=x
(2)i=x(3)r=x(4);
a1=3;
a2=7;
a3=60;
p=0.3;
m=10;
b=0.5;
x=[-b*x(3)*(1-p)*x
(1)-b*x
(2)*(1-p)*x
(1),b*x(3)*(1-p)*x
(1)-2/(a1+a2)*x
(2)+b*x
(2)*(1-p)*x
(1)-x
(2)*p*1/a3,2/(a1+a2)*x
(2)-1/a3*x(3),1/a3*x(3)]';
在命令窗口内输入:
s0=[10000000,100,0,210];
[t,x]=ode23s(@pencil,[0,100],s0)
plot(t,x(:
3));
holdon
text(0,100,'(0,100)','color','r')
text(13.31,7.817e+006,'(13.31,7.817e+006)','color','r')
text(100,2.006e+006,'(100,2.006e+006)','color','r')
plot(0,100,'g+',13.31,7.817e+006,'g+',100,2.006e+006,'g+')
问题三
新建m文件夹:
functionx=pencil(t,x)
%s=x
(1)e=x
(2)i=x(3)r=x(4);
a1=3;
a2=7;
a3=60;
p=0.3;
m=10;
b=0.5;
x=[-b*x(3)*(1-p)*x
(1)-b*x
(2)*(1-p)*x
(1),b*x(3)*(1-p)*x
(1)-2/(a1+a2)*x
(2)+b*x
(2)*(1-p)*x
(1)-x
(2)*p*1/a3,2/(a1+a2)*x
(2)-1/a3*x(3),1/a3*x(3)]';
functionx=pen(t,x)
%s=x
(1)e=x
(2)i=x(3)r=x(4);
a1=3;
a2=7;
a3=60;
p=0.8;
m=10;
b=0.5;
x=[-b*x(3)*(1-p)*x
(1)-b*x
(2)*(1-p)*x
(1),b*x(3)*(1-p)*x
(1)-2/(a1+a2)*x
(2)+b*x
(2)*(1-p)*x
(1)-x
(2)*p*1/a3,2/(a1+a2)*x
(2)-1/a3*x(3),1/a3*x(3)]';
命令窗口输入:
s0=[10000000,100,0,210];
[t,x]=ode23s(@pencil,[0,100],s0)
plot(t,x(:
3));
holdon
text(0,100,'(0,100)','color','r')
text(13.31,7.817e+006,'(13.31,7.817e+006)','color','r')
text(100,2.006e+006,'(100,2.006e+006)','color','r')
plot(0,100,'g+',13.31,7.817e+006,'g+',100,2.006e+006,'g+')
s0=[10000000,100,0,210];
[t,x]=ode23s(@pen,[0,100],s0)
plot(t,x(:
3),'g');
holdon
text(0,100,'(0,100)','color','r')
text(12.65,7.555e+006,'(12.65,7.555e+006)','color','r')
text(100,1.921e+006,'(100,1.921e+006)','color','r')
plot(0,100,'g+',12.65,7.555e+006,'g+',100,1.921e+006,'g+')