实验07讲评参考答案_微分方程模型(2学时)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验07讲评、参考答案

讲评未按时交的同学

批改情况:

附参考答案:

实验07 微分方程模型(2学时)

(第5章 微分方程模型)

1.(验证)传染病模型2(SI 模型)p136~138

传染病模型2(SI 模型):

0(1),(0)di

k i i i i dt

=-= 其中,

i (t )是第t 天病人在总人数中所占的比例。

k 是每个病人每天有效接触的平均人数(日接触率)。 i 0是初始时刻(t =0)病人的比例。

1.1 画~di

i dt

曲线图p136~138

取k =0.1,画出

i dt di ~的曲线图,求i 为何值时dt

di

达到最大值,并在曲线图上标注。

%传染病模型2(SI 模型)的di/dt~i 曲线图 %文件名:p137fig2.m %λ=0.1 clear; clc;

《数学建模实验》

王平

提示:fplot, fminbnd, plot, text, title, xlabel

1)画曲线图

用fplot函数,调用格式如下:

fplot(fun,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)

fun必须为一个M文件的函数名或对变量x的可执行字符串。

返回自变量x在区间x1

本题可用

x=fminbnd('-0.1*x*(1-x)',0,1)

y=0.1*x*(1-x)

3)指示最大值坐标

用线性绘图函数plot,调用格式如下:

plot(x1,y1, '颜色线型数据点图标', x2,y2, '颜色线型数据点图标',…)

本题可用

hold on; %在上面的同一张图上画线(同坐标系)

plot([0,x],[y,y],':',[x,x],[0,y],':');

4)图形的标注

使用文本标注函数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');

5)坐标轴标注

调用函数xlabel,ylabel和title

本题可用

title('SI模型di/dt~i曲线');

xlabel('i');

ylabel('di/dt');

☆程序运行结果(比较[138]图2):

1.2 画i~t曲线图p136~138

求出微分方程的解析解i(t),画出i~t曲线(i(0)=0.15, k=0.2, t=0~30)(见[138]图1比较)。

% 5.1 传染病模型——模型2

% 文件名:p136fig1.m

% di/dt=ki(1-i), i(0)=i0

clear; clc;

x=dsolve('Dx=k*x*(1-x)','x(0)=x0') %求微分方程的解析解,为符号表达式x0=0.15; k=0.2;%xi对应i,xi0对应i0,k对应λ

tt=0:0.1:30;%时间单位为天

for s=1:length(tt)%x的表达式中没有点运算,按标量运算取值xx t=tt(s);

xx(s)=eval(x);%给出xi0=0.2,k=0.2,t,求符号表达式xi的对应值

end %xx为复数表示

plot(tt,xx);

axis([0 31 0 1.1]);

title('图1 SI模型的i~t曲线');

xlabel('t (天)'); ylabel('i (病人所占比例)');

1) 求解微分方程dsolve],见提示;

2) 画出i~t曲线(i(0)=0.15, λ=0.2, t=0~30)

用for循环,函数length, eval, plot, axis, title, xlabel, ylabel。

☆程序运行结果(见[138]图1):

0510********

0.2

0.4

0.6

0.8

1

图1 SI模型的i~t曲线

t (天)

i

相关文档
最新文档