ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数模-微分方程(SIS模型)

2022-05-08 10:33:34  阅读:228  来源: 互联网

标签:SIS i0 感染者 beta 数模 dx 微分方程 alpha TOTAL


SIS模型

image

代码

fun1.m

function dx=fun1(t,x)   % 大家可以修改里面的参数,来看结果的变化
    global TOTAL_N   % 定义总人数为全局变量
    beta = 0.1;  % 易感染者与已感染者接触且被传染的强度
    alpha = 0.06; % 由感染状态I恢复为易感者状态S的恢复率
    dx = zeros(2,1);  % x(1)表示S  x(2)表示I
    dx(1) = alpha*x(2) - beta*x(1)*x(2)/TOTAL_N;  
    dx(2) = beta*x(1)*x(2)/TOTAL_N - alpha*x(2);
end

code.m

%% 最简单的SIS模型
clc;clear
global TOTAL_N   % 定义总人数为全局变量(可以在子函数中使用)
TOTAL_N = 1000;  % 总人数
i0 = 1; % 初始时刻患者(已感染者)的人数
[t,x]=ode45('fun1',[1:500],[TOTAL_N-i0 i0]); 
x = round(x);  % 对x进行四舍五入(人数为整数)
figure(1)
plot(t,x(:,1),'r-',t,x(:,2),'b-','Linewidth',1.5)   % x的第一列是易感染者S的数量,x的第二列是患者I的数量
legend('易感染者S','患者I')

结果

image

SIS模型扩展

image

代码

fun2.m

function dx=fun2(t,x)   % 大家可以修改里面的参数,来看结果的变化
    global TOTAL_N   % 定义总人数为全局变量
    beta = 0.1;  % 易感染者与已感染者接触且被传染的强度
    alpha = 0.02; % 由感染状态I恢复为易感者状态S的恢复率
    if t > 200
        alpha = alpha * 10; % 第200期后引入了新的医疗装备,使得恢复率alpha增加为原来的10倍
    end
    dx = zeros(2,1);  % x(1)表示S  x(2)表示I
    dx(1) = alpha*x(2) - beta*x(1)*x(2)/TOTAL_N;  
    dx(2) = beta*x(1)*x(2)/TOTAL_N - alpha*x(2);
end

code.m

%% 考虑某种使得恢复率alpha增加的因素(例如建立医院、升级医疗装备等)
% 第200期后引入了新的医疗装备,使得恢复率alpha增加为原来的10倍
clc;clear
global TOTAL_N   % 定义总人数为全局变量(可以在子函数中使用)
TOTAL_N = 1000;  % 总人数
i0 = 1; % 初始时刻患者(已感染者)的人数
[t,x]=ode45('fun2',[1:500],[TOTAL_N-i0 i0]); 
x = round(x);  % 对x进行四舍五入(人数为整数)
figure(2)
plot(t,x(:,1),'r-',t,x(:,2),'b-','Linewidth',1.5)   % x的第一列是易感染者S的数量,x的第二列是患者I的数量
legend('易感染者S','患者I')
axis([0 500 0 1000])  % 设置坐标轴范围,x轴为0-500 y轴为0-1000

结果

image

标签:SIS,i0,感染者,beta,数模,dx,微分方程,alpha,TOTAL
来源: https://www.cnblogs.com/jgg54335/p/15185156.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有