实验 传染病模型_第1页
实验 传染病模型_第2页
实验 传染病模型_第3页
实验 传染病模型_第4页
实验 传染病模型_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河北大学数学模型实验 实验报告班级专业15计科2班姓名 张宇轩学号20151101006实验地点 C1-229指导老师司建辉成绩实验项目1. 实验7-1 传染病模型2( SI模型) 画di/dt i 曲线图2. 实验7-2 传染病模型2( SI模型) 画it曲线图 3. 实验7-3 传染病模型3( SIS模型) 画di/dt i 曲线图4. 实验7-4 传染病模型3( SIS模型) 画it曲线图 5. 实验7-5 传染病模型4( SIR模型) 1、 实验目的2、 实验要求 1. 实验7-1 传染病模型2( SI模型) 画di/dt i 曲线图(参考教材 p137-138)传染病模型 2( SI

2、 模型):di/dt=ki(1-i),i(0)=i0;其中, i(t)是第 t 天病人在总人数中所占的比例。 是每个病人每天有效接触的平均人数(日接触率)。i0是初始时刻( t=0)病人的比例。 取 k=0.1,画出 di/dt i 曲线图,求 i 为何值时di/dt达到最大值,并在曲线图上标注。 试编写一个 m 文件来实现。参考程序运行结果(在图形窗口菜单选择 Edit/Copy Figure,复制图形): 提示1)画曲线图用 fplot 函数,调用格式如下:fplot(fun,lims)fun 必须为一个 M 文件的函数名或对变量 x 的可执行字符串。若 lims 取xmin xmax,则

3、 x 轴被限制在此区间上。若 lims 取xmin xmax ymin ymax,则 y 轴也被限制。本题可用fplot('0.1*x*(1-x)',0 1.1 0 0.03);2)求最大值用求解边界约束条件下的非线性最小化函数 fminbnd,调用格式如下:x=fminbnd(fun,x1,x2)fun 必须为一个 M 文件的函数名或对变量 x 的可执行字符串。返回自变量 x 在区间 x1<x<x2 上函数取最小值时的 x 值。本题可用x=fminbnd('-0.1*x*(1-x)',0,1)y=0.1*x*(1-x)4)指示最大值坐标用线性绘图函

4、数plot,调用格式如下:plot(x1,y1,颜色 线型 数据点图标, x2,y2,颜色 线型 数据点图标,)说明参见数学实验 p225本题可用hold on; %在上面的同一张图上画线(同坐标系)plot(0,x,y,y,':',x,x,0,y,':');3)图形的标注使用文本标注函数 text,调用格式如下:格式 1text(x,y,文本标识内容,HorizontalAlignment,字符串 1)x,y 给定标注文本在图中添加的位置。HorizontalAlignment为水平控制属性,控制文本标识起点位于点(x,y)同一水平线上。字符串 1 为水平控制

5、属性值,取三个值之一:left,点(x,y)位于文本标识的左边。center ,点(x,y)位于文本标识的中心点。right ,点(x,y)位于文本标识的右边。格式 2text(x,y, 文本标识内容,VerticalAlignment,字符串 2)x,y 给定标注文本在图中添加的位置。VerticalAlignment为垂直控制属性,控制文本标识起点位于点(x,y)同一垂直线上。字符串 1 为垂直控制属性值,取四个值之一:middle, top, cap, baseline, bottom。(对应位置可在命令窗口应用确定)本题可用text(0,y,'(di/dt)m',

6、9;VerticalAlignment','bottom');text(x,-0.001,num2str(x),'HorizontalAlignment','center');4)坐标轴标注调用函数 xlabel, ylabel 和 title本题可用title('SI模型di/dti曲线');xlabel('i');ylabel('di/dt'); 2. 实验7-2 传染病模型2( SI模型) 画it曲线图 (参考教材 p137-138)传染病模型 2( SI 模型):di/dt=ki(1

7、-i),i(0)=i0;其中,i(t)是第 t 天病人在总人数中所占的比例。k 是每个病人每天有效接触的平均人数(日接触率)。i0是初始时刻( t=0)病人的比例 求出微分方程的解析解 i(t),画出如下所示的 it 曲线( i(0)=0.15, k=0.2,t=030)。 试编写一个 m 文件来实现。(在图形窗口菜单选择 Edit/Copy Figure,复制图形) 提示1)求解微分方程常微分方程符号解用函数 dsolve,调用格式如下:dsolve(equ1,equ2,变量名)以代表微分方程及初始条件的符号方程为输入参数,多个方程或初始条件可在一个输入变量内联立输入,且以逗号分隔。默认的独

