【元胞自动机】基于元胞自动机模拟SEIR传播模型和采取隔离措施的SEIR模型附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

本文根据2019-nCoV新型冠状病毒传播情况,建立病毒传播的一般动力学模型,即SEIR模型,并根据国家卫健委发布的实际数据对基本再生数进行参数估计.并基于元胞自动机原理建立了SEIR模型下的人员行走规则.模拟和分析结果表明,所建立的仿真模型应用于病毒传播是合理有效的,通过对比不同防控措施的人群状态随时间变化趋势图得出,减少出行频率,采取个人防护和及时隔离感染者能有效减缓COVID-19的扩散,起到一定的防控作用.

⛄ 部分代码

close all​

% 以 2019 年 12 月 8 日为第 0 天,起始感染者为 1 人

%% 政府官方公布的数据

t = [0, 42, 43, 44, 45, 46]';      % 时间

I = [1,198,218,320,478,639]';      % 感染人数

%% 回溯传播模型估算的数据

% t = [0,  36,   42]';               % 时间

% I = [1,1182, 2758]';               % 感染人数

ft = fittype('exp((5*b-1/14)*x)'); % k = 5; D = 14; 

f = fit(t,I,ft, 'Startpoint', 0.1)

plot(f,t,I, 'o')

⛄ 运行结果

⛄ 参考文献

[1]王子川, 刘学贤, 陈南曦,等. 基于SEIR模型的新冠病毒传播和感染者数量预测[J]. 科学与财富, 2020.

[2]许家雪, and 杨萌宇. "基于SEIR模型的新型冠状病毒肺炎传染规模预测." 科技与创新 13(2020):2.

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个基于元胞自动机SEIR传染病传播模型Matlab代码: ```matlab % 定义常量 N = 100; % 元胞数量 T = 100; % 时间步长 p = 0.1; % 感染概率 q = 0.05; % 恢复概率 I0 = 5; % 初始感染人数 E0 = 0; % 初始潜伏期人数 S0 = N - I0 - E0; % 初始易感人数 R0 = 0; % 初始恢复人数 % 初始化元胞状态 state = zeros(N, T); state(:, 1) = 1; % 初始状态为易感状态 state(randperm(N, I0), 1) = 2; % 随机选择 I0 个元胞作为初始感染状态 state(randperm(N, E0), 1) = 3; % 随机选择 E0 个元胞作为初始潜伏状态 % 定义邻居关系 neighborhood = zeros(N, 3); neighborhood(1, :) = [N, 1, 2]; neighborhood(N, :) = [N-1, N, 2]; for i = 2:N-1 neighborhood(i, :) = [i-1, i, i+1]; end % 迭代更新元胞状态 for t = 2:T for i = 1:N if state(i, t-1) == 1 % 易感状态 for j = neighborhood(i, :) if state(j, t-1) == 2 && rand() < p % 感染 state(i, t) = 2; break; end end elseif state(i, t-1) == 2 % 感染状态 if rand() < q % 恢复 state(i, t) = 3; else state(i, t) = 2; end elseif state(i, t-1) == 3 % 潜伏状态 state(i, t) = 2; end end end % 绘制SEIR曲线 figure; plot(1:T, sum(state == 1), 'b', 1:T, sum(state == 2), 'r', 1:T, sum(state == 3), 'm', 1:T, N-sum(state == 1)-sum(state == 2)-sum(state == 3), 'g'); xlabel('时间'); ylabel('人数'); legend('易感者', '感染者', '潜伏者', '恢复者'); ``` 这个模型基于元胞自动机,将整个人群分为若干个元胞,每个元胞具有三种状态:易感状态、感染状态和潜伏状态。模型通过随机选择元胞进行状态更新,根据邻居关系计算感染概率和恢复概率,最终得到SEIR曲线。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值