实验四传染病模型微分方程模型.docx

上传人:b****4 文档编号:12113408 上传时间:2023-04-17 格式:DOCX 页数:10 大小:108.60KB
下载 相关 举报
实验四传染病模型微分方程模型.docx_第1页
第1页 / 共10页
实验四传染病模型微分方程模型.docx_第2页
第2页 / 共10页
实验四传染病模型微分方程模型.docx_第3页
第3页 / 共10页
实验四传染病模型微分方程模型.docx_第4页
第4页 / 共10页
实验四传染病模型微分方程模型.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

实验四传染病模型微分方程模型.docx

《实验四传染病模型微分方程模型.docx》由会员分享,可在线阅读,更多相关《实验四传染病模型微分方程模型.docx(10页珍藏版)》请在冰豆网上搜索。

实验四传染病模型微分方程模型.docx

实验四传染病模型微分方程模型

实验六

实验项目:

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

实验目的:

1.进一步巩固、加强微分方程模型的建模、求解能力;

2.学习掌握用数学软件包求解微分方程数值解的相关命令。

实验内容:

1.建模实例,传染病问题等;

2.编程求解。

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

•问题:

有一种传染病(如SARS、甲型H1N1)正在流行。

现在希望建立适当的数学模型,利用已经掌握的一些数据资料对该传染病进行有效地研究,以期对其传播蔓延进行必要的控制,减少人民生命财产的损失。

考虑如下的几个问题,建立适当的数学模型,并进行一定的比较分析和评价展望。

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

时刻的感染人数。

•2、假设环境条件下所允许的最大可感染人数为。

单位时间内感染人数的增长率是感染人数的线性函数,最大感染时的增长率为零。

建立模型求时刻

的感染人数。

实验方法与步骤

1、问题分析

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

b、问题表述中已给出了各子问题的一些相应的假设。

c、在实际中,感染人数是离散变量,不具有连续可微性,不利于建

立微分方程模型。

但由于短时间内改变的是少数人口,这种变化与整体人口相比是微小的。

因此,为了利用数学工具建立微分方程模型,我们还需要一个基本假设:

感染人数是时间的连续可微函数。

2、问题求解

2.1问题一的解答——模型一

A、模型假设

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

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

B、模型构成

时刻的感染人数为,初始时刻()的感染者人数为

,感染者的增长率为

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

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

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

 

C、模型求解:

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

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

x=

x0*exp(r*t)

 

D、模型分析

由上述解的形式,可以看出,感染人数将随着时间的增长按指数规律无限增长。

特别地,当时间趋向于无穷时,感染人数也将趋向于无穷大。

这显然是不符合现实的,说明该模型不可能用于传染病的长期预报,同时也说明迫切需要对该模型进行必要的修正。

E、改进方向

单位时间内感染人数的增长率不是常数,而是逐渐下降的。

原因:

感染人数增长到一定数量后,环境条件、人口总数等因素将对感染者数量的增长起阻滞作用,且阻滞作用随感染者数量增加而变大。

增长率是感染人数的减函数:

感染者越多,增长率越低。

2.2问题二的解答——模型二

A、模型假设

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

•2)、感染人数受环境条件的限制,有一个最大的可感染人数。

•3)、单位时间内感染人数的增长率和感染人数有关,是其线性函数,最大感染时对应增长率为零。

B、模型构成

仍然设

时刻的感染人数为,初始时刻()的感染者人数为,感染者人数为0时,感染人数的增长率为。

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

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

 

•因此,在该模型的假设下,感染人数应满足如下的微分方程:

 

C、模型求解:

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

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

 

D、模型分析

•a)、根据前述微分方程作出

的曲线图,见图1-1,这是一条抛物线。

由该图可看出感染人数增长率随感染人数的变化规律:

增长率随着感染人数的增加而先增后减,在

时达到最大。

这预示着传染病高潮的到来,是医疗卫生部门关注和需要密切注意的时刻。

因为感染人数增长率在一定程度上代表了医疗卫生水平,增长率越小卫生水平越高。

所以改善保健设施、提高卫生水平可以推迟传染病高潮的到来。

.b)、根据模型求解得到的结果作出

~

曲线,见图1-2,这是一条S型曲线。

由该图可看出感染人数随时间的变化规律:

可以看出,当时间趋于无穷时,趋于

,且对一切

此性质说明感染者数量不可能达到最大容量,但可无限趋近于最大容量。

二、利用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实例演示

例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

例2、求微分方程的通解

命令输入:

>>x=dsolve('4*D2x-20*Dx+25*x=0')

得结果为:

x=

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

%系统默认t为自变量

例3、求微分方程在条件

下的特解。

命令输入:

>>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

例4、求下述微分方程组的解

 

命令输入:

>>[xy]=dsolve('Dx=-3*y','Dy=2*x')

得结果为:

x=

1/2*6^(1/2)*(C1*cos(6^(1/2)*t)-C2*sin(6^(1/2)*t))

y=

C1*sin(6^(1/2)*t)+C2*cos(6^(1/2)*t)

3上机练习(可选择其中一部分习题)

1、将讲授过的例子中的命令输入MATLAB命令窗口,执行命令,观察输出结果并体会MATLAB在求解微分方程符号解方面的功能。

2、解下列微分方程(组):

(1)、

 

(2)、

 

(3)、

 

3、求微分方程

在初始条件

下的特解。

4、求微分方程

在初始条件

下的特解。

5、求下列

二阶微分方程的通解。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1