8、立变量为 t,也可把 t 变为其他的符号变量。字符 D 代表对独立变量的微分,通常指 d/dt。本题可用x=dsolve(Dx=k*x*(1-x),x(0)=x0)2) 画出 it 曲线( i(0)=0.15, =0.2, t=030)用 for 循环,函数 length, eval, plot, axis, title, xlabel, ylabel 3. 实验7-3 传染病模型3( SIS模型) 画di/dt i 曲线图(参考教材 p138-139)已知传染病模型 3( SIS 模型):di/dt=-l ii-(1-1/s ),i(0)=i0其中,i(t)是第 t 天病人在总人数中所占的比

9、例。 是每个病人每天有效接触的平均人数(日接触率)。i0是初始时刻( t=0)病人的比例。 是整个传染期内每个病人有效接触的平均人数(接触数)。 取 =0.1, =1.5,画出如下所示的di/dt i曲线图。 试编写一个 m 文件来实现。(在图形窗口菜单选择 Edit/Copy Figure,复制图形) 提示用fplot函数画出di/dt i曲线图;在上图上用plot函数画一条过原点的水平用title, xlabel, ylabel标注。 4. 实验7-4 传染病模型3( SIS模型) 画it曲线图 (参考教材 p138-139)已知传染病模型 3( SIS 模型): di/dt=-l ii-

10、(1-1/s ),i(0)=i0其中,i(t)是第 t 天病人在总人数中所占的比例。 是每个病人每天有效接触的平均人数(日接触率)。i0是初始时刻( t=0)病人的比例。 是整个传染期内每个病人有效接触的平均人数(接触数)。实验要求 :求出微分方程的解析解 i(t)。取 =0.2, =3, t=040,画出如下所示的图形。 试编写一个 m 文件来实现。 其中蓝色实线为 i(0)=0.2 时的 it 曲线(第 1 条);黑色虚点线为过点( 0, 1-1/ )的水平线(第 2 条);红色虚线为 i(0)=0.9 时的 it 曲线(第 3 条)。提示图例标注可用legend('i(0)=0.

11、2','1-1/¦ ','i(0)=0.9'); 5. 实验7-5 传染病模型4( SIR模型) (参考教材 p140-141)SIR 模型的方程 :di/dt=l si-m i i(0)=i0ds/dt=-l si s(0)=s0实验要求:1设 =1, =0.3, i(0)=0.02, s(0)=0.98。输入 p139 的程序,并修改程序中的t,x,使得输出的数据格式如下(提示:取 4 位小数,使用四舍五入取整函数 round,矩阵剪裁和拼接):ans =Columns 1 through 60 1 2 3 4 50.02 0.039 0.

12、0732 0.1285 0.2033 0.27950.98 0.9525 0.9019 0.8169 0.6927 0.5438Columns 7 through 126 7 8 9 10 150.3312 0.3444 0.3247 0.2863 0.2418 0.07870.3995 0.2839 0.2027 0.1493 0.1145 0.0543Columns 13 through 1820 25 30 35 40 450.0223 0.0061 0.0017 0.0005 0.0001 00.0434 0.0408 0.0401 0.0399 0.0399 0.03982运行结果与

13、教材 p140 的内容比较。提示1)求解微分方程的数值解函数 ode45,格式如下:t,x=ode45('fun',ts,x0)fun 是由一个或多个待解方程写成的函数式 m 文件;ts=t0,tf表示此微分方程的积分限是从 t0 到 tf,也可以是一些离散的点,形式为 ts=t0,t1,tf;x0 为初值条件。2)等待用户反应命令 pause:程序执行到该命令时暂停,直到用户按任意键后继续(处在命令窗口有效)。3、 实验内容1. 实验7-1 传染病模型2( SI模型) 画di/dt i 曲线图在matlab中建立M文件fun1.m代码如下:function y=fun(x)k

14、=0.1;y=k*x*1-x;Fun2.m代码如下:function y=fun(x)k=0.1;y=-k*x*1-x;在命令行输入以下代码:fplot('fun1',0 1.1 0 0.03);x=fminbnd('fun2',0,1);y=0.1*x*(1-x);hold on;plot(0,x,y,y,'-',x,x,0,y,'-');text(0,y,'(di/dt)m','VerticalAlignment','bottom');text(x,-0.001,num2str(

15、x),'HorizontalAlignment','center');title('SI模型di/dti曲线');xlabel('i');ylabel('di/dt');hold off2. 实验7-2 传染病模型2( SI模型) 画it曲线图 在matlab中建立M文件fun22.m代码如下:k=0.2;x0=0.15; x=dsolve('Dx=k*x*(1-x)','x(0)=x0'); tt=linspace(0,31,1001);for i=1:1001t=tt(i);xx

