传染病模型(微分方程)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
t
微分方程建模(传染病模型)的求解。
1、模型1:SI 模型。 假设:
(1)t 时刻人群分为易感者(占总人数比例的()s t )和已感染者(占总人数比例的()y t ) (2)每个病人每天有效接触的平均人数是常数λ,λ称为日接触率,当健康者与病人接触时,健康者受感染成为病人。
分析:根据假设,每个患者每天可以使()s t λ个健康者变为病人,因为病人数为()Ny t ,所以每天共有()()Ns t y t λ个健康者变为病人。即:
dy
N
Nsy dt
λ=,且()()1s t y t +=,设初始时刻病人比例为b ,则: (1)
(0)dy
y y dt
y b
λ⎧=-⎪⎨⎪=⎩,用MATLAB 解此微分方程: >> syms a b
>> f=dsolve('Dy=a*y*(1-y)','y(0)=b','t') f =
1/(1-exp(-a*t)*(-1+b)/b) %11
()1111(1)t t
y t b e e b b
λλ--=
=
--+- 当0.09,0.1b λ==时,分别在坐标系oty 中作出()y t 的图像,坐标系oyy '中作出
(1)y y y λ'=-的图像,
>> a=0.1;
>> b=0.09;
>> h=dsolve('Dy=a*y*(1-y)','y(0)=b','t') h =
1/(1-exp(-a*t)*(-1+b)/b) >> f=subs(h) f =
1/(1+91/9*exp(-1/10*t)) ()y t 的图像
>> ezplot(f,[0,60]) >> grid on
>> figure (2)
>> fplot('0.1*y*(1-y)',[0,1])
>> grid on
(1)y y y λ'=-的图像
模型分析:(1)当12y =
时,dy
dt
达到最大值,则此时病人增速最快。 (2)当t →∞时,()1y t →,即所有的人被传染,全部变为病人,这显然是不符合实际的,其原因是没有考虑到病人可以治愈,人群中的健康者只能变为病人,而病人不
会变为健康者。
2、模型2:SIS 模型。 假设:
(1)t 时刻人群分为易感者(占总人数比例的()s t )和已感染者(占总人数比例的()y t ) (2)每个病人每天有效接触的平均人数是常数λ,λ称为日接触率,当健康者与病人接触时,健康者受感染成为病人。
(3)病人每天被治愈的占病人总数的比例为μ,称为日治愈率,显然
1
μ
为这种传染病的平均传染期。则dy
N
Nsy Ny dt
λμ=-。则建立微分方程模型为: (1)(0)dy
y y y
dt
y b λμ⎧=--⎪⎨⎪=⎩
用MATLAB 解此微分方程:
>> h2=dsolve('Dy=a*y*(1-y)-c*y','y(0)=b','t') h2 =
(a-c)/(a-exp(-(a-c)*t)*(-a+c+b*a)/b/(a-c)*a+exp(-(a-c)*t)*(-a+c+b*a)/b/(a-c)*c )
>> pretty(h2)
/ exp(-(a - c) t) (-a + c + b a) a (a - c)/|a - -------------------------------- \ b (a - c)
exp(-(a - c) t) (-a + c + b a) c\ + --------------------------------| b (a - c) /
化简:
()().().()()()
a c t a c t a c
e a c ba a e a c ba c a b a c b a c ------++-++-+
--
2
()()()().().()a c t a c t b a c ab a c e a c ba e a c ba c -----=---+++-++ 2
()()()().()
a c t
b a
c ab a c c a e a c ba ---=
-+---++1
()2
()().()()a c t ab a c c a e a c ba b a c ---⎡⎤-+---++=⎢⎥-⎣⎦
1
()1()a c t a a e a c b a c ---⎡⎤
=+-⎢⎥--⎣⎦
即:1
()1()()t y t e b λμλλλμλμ---⎡⎤=+-⎢⎥--⎣⎦
。
当(1)λμ≠时,1
()1()()t y t e b λμλλ
λμλμ---⎡⎤=+-⎢⎥--⎣⎦
;
(2)λμ=时,
>> clear
>> h2=dsolve('Dy=a*y*(1-y)-a*y','y(0)=b','t') h2 =
1/(a*t+1/b)
即:1
1()y t t b λ-⎡
⎤=+⎢⎥⎣
⎦。
定义λ
σμ
=
:一个传染期内每个病人有效接触的平均人数。 则:1
1,(1)
()0(1)
y σσσ⎧->⎪∞=⎨⎪≤⎩,用MATLAB 作图像:
令0.01λ=,0.05μ=,0.7b =(0.21σ=<) >> clear
>> a=0.01;b=0.7;c=0.05;
>> h2=dsolve('Dy=a*y*(1-y)-c*y','y(0)=b','t'); >> h22=subs(h2)