1实验71 传染病模型.docx

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

1实验71 传染病模型.docx

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

1实验71 传染病模型.docx

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(病人所占比例)');

在命令行输入

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

当前位置:首页 > 解决方案 > 学习计划

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

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