16、(i)=eval(x);endplot(tt,xx)axis(0,31,0,1.1);title('图1 SI模型it曲线');xlabel('t(天)');ylabel('i(病人所占比例)');在命令行输入以下代码:fun22;3. 实验7-3 传染病模型3( SIS模型) 画di/dt i 曲线图在matlab中建立M文件fun3.m代码如下:function y=fun(x)a=0.1;b=1.5;y=-a*x*x-(1-1/b);在命令行输入以下代码: fplot('fun3',0 0.4 -0.0005 0.003);

17、 x=fminbnd('fun3',0,1);title('SIS模型di/dti曲线');xlabel('i');ylabel('di/dt');>> hold on>> plot(0,0.4,0,0)4. 实验7-4 传染病模型3( SIS模型) 画it曲线图 在matlab中建立M文件fun4.m代码如下:function y=fun(x) x=dsolve('Dx=-0.2*x*(x-(1-1/3)','x(0)=0.2'); tt=linspace(0,41,100

18、1);for i=1:1001t=tt(i);xx(i)=eval(x);endplot(tt,xx);hold on;plot(0,40,1-1/3,1-1/3,'-k'); x=dsolve('Dx=-0.2*x*(x-(1-1/3)','x(0)=0.9'); tt=linspace(0,41,1001);for i=1:1001t=tt(i);xx(i)=eval(x);endplot(tt,xx,'-r');axis(0,40,0,1);title('图1 SI模型it曲线( =0.2, =3)');xl

19、abel('t(天)');ylabel('i(病人所占比例)');legend('i(0)=0.2','1-1/ ','i(0)=0.9');在命令行输入以下代码:fun4;5. 实验7-5 传染病模型4( SIR模型) 在matlab中建立M文件fun5.m代码如下:function y=fun(t,x)a=1;b=0.3;y=a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)'在命令行输入以下代码:>> ts=0:50;>> x0=0.02,0.98;>>

20、 t,x=ode45('fun5',ts,x0);>> plot(t,x(:,1),t,x(:,2),grid,pause>> plot(x(:,2),x(:,1),grid,4、 实验结果及其分析1. 实验7-1 传染病模型2( SI模型) 画di/dt i 曲线图分析:当i=1/2时di/dt达到最大值(di/dt)m ,这时病人增加得在最快,可以认为是医院的门诊量最大的一天,预示着传染病高潮的到来,是医疗卫生部门关注的时刻。当t趋近于无穷时i趋近于1,即所有人终将被传染,全部变成病人,着显然不符合实际。原因是模型中没有考虑到病人可以治愈,人群中的健

21、康者只能变成病人,病人不会再变成健康者。2. 实验7-2 传染病模型2( SI模型) 画it曲线图 分析:当i=1/2时di/dt达到最大值(di/dt)m ,这时病人增加得在最快,可以认为是医院的门诊量最大的一天,预示着传染病高潮的到来,是医疗卫生部门关注的时刻。当t趋近于无穷时i趋近于1,即所有人终将被传染,全部变成病人,着显然不符合实际。原因是模型中没有考虑到病人可以治愈,人群中的健康者只能变成病人,病人不会再变成健康者。3. 实验7-3 传染病模型3( SIS模型) 画di/dt i 曲线图分析:是一个阈值,当>1时,i(t)的增减性取决于i0的大小,但其极限值i(无穷)=1-1

22、/,随的增加而增加(试从的含义给予解释);当<=1时,病人的比例i(t)越来越小。最终趋近于0,这是由于传染期内经有效接触从而使健康者变成病人数不超过原来的病人数的缘故。4. 实验7-4 传染病模型3( SIS模型) 画it曲线图 分析:是一个阈值,当>1时,i(t)的增减性取决于i0的大小,但其极限值i(无穷)=1-1/,随的增加而增加(试从的含义给予解释);当<=1时,病人的比例i(t)越来越小。最终趋近于0,这是由于传染期内经有效接触从而使健康者变成病人数不超过原来的病人数的缘故。5. 实验7-5 传染病模型4( SIR模型) ans = 0 0.0200 0.9800

23、 1.0000 0.0390 0.9525 2.0000 0.0732 0.9019 3.0000 0.1285 0.8169 4.0000 0.2033 0.6927 5.0000 0.2795 0.5438 6.0000 0.3312 0.3995 7.0000 0.3444 0.2839 8.0000 0.3247 0.2027 9.0000 0.2863 0.1493 10.0000 0.2418 0.1145 11.0000 0.1986 0.0917 12.0000 0.1599 0.0767 13.0000 0.1272 0.0665 14.0000 0.1004 0.0593 15.0000 0.0787 0.0543 16.0000 0.0614 0.0507 17.0000 0.0478 0.0480 18.0000 0.0371 0.0460 19.0000 0.0287 0.0445 20.0000 0.0223 0.0434 21.0000 0.0172 0.0426 22.0000 0.0133 0.0419 23.0000 0.0103 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论