资源描述
数学模型实验—实验报告10
学院: 专 业: 姓 名:
学号:___ ____ 实验时间:__ ____ 实验地点:
一、实验项目:传染病模型求解
二、实验目得与要求
a、求解微分方程得解析解
b、求解微分方程得数值解
三、实验内容
问题得描述
各种传染病给人类带来得巨大得灾难,长期以来,建立传染病得数学模型来描述传染病得得传播过程,分析受感染人数得变化规律,探索制止传染病蔓延得手段等,一直就是各国有关专家与官员关注得课题.
不同类型传染病有各自不同得特点,在此以一般得传播机理建立几种3模型。分别对3种建立成功得模型进行模型分析,便可以了解到该传染病在人类间传播得大概情况.
模型一(SI模型):
(1)模型假设
1、在疾病传播期内所考察地区得总人数N不变,人群分为健康人与病人,时刻t这两类人在总人数中所占比例为s(t)与i(t)。
2、每个病人每天有效接触得平均人数就是常数a,a成为日接触率,当病人与健康者有效接触时,可使其患病。
(2)建立模型
根据假设,每个病人每天可使as(t)个健康人变成病人,t时刻病人数为Ni(t),所以每天共有aNs(t)i(t)个健康者被感染,即病人得增加率为: Ndi/dt=aNsi
又因为s(t)+i(t)=1
再记时刻t=0时病人得比例为i0
则建立好得模型为:
i(0)=i0
(3)模型求解 (代码、计算结果或输出结果)
syms a i t i0 % a:日接触率,i:病人比例, s:健康人比例,i0:病人比例在t=0时得值
i=dsolve(’Di=a*i*(1-i)','i(0)=i0',’t’);
y=subs(i,{a,i0},{0、3,0、02});
ezplot(y,[0,100])
figure
i=str2double(i);
i=0:0、01:1;
y=0、3*i、*(1-i);
plot(i,y)
SI模型得i~t曲线 SI 模型得di/dt~i 曲线
(4)结果分析
由上图可知,在i=0:1内,di/dt总就是增大得,且在i=0、5时,取到最大值,即在t—>inf时,所有人都将患病.
上述模型显然不符合实际,为修正上述结果,我们重新考虑模型假设,建立SIS 模型
模型二(SIS模型)
(1) 模型假设
假设条件1、2与SI模型相同;
3、每天被治愈得病人数占病人总数得比例为常数u,成为日治愈率,病人治愈后成为仍可被感染得健康者。显然1/u就是平均传染期.
(2)模型建立
病人得增加率:Ndi/dt=aNsi-uNi 且 i(t)+s(t)=1;
则有: di/dt=ai(1-i)-ui
在此定义k=a/b,可知k就是整个传染传染期内每个病人有效接触得平均人数,成为接触数。
则建立好得模型为:
i(0)=i0;
(2) 模型求解 (代码、计算结果或输出结果)
>> syms a i u t i0 % a:日接触率,i:病人比例,u:日治愈率,i0:病人比例在t=0时得值
>〉 dsolve('Di=a*i*(1-i)—u*i’,'i(0)=i0','t’) % 求用u表示得i—t解析式
〉> syms k % k:接触数
〉> k=a/u;
〉> i=dsolve('Di=—a*i*i+a*i*(1-1/k)','i(0)=i0’,’t') % 求用k表示得i—t解析式
% 给k、a、i0指定特殊值,作出相关图像
〉〉 y=subs(i,{k,a,i0},{2,0、3,0、02}); %①k>1得情况,以k=2为例
>> ezplot(y,[0,100])
〉>pause %作i—t图,分析随时间t得增加, i得变化
>> gtext('1/k')
>〉legend('k>1 本例中k=2')
>〉figure
>〉 i=str2double(i);
>> i=0:0、01:1;
>〉 y=—0、3*i、*[i-1/2];
〉> plot(i,y) %作di/dt—i得图像
〉〉 gtext('1-1/k,在此图中为0、5')
〉> legend('k=2')
〉> y=subs(i,{k,a,i0},{0、8,0、3,0、02}); %②k<1 得情况,以k=0、8为例
〉〉 ezplot(y,[0,100]) %作i—t图,分析随时间t增加,i得变化
〉> legend('k〈1 本例中k=0、8')
>>figure
〉> i=str2double(i);
〉> i=0:0、01:1;
>> y=—0、3*i、*[i—(1-1/0、8)];
>〉 plot(i,y) %作di/dt-i 得图像
>〉 legend(’k=0、8')
〉> gtext('k<=1时得情况)
SIS 模型得di/dt-i曲线 (k>1) SIS模型得i—t曲线(k>1)
SIS 模型得di/dt—i曲线 (k<1) SIS模型得i—t曲线(k<1)
(4)结果分析
不难瞧出,接触数k=1就是一个阈值,当k>1时,i(t)得增减性取决于i0得大小,但其极限值i(∞)=1-1/k随k得增加而增加;当k〈=1时,病人比例i(t)越来越小,最终趋于0,这就是由于传染期内经有效解除从而使健康者变为得病人数不超过原来病人数得缘故.
模型三。SIR模型
(1)模型假设
1. 总人数N不变,人群分为健康者、病人与病愈免疫得移出者三类,称SIR模型。时刻三类人在总人数N中占得比例分别记作与。
2. 病人得日接触率为,日治愈率为(与SI模型相同),传染期接触数为。
(2)模型建立
由假设1显然有
(1)
对于病愈免疫得移出者而言应有
(2)
再记初始时刻得健康者与病人得比例分别就是s0(s0〉0)与i0(i0>0)(不妨设移出者得初始值r0=0),则SIR模型得方程可以写作
(3)
(3)模型求解
我们无法求出解析解,先做数值计算:
设,用MATLAB软件编程:
function y=ill(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];
[t,x]=ode45('i11’,ts,x0);[t,x]
plot(t,x(:,1),t,x(:,2)),grid,pause
plot(x(:,2),x(:,1))
表1 得数值计算结果
t
0
1
2
3
4
5
6
7
8
i(t)
0、0200
0、0390
0、0732
0、1285
0、2033
0、2795
0、3312
0、3444
0、3247
s(t)
0、9800
0、9525
0、9019
0、8169
0、6027
0、5438
0、3995
0、2839
0、2027
t
9
1
0
45
i(t)
0、2863
0、2418
0、0787
0、0223
0、0061
0、0017
0、0005
0、0001
0
s(t)
0、1493
0、1145
0、0543
0、0434
0、0408
0、0401
0、0399
0、0399
0、0398
得图形 i—s图形(相轨线)
(4)结果分析
得图形见左图, 得图形见右图,称为相轨线,随着得增加,沿轨线自右向左运动。由上图结合表1可知,由初值增长至约时达到最大值,然后减少,则单调减少.
进行相轨线分析,可得:
平面称为相平面,相轨线在相平面上得定义域为
在方程(3)中消去,并注意到得定义,可得
, (4)
容易求出它得解为
(5)
在定义域D内,上式表示得曲线即为相轨线
1. 不论初始条件如何,病人终将消失,即
(6)
其证明如下,首先,由(3),而故存在;由(2),,而,故存在,再由(1),对于充分大得有,这将导致,与存在相矛盾。
2. 最终未被感染得健康者得比例就是,在(5)式中令得到,就是方程
(7)
在内得根。在图形上,就是相轨线与轴在内交点得横坐标.
3. 若,则先增加,当时,达到最大值
(8)
然后减小且趋近于0,则单调减小至。
4. 若,则单调减少至0,单调减少至。如果仅当病人比例有一段增长得时期才认为传染病在蔓延,那么就是一个阈值,当(即)时传染病就会蔓延。而减小传染期接触数,即提高阈值,使得(即),传染病就不会蔓延(健康者比例得初始值就是一定得,通常可认为接近1)。
并且,即使,从(7),(8)式可以瞧出,减少时,增加(通过作图分析),降低,也控制了蔓延得程度,我们注意到,在中,人们得卫生水平越高,日接触率越小;医疗水平越高,日治愈率越大,于就是越小,所以提高卫生水平与医疗水平有助于控制传染病得蔓延。
从另一方面瞧,就是传染期内一个病人传染得健康者得平均数,称为交换数,其含义就是一个病人被个健康者交换,所以当即时,必有,既然交换数不超过1,病人比例绝不会增加,传染病不会蔓延。
建模所得:
1. 符号变量如何使用
2. 如何求微分方程得解析解与数值解
3. 对符号变量方程作图时,先将其中得符号变量赋值,再将其变成数值变量,这也就是一种有效得解决方法.
展开阅读全文