传染病模型实验
实验目的:
理解传染病的四类模型,学会利用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)
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)
提示(画图6程序):
Step1:先定义函数
function di=crb(t,i,lambda,sigma)
di=-lambda*i*(i-(1-1/sigma))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% step2:求解并作图
clc
clear
lambda=0.01;
sigma=0.2;
[t,i]=ode45(@crb,[0,100],0.9,[],lambda,sigma);
页脚内容10
>> g1=[3,2;2,4;4,7];
页脚内容11 plot(t,i)
legend('\sigma<1')
实验指导书:
利用matlab 求下面定解问题,并作图
d 2(3)d (0)2
y y y y x y ⎧=--⎪⎨⎪=⎩ 程序
f=@(x,y)(2*y*(3-y)-y);
[x,y]=ode45(@(x,y)f(x,y),[0,10],0.9);
plot(x,y)
legend('数值解 1');。