1、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/Copy Figure,复制图形):提示1)画曲线图用 fplot 函数,调用格式如下:fplot(f
2、un,lims)fun 必须为一个 M 文件的函数名或对变量 x 的可执行字符串。若 lims 取xmin xmax,则 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)返回自变量 x 在区间 x1xx2 上函数取最小值时的 x 值。x=fminbnd(-0.1*x*(1-x),0,1)y=0.1*x*(1-x)4)指示最大值坐标用线性绘图函数plot
3、,调用格式如下:plot(x1,y1,颜色 线型 数据点图标, x2,y2,颜色 线型 数据点图标,)说明参见数学实验 p225hold on; %在上面的同一张图上画线(同坐标系)plot(0,x,y,y,:,x,x,0,y,);3)图形的标注使用文本标注函数 text,调用格式如下:格式 1text(x,y,文本标识内容,HorizontalAlignment,字符串 1)x,y 给定标注文本在图中添加的位置。HorizontalAlignment为水平控制属性,控制文本标识起点位于点(x,y)同一水平线上。字符串 1 为水平控制属性值,取三个值之一:left,点(x,y)位于文本标识的左
4、边。center ,点(x,y)位于文本标识的中心点。right ,点(x,y)位于文本标识的右边。格式 2text(x,y, 文本标识内容,VerticalAlignment,字符串 2)VerticalAlignment为垂直控制属性,控制文本标识起点位于点(x,y)同一垂直线上。字符串 1 为垂直控制属性值,取四个值之一:middle, top, cap, baseline, bottom。(对应位置可在命令窗口应用确定)text(0,y,(di/dt)m,VerticalAlignmentbottomtext(x,-0.001,num2str(x),HorizontalAlignmen
5、tcenter4)坐标轴标注调用函数 xlabel, ylabel 和 titletitle(SI模型di/dti曲线xlabel(iylabel(di/dt2. 实验7-2 传染病模型2( SI模型) 画it曲线图 其中,i(t)是第 t 天病人在总人数中所占的比例。k 是每个病人每天有效接触的平均人数(日接触率)。i0是初始时刻( t=0)病人的比例 求出微分方程的解析解 i(t),画出如下所示的 it 曲线( i(0)=0.15, k=0.2,t=030)。 试编写一个 m 文件来实现。(在图形窗口菜单选择 Edit/Copy Figure,复制图形) 1)求解微分方程常微分方程符号解用
6、函数 dsolve,调用格式如下:dsolve(equ1,equ2,变量名)以代表微分方程及初始条件的符号方程为输入参数,多个方程或初始条件可在一个输入变量内联立输入,且以逗号分隔。默认的独立变量为 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
7、i 曲线图(参考教材 p138-139)已知传染病模型 3( SIS 模型):di/dt=- ii-(1-1/ ),i(0)=i0 是整个传染期内每个病人有效接触的平均人数(接触数)。取 =0.1, =1.5,画出如下所示的di/dt i曲线图。(在图形窗口菜单选择 Edit/Copy Figure,复制图形) 用fplot函数画出di/dt i曲线图;在上图上用plot函数画一条过原点的水平用title, xlabel, ylabel标注。4. 实验7-4 传染病模型3( SIS模型) 画it曲线图 实验要求 :求出微分方程的解析解 i(t)。取 =0.2, =3, t=040,画出如下所示
8、的图形。 试编写一个 m 文件来实现。其中蓝色实线为 i(0)=0.2 时的 it 曲线(第 1 条);黑色虚点线为过点( 0, 1-1/ )的水平线(第 2 条);红色虚线为 i(0)=0.9 时的 it 曲线(第 3 条)。图例标注可用legend(i(0)=0.21-1/ i(0)=0.95. 实验7-5 传染病模型4( SIR模型) (参考教材 p140-141)SIR 模型的方程 :di/dt= si- i i(0)=i0ds/dt=- si s(0)=s0实验要求:1设 =1, =0.3, i(0)=0.02, s(0)=0.98。输入 p139 的程序,并修改程序中的t,x,使得
9、输出的数据格式如下(提示:取 4 位小数,使用四舍五入取整函数 round,矩阵剪裁和拼接):ans =Columns 1 through 60 1 2 3 4 50.02 0.039 0.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
10、 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运行结果与教材 p140 的内容比较。1)求解微分方程的数值解函数 ode45,格式如下:t,x=ode45(fun,ts,x0)fun 是由一个或多个待解方程写成的函数式 m 文件;ts=t0,tf表示此微分方程的积分限是从 t0 到 tf,也可以是一些离散的点,形式为 ts=t0,t1,tf;x0 为初值条件。2)等待用户反应命令 pause:程序执行到该命令时暂停,直到用户按任意键后继续(处在命令窗口有效)。3
11、、实验内容在matlab中建立M文件fun1.m代码如下:function y=fun(x)k=0.1;y=k*x*1-x;Fun2.my=-k*x*1-x;在命令行输入以下代码:fun1fun2,0,1);y=0.1*x*(1-x);-hold off在matlab中建立M文件fun22.mk=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(i)=eval(x);endplot(tt,xx)axis(0,31,0,1.1);图1 SI模型it曲线t(天)i(病人所占比例)在命令行输入
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1