matlab传染病模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
传染病模型实验
实验目的:
理解传染病的四类模型,学会利用Matlab软件求解微分方程(组)。
实验题目:
利用Matlab求解传染病的SIS微分方程模型,并绘制教材P139页图3-图6。
SIS模型
假设:
(1)、t时刻人群分为易感者(占总人数比例的s(t))和已感染者(占总人数比例的i(t))。
(2)、每个病人每天有效接触的平均人数是常数λ,λ称为日接触率,当健康者与病人接触时,健康者受感染成为病人。
(3)、病人每天被治愈的占病人总数的比例为μ,称为日治愈率,显然1
为这种传染病的平均传染期。
μ
则建立微分方程模型为:
令,则模型可写作
分别作图:
页脚内容1
当sigma>1时
Step1:先定义函数
function y=pr1(i,lambda,sigma)
y=-lambda.*i.*(i-(1-1./sigma))
step2:作图
lambda=0.3;sigma=2;
i=0:0.01:1;
y=pr1(i,lambda,sigma)
plot(i,y)
页脚内容2
页脚内容3
00.10.20.30.40.50.60.70.80.91
-0.16
-0.14-0.12-0.1-0.08-0.06-0.04-0.020
0.02
当sigma<1时 Step1:先定义函数
function y=pr1(i,lambda,sigma) y=-lambda.*i.*(i-(1-1./sigma)) step2:作图
lambda=0.3;sigma=0.5; i=0:0.01:1;
y=pr1(i,lambda,sigma) plot(i,y)
页脚内容4
00.10.20.30.40.50.60.70.80.91
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
当sigma=1时 Step1:先定义函数
function y=pr1(i,lambda,sigma) y=-lambda.*i.*(i-(1-1./sigma)) step2:作图
lambda=0.3;sigma=1; i=0:0.01:1;
y=pr1(i,lambda,sigma) plot(i,y)
页脚内容5
00.10.20.30.40.50.60.70.80.91
-0.35
-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
当sigma>1时 Step1:先定义函数
function di=crb(t,i,lambda,sigma)
di=-lambda*i*(i-(1-1/sigma))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% step2:求解并作图 clc clear lambda=0.01;
页脚内容6
sigma=2;
[t,i1]=ode45(@crb,[0,1000],0.9,[],lambda,sigma); [t,i2]=ode45(@crb,[0,1000],0.2,[],lambda,sigma); plot(t,i1,t,i2,t,1/2) legend('\sigma>1')
01002003004005006007008009001000
0.2
0.30.40.50.60.70.80.9
当sigma=1时 Step1:先定义函数
function di=crb(t,i,lambda,sigma)
di=-lambda*i*(i-(1-1/sigma))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% step2:求解并作图
clc
clear
lambda=0.01;
sigma=1
[t,i1]=ode45(@crb,[0,1000],0.9,[],lambda,sigma);
plot(t,i1)
legend('\sigma=1')
页脚内容7
页脚内容8
100
200
300
400
500
600
700
800
900
1000
00.10.20.30.40.50.60.70.80.91
当sigma<1时 Step1:先定义函数
function di=crb(t,i,lambda,sigma)
di=-lambda*i*(i-(1-1/sigma))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% step2:求解并作图 clc clear lambda=0.01;
页脚内容9
sigma=0.5;
[t,i1]=ode45(@crb,[0,1000],0.9,[],lambda,sigma); plot(t,i1)
legend('\sigma<1')
01002003004005006007008009001000
-0.2
0.2
0.4
0.6
0.8
1
1.2
利用matlab 求解上面SIS 模型. 提示(画图5程序): Step1:先定义函数
function y=pr1(i,lambda,sigma)