第一范文网 - 专业文章范例文档资料分享平台

实验四 传染病模型 - 微分方程模型(1)

来源:用户分享 时间:2020-06-22 本文由似我萌 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实 验 六

实验项目:传染病模型——微分方程模型实验

实验目的:1.进一步巩固、加强微分方程模型的建模、求解能力; 2.学习掌握用数学软件包求解微分方程数值解的相关命令。 实验内容:1.建模实例,传染病问题等; 2.编程求解。

一、模型实例-----传染病模型

? 问题: 有一种传染病(如SARS、甲型H1N1)正在流行。现在希望建立适当的数学模型,利用已经掌握的一些数据资料对该传染病进行有效地研究,以期对其传播蔓延进行必要的控制,减少人民生命财产的损失。考虑如下的几个问题,建立适当的数学模型,并进行一定的比较分析和评价展望。

? 1、不考虑环境的限制,设单位时间内感染人数的增长率是常数,建立模型求

t时刻的感染人数。

m? 2、假设环境条件下所允许的最大可感染人数为 。单位时间内感染人

数的增长率是感染人数的线性函数,最大感染时的增长率为零。建立模型

x求时刻

t的感染人数。

实验方法与步骤 1、问题分析

a、这是一个涉及传染病传播情况的实际问题,其中涉及传染病感染人数随时间的变化情况及一些初始资料,可通过建立相应的微分方程模型加以解决。 b、问题表述中已给出了各子问题的一些相应的假设。

c、在实际中,感染人数是离散变量,不具有连续可微性,不利于建 立微分方程模型。但由于短时间内改变的是少数人口,这种变化与整体人口相比是微小的。因此,为了利用数学工具建立微分方程模型,我们还需要一个基本假设:感染人数是时间的连续可微函数。

2、问题求解

2.1 问题一的解答——模型一 A、模型假设

1)、感染人数是时间的连续可微函数;

2)、单位时间内感染人数的增长率是常数,或单位时间内感染人数的增长量与

当时的感染人数成正比。

B、模型构成

设时刻的感染人数为 ,初始时刻( t ? 0 )的感染者人数为

tx(t)x0 ,

感染者的增长率为

r,根据单位时间内感染人数的增长率是常数的假设,t到

因此, 满足如下的微分方程:

0

C、模型求解:MATLAB计算求解(介绍完MATLAB求解微分方程数值解的相关命令后再运行)

>> x=dsolve('Dx-r*x=0','x(0)=x0','t')

x =

x0*exp(r*t)

即 x(t)?x0ert?x0(1?r)t

D、模型分析

由上述解的形式,可以看出,感染人数将随着时间的增长按指数规律无限增长。特别地,当时间趋向于无穷时,感染人数也将趋向于无穷大。这显然是不符合现实的,说明该模型不可能用于传染病的长期预报,同时也说明迫切需要对该模型进行必要的修正。 E、改进方向

单位时间内感染人数的增长率不是常数,而是逐渐下降的。原因:感染人数增长到一定数量后,环境条件、人口总数等因素将对感染者数量的增长起阻滞作用,且阻滞作用随感染者数量增加而变大。增长率是感染人数的减函数:感染者越多,增长率越低。

2.2 问题二的解答——模型二 A、模型假设

? 1)、感染人数是时间的连续可微函数;

x 。

? 2)、感染人数受环境条件的限制,有一个最大的可感染人数 m? 3)、单位时间内感染人数的增长率和感染人数有关,是其线性函数,最大感染时对应增长率为零。 B、模型构成

t??t时间内感染人数的增量为:

x(t??t)?x(t)?rx(t)?tx(t)?dx??rx,?dt??x(0)?x? 仍然设时刻的感染人数为 x ( t ) ,初始时刻( t ? 0 )的感染者人数

t为 x 0 ,感染者人数为0时,感染人数的增长率为 r 0。根据单位时间内感染人数的增长率和感染人数有关,是其线性函数的假设,可得增长率关于感染者人数的线性函数关系式:

? 进一步,由最大感染时对应的增长率为零可确定参数k的值为:

r(x)?r0?kxr0k?xm? 因此,在该模型的假设下,感染人数 应满足如下的微分方程:

0

m

0

