1实验71 传染病模型.docx
- 文档编号:2289499
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:17
- 大小:125.86KB
1实验71 传染病模型.docx
《1实验71 传染病模型.docx》由会员分享,可在线阅读,更多相关《1实验71 传染病模型.docx(17页珍藏版)》请在冰豆网上搜索。
1实验71传染病模型
河北大学《数学模型》实验实验报告
班级专业
15计科2班
姓名
张宇轩
学号
20151101006
实验地点
C1-229
指导老师
司建辉
成绩
实验项目
1.实验7-1传染病模型2(SI模型)——画di/dt~i曲线图
2.实验7-2传染病模型2(SI模型)——画i~t曲线图
3.实验7-3传染病模型3(SIS模型)——画di/dt~i曲线图
4.实验7-4传染病模型3(SIS模型)——画i~t曲线图
5.实验7-5传染病模型4(SIR模型)
1、实验目的
2、实验要求
1.实验7-1传染病模型2(SI模型)——画di/dt~i曲线图
(参考教材p137-138)
传染病模型2(SI模型):
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/CopyFigure,复制图形):
[提示]
1)画曲线图
用fplot函数,调用格式如下:
fplot(fun,lims)
fun必须为一个M文件的函数名或对变量x的可执行字符串。
若lims取[xminxmax],则x轴被限制在此区间上。
若lims取[xminxmaxyminymax],则y轴也被限制。
本题可用
fplot('0.1*x*(1-x)',[01.100.03]);
2)求最大值
用求解边界约束条件下的非线性最小化函数fminbnd,调用格式如下:
x=fminbnd(‘fun’,x1,x2)
fun必须为一个M文件的函数名或对变量x的可执行字符串。
返回自变量x在区间x1 本题可用 x=fminbnd('-0.1*x*(1-x)',0,1) y=0.1*x*(1-x) 4)指示最大值坐标 用线性绘图函数plot,调用格式如下: plot(x1,y1,’颜色线型数据点图标’,x2,y2,’颜色线型数据点图标’,…) 说明参见《数学实验》p225 本题可用 holdon;%在上面的同一张图上画线(同坐标系) plot([0,x],[y,y],': ',[x,x],[0,y],': '); 3)图形的标注 使用文本标注函数text,调用格式如下: 格式1 text(x,y,文本标识内容,’HorizontalAlignment’,’字符串1’) x,y给定标注文本在图中添加的位置。 ’HorizontalAlignment’为水平控制属性,控制文本标识起点位于点(x,y)同一水平线 上。 ’字符串1’为水平控制属性值,取三个值之一: ‘left’,点(x,y)位于文本标识的左边。 ‘center’,点(x,y)位于文本标识的中心点。 ‘right’,点(x,y)位于文本标识的右边。 格式2 text(x,y,文本标识内容,’VerticalAlignment’,’字符串2’) x,y给定标注文本在图中添加的位置。 ’VerticalAlignment’为垂直控制属性,控制文本标识起点位于点(x,y)同一垂直线上。 ’字符串1’为垂直控制属性值,取四个值之一: ‘middle’,’top’,’cap’,’baseline’,’bottom’。 (对应位置可在命令窗口应用确 定) 本题可用 text(0,y,'(di/dt)m','VerticalAlignment','bottom'); text(x,-0.001,num2str(x),'HorizontalAlignment','center'); 4)坐标轴标注 调用函数xlabel,ylabel和title 本题可用 title('SI模型di/dt~i曲线'); xlabel('i'); ylabel('di/dt'); 2.实验7-2传染病模型2(SI模型)——画i~t曲线图 (参考教材p137-138) 传染病模型2(SI模型): di/dt=ki(1-i),i(0)=i0; 其中, i(t)是第t天病人在总人数中所占的比例。 k是每个病人每天有效接触的平均人数(日接触率)。 i0是初始时刻(t=0)病人的比例 求出微分方程的解析解i(t),画出如下所示的i~t曲线(i(0)=0.15,k=0.2, t=0~30)。 试编写一个m文件来实现。 (在图形窗口菜单选择Edit/CopyFigure,复制 图形) [提示] 1)求解微分方程 常微分方程符号解用函数dsolve,调用格式如下: dsolve(‘equ1’,’equ2’,…,’变量名’) 以代表微分方程及初始条件的符号方程为输入参数,多个方程或初始条件可在一个输入 变量内联立输入,且以逗号分隔。 默认的独立变量为t,也可把t变为其他的符号变量。 字符D代表对独立变量的微分,通常指d/dt。 本题可用 x=dsolve(‘Dx=k*x*(1-x)’,’x(0)=x0’) 2)画出i~t曲线(i(0)=0.15,λ=0.2,t=0~30) 用for循环,函数length,eval,plot,axis,title,xlabel,ylabel 3.实验7-3传染病模型3(SIS模型)——画di/dt~i曲线图 (参考教材p138-139) 已知传染病模型3(SIS模型): di/dt=-λi[i-(1-1/σ)],i(0)=i0 其中, i(t)是第t天病人在总人数中所占的比例。 λ是每个病人每天有效接触的平均人数(日接触率)。 i0是初始时刻(t=0)病人的比例。 σ是整个传染期内每个病人有效接触的平均人数(接触数)。 取λ=0.1,σ=1.5,画出如下所示的di/dt~i曲线图。 试编写一个m文件来实现。 (在图 形窗口菜单选择Edit/CopyFigure,复制图形) [提示] 用fplot函数画出di/dt~i曲线图; 在上图上用plot函数画一条过原点的水平 用title,xlabel,ylabel标注。 4.实验7-4传染病模型3(SIS模型)——画i~t曲线图 (参考教材p138-139) 已知传染病模型3(SIS模型): di/dt=-λi[i-(1-1/σ)],i(0)=i0 其中, i(t)是第t天病人在总人数中所占的比例。 λ是每个病人每天有效接触的平均人数(日接触率)。 i0是初始时刻(t=0)病人的比例。 σ是整个传染期内每个病人有效接触的平均人数(接触数)。 实验要求: 求出微分方程的解析解i(t)。 取λ=0.2,σ=3,t=0~40,画出如下所示的图形。 试编写 一个m文件来实现。 其中 蓝色实线为i(0)=0.2时的i~t曲线(第1条); 黑色虚点线为过点(0,1-1/σ)的水平线(第2条); 红色虚线为i(0)=0.9时的i~t曲线(第3条)。 [提示] 图例标注可用 legend('i(0)=0.2','1-1/¦σ','i(0)=0.9'); 5.实验7-5传染病模型4(SIR模型) (参考教材p140-141) SIR模型的方程: di/dt=λsi-μii(0)=i0 ds/dt=-λsis(0)=s0 实验要求: 1.设λ=1,μ=0.3,i(0)=0.02,s(0)=0.98。 输入p139的程序,并修改程序中 的[t,x],使得输出的数据格式如下(提示: 取4位小数,使用四舍五入取整函数round, 矩阵剪裁和拼接): ans= Columns1through6 012345 0.020.0390.07320.12850.20330.2795 0.980.95250.90190.81690.69270.5438 Columns7through12 67891015 0.33120.34440.32470.28630.24180.0787 0.39950.28390.20270.14930.11450.0543 Columns13through18 202530354045 0.02230.00610.00170.00050.00010 0.04340.04080.0401 0.03990.03990.0398 2.运行结果与教材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 代码如下: functiony=fun(x) k=0.1; y=k*x*[1-x]; Fun2.m 代码如下: functiony=fun(x) k=0.1; y=-k*x*[1-x]; 在命令行输入以下代码: fplot('fun1',[01.100.03]); x=fminbnd('fun2',0,1); y=0.1*x*(1-x); holdon; plot([0,x],[y,y],'-',[x,x],[0,y],'-'); text(0,y,'(di/dt)m','VerticalAlignment','bottom'); text(x,-0.001,num2str(x),'HorizontalAlignment','center'); title('SI模型di/dt~i曲线'); xlabel('i'); ylabel('di/dt'); holdoff 2.实验7-2传染病模型2(SI模型)——画i~t曲线图 在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); fori=1: 1001 t=tt(i); xx(i)=eval(x); end plot(tt,xx) axis([0,31,0,1.1]); title('图1SI模型i~t曲线'); xlabel('t(天)'); ylabel('i(病人所占比例)'); 在命令行输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1实验71 传染病模型 实验 71 传染病 模型