首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >数学建模学习笔记(十八)SIER模型灵敏度分析(matlab求解)

数学建模学习笔记(十八)SIER模型灵敏度分析(matlab求解)

作者头像
zstar
发布2022-06-14 09:50:01
发布2022-06-14 09:50:01
1.7K0
举报
文章被收录于专栏:往期博文往期博文

什么是灵敏度分析? 简单得来说,就是当模型中有一些参数不确定时,需要多取一些值比较结果,来验证其灵敏性。下面就以上篇写到的传染病模型进行分析:

例如: 在使用传染病模型时,自行选取了传染概率B为0.03,我们需要对其进行灵敏度分析

自定义matlab函数

代码语言:javascript
复制
function funname(x1)
N = 38000;                                                                  %人口总数
E = 0;                                                                      %潜伏者
I = 1;                                                                      %传染者
S = N - I;                                                                  %易感者
R = 0;                                                                      %康复者
r = 20;                                                                     %感染者接触易感者的人数
B = x1;                                                                     %传染概率
a = 0.1;                                                                    %潜伏者转化为感染者概率
y = 0.1;                                                                    %康复概率

T = 1:182;
for idx = 1:length(T)-1
    S(idx+1) = S(idx) - r*B*S(idx)*I(idx)/N;
    E(idx+1) = E(idx) + r*B*S(idx)*I(idx)/N-a*E(idx);
    I(idx+1) = I(idx) + a*E(idx) - y*I(idx);
    R(idx+1) = R(idx) + y*I(idx);
end

for j=1:26
    zi(j)=I(j*7)-I(j*7-6);
    kf(j)=R(j*7)-R(j*7-6);
    y(j)=zi(j)+kf(j);                                                      %每日新增=一周内感染患者+一周内康复患者
end

x=1:26;
plot(x,y);
hold on;
end

再调用不同的参数:

代码语言:javascript
复制
funname(0.03)
funname(0.031)
funname(0.0305)
funname(0.0315)
funname(0.032)
funname(0.0325)
funname(0.0295)
funname(0.029)
funname(0.0285)
xlabel('week');ylabel('New cases')

结果如图:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档