C、模型求解:MATLAB计算求解(介绍完MATLAB求解微分方程数值解的相关命令后再运行)

x(t)x?dx??r(x)x?r(1?)x,x?dt?x(0)?x? x=dsolve('Dx-r0*(1-x/xm)*x=0','x(0)=x0','t')

D、模型分析

x(t)?xm?xm??r0t1???1?e?x0?? a)、根据前述微分方程作出dx/dt~x的曲线图,见图1-1,这是一条抛物线。由该图可看出感染人数增长率随感染人数的变化规律:增长率随着感染人数的增加而先增后减,在xm/2时达到最大。这预示着传染病高

潮的到来,是医疗卫生部门关注和需要密切注意的时刻。因为感染人数增

长率在一定程度上代表了医疗卫生水平,增长率越小卫生水平越高。所以改善保健设施、提高卫生水平可以推迟传染病高潮的到来。

. b)、根据模型求解得到的结果作出x~t曲线,见图1-2,这是一条S型曲线。由该图可看出感染人数随时间的变化规律:可以看出,当时间趋于无穷时, x ( t) 趋于

xm,且对一切t,x(t)?xm。此性质说明感染者数量不可能达到最大容

量,但可无限趋近于最大容量。

二、利用MATLAB求解微分方程数值解的相关命令

1 指令函数及调用格式 1.1 指令函数:dsolve

注:此指令函数用于求解微分方程(组)的符号(解析)解。 1.2 单变量常微分方程的调用格式: f=dsolve(‘eq’, ‘cond’, ‘v’)

注:此调用格式用于求符号微分方程的通解或特解,其中eq代表微分方程,cond代表微分方程的初始条件(若缺少,则求微分方程的通解),v为指定自变量(如未指定,系统默认t为自变量)。 1.3 常微分方程组的调用格式:

f=dsolve(‘eq1’, ‘eq2’,…, ‘eqn’, ‘cond1’, ‘cond2’,…, ‘condn’, ‘v1’, ‘v2’, …, ‘vn’)

注:此调用格式用于求解符号常微分方程组。其中eq1,…,eqn代表n个微分方程构成的微分方程组;cond1, …,condn代表微分方程组的初始条件(若缺少,则求微分方程组的通解),v1 , …,vn为指定自变量(如未指定,系统默认t为自变量)。 1.4 记述规定:

MATLAB中,用D(注意:一定是大写)记述微分方程中函数的导数。

当y是因变量时,用‘Dny’表示‘y的n阶导数’。如,Dy表示y的一阶导数y ' ,Dny表示y的n阶导数。 Dy(0)=5表示y ' (0)=5。

D3y+D2y+Dy-x+5=0表示微分方程 y'''+y''+y'-x+5=0。

2 实例演示

x2例1、求微分方程 ' ? 的通解

命令输入:

>> y=dsolve('Dy+2*x*y=2*x*exp(-x^2)','x') 得结果为: y =

(x^2+C1)*exp(-x^2) 若输入命令:

>>y=dsolve('Dy+2*x*y=2*x*exp(-x^2)') 则系统默认t为自变量,而把真正的自变量x当作常数处理,把y当作t的函数,得到错误的结果: y =

exp(-2*x*t-x*(x-2*t))+exp(-2*x*t)*C1 2d例2、求微分方程 x dx 的通解 42 ?20 ?25x?0 dtdt命令输入:

>> x=dsolve('4*D2x-20*Dx+25*x=0') 得结果为:

x =

C1*exp(5/2*t)+C2*exp(5/2*t)*t

%系统默认t为自变量 ''''y?6,y?4例3、求微分方程 y ? 5 y ? 4 y ? 10 ? 0 在条件 x ? 0

x?0 下的特解。 命令输入:

>>y=dsolve('D2y+5*Dy-4*y+10=0','y(0)=6','Dy(0)=4','x') 得结果为:

y =

exp(1/2*(-5+41^(1/2))*x)*(51/164*41^(1/2)+7/4)+exp(-1/2*(5+

41^(1/2))*x)*(7/4-51/164*41^(1/2))+5/2

y?2xy?2xe

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育实验四 传染病模型 - 微分方程模型(1) 全文阅读和word下载服务。

实验四 传染病模型 - 微分方程模型(1) .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1094044.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top