
H1N1的SIR模型-matlab仿真-综合试题.docx
13页《系统仿真与 matlab》综合试题(华中科技大学)(华中科技大学)***学院学院题 目: H1N1 流感的 SIR 模型 编 号: 2 难度系数: 姓 名: 班 级: 学 号: 联系方式: 成 绩: 时间:2015.12.18 2目录一.问题重述:...................................................................................................................2(1)模型假设.....................................................................................................................3(2)仿真要求.....................................................................................................................3二.模型建立过程...............................................................................................................3(1)模型分析................................................................................................................3(2)模型建立................................................................................................................4三.关键难点与解决方法 ............................................................................................5四.程序运行指南........................................................................................................7(1)系统流程图.................................................................................................................7(2)系统介绍.....................................................................................................................8五.程序运行实例分析................................................................................................9六.个人总结..............................................................................................................133一.一.问题重述:问题重述:H1N1 流感问题流感问题 SIR 模型模型大多数传染病如天花、流感、肝炎、麻疹等治愈后均有很强的免疫力,所以病愈的人 既非健康者(易感染者) ,也非病人(已感染者) ,他们已经退出传染系统。
1)模型假设)模型假设1.H1N1 流感传播期内,总人数为不变,既不考虑生死,也不考虑迁移,人群分为易感N染者,发病人群和退出人群 (包括死亡者和治愈者)三类,时刻 内这三类人SIRt在总人数中所占比例分别为、、 )s ti( ) t( )r t2.每个病人每天有效接触的平均人数是常数,称日接触率当病人与健康者有效接触时,使健康者受感染变为病人根据假设,每个病人每天可使个健康者变为病人,( )st因为病人数为.所以每天共有个健康者被感染 )iN t)()(titNs3.病人每天被治愈的占病人总数的比例为,称为日治愈率,治愈的病人具有了免疫力, 即治愈后不再会成为二次患者4.、、之和是一个常数 1 )s ti( ) t( )r t((2)仿真要求)仿真要求 根据上述假设进行系统建模与仿真,系统输入为和,总人数 N,日接触率,)0( s)0( i日治愈率系统输出为 时刻的健康者和病人人数 N和 N要求有输入、输出界t)(ts)(ti面及仿真过程二.模型建立过程二.模型建立过程((1))模型分析模型分析在疾病传播期内所考察的地区范围不考虑人口的出生、死亡、流动等种群动力因素,假设总人口数 N(t)不变,人口始终保持一个常数 N。
人群分为以下三类:易感染者,其数4量比例记为 s(t),表示 t 时刻未染病但有可能被该类疾病传染的人数占总人数的比例;感染病者,其数量比例记为 i(t),表示 t 时刻已被感染成为病人而且具有传染力的人数占总人数的比例;恢复者,其数量比例记为 r(t),表示 t 时刻已从染病者中移出的人数(这部分人既非已感染者,也非感染病者,不具有传染性,也不会再次被感染,他们已退出该传染系统占总人数的比例 病人的日接触率(每个病人每天有效接触的平均人数)为常数 λ,日治愈率(每天被治愈的病人占总病人数的比例)为常数 μ,传染期接触数为 λNs由于 SIR 模型的感染者最终会被治愈或退出,退出者将不会重复染病,导致疾病最终会被消灭,人类将战胜疾病(如天花) ,那么最终除了恢复者/退出者,其余全部是未染病的人,正在患病的人数将变为 0,即不论初始条件 s0,i0 如何,病人消失将消失可以看出,如果当病人比例 i(t)有一段增长的时期可认为传染病在蔓延,那么经过一段时间后疾病得到控制,即新感染人数等于新治愈人数:Ni(t)*s(t) = ,λμi(𝑡)N患病人数不再增长,然后患病人数下降,直到无人患病。
2))模型建立模型建立在模型假设中有:s(t) + i(t) + r(t) = 1 (1)对于病愈免疫的移出者的数量应为(2)Ndrdt= µNi(3)Ndi dt = λsiN - μiN不妨设初始时刻的易感染者,染病者,恢复者的比例分别为(>0) , 0s0s(>0) , 0i0i0r由(1) , (2) , (3)即可仿真得到疾病的演化过程相轨线:00 01()lnsisiss5三.三. 关键难点与解决方法关键难点与解决方法a. 问题:问题:运行.m 文件时正常运行,而通过其他文件调用.fig 或直接执行.fig 时,出现错误:“尝试引用非结构体的数组”解决:解决:查资料发现:直接运行.fig 文件不会执行 m 文件中的 OpeningFcn和 CreateFcn,callback 函数中的形参 handles 就失去了意义可以在每个子函数前面加一行 handles = guihandles( gcbf ) ;将 figure 句柄赋给handles如果程序中用 global 声明了全局变量,并在 OpeningFcn 或CreateFcn 中赋了初值。
则直接打开.fig 文件则不能初始化全局变量,其值为最后一次运行时的值还可以直接运行 .m :run(****.m);b. 问题:问题:多个.m 或.fig 之间传递数据,即如何在一个 GUI 界面里利用另一个 GUI 界 面里的数据解决:解决:有多种方法,也各有优缺点,这里选择使用全局变量:global ii1 ss1 N1 miu1 lamda1 day1 ; %全局变量全局变量c.问题:问题:使用 errordlg 函数弹出出错警告时,如果之后执行 plot 语句的话,plot 出的图像会显示在 error 弹框里,并覆盖原有的红叉:解决:解决:判断如果出现输入错误 error 后将不执行后面的 plotd. 问题:问题:不同参数要求的仿真精度不同如下图所示:得到稳态值,需要仿真正确形式错误形式6的天数也不同在仿真“miu 对疾病的影响”时,需要得到稳态值解决:解决:选择设置不同的仿真时间:e.保存图像:f.函数调用,建立 calculate1 函数,增强代码的可移植性,模块化代码g.每个.m 文件的各个模块之间传递数据h.页面直接的跳转可以由 open 和 close 函数完成。
用 hold on 语句来保持图形,并在单次仿真完后在函数末写上 hold off 语句7四.四. 程序运行指南程序运行指南((1)系统流程图)系统流程图主界面主界面 H1N1.m恢复恢复 默认默认 值值保存图像保存图像模型介绍模型介绍 introduc e_model.m输入输入 参数参数开始仿真开始仿真 H1 N1.m选择仿真类选择仿真类 型:未感染型:未感染 者比例、感者比例、感 染者比例、染者比例、 患病人数峰患病人数峰 值值治愈率治愈率 μμ 对疾病的对疾病的 影响影响 miu_model.m选择仿真类选择仿真类 型:相轨线型:相轨线 、健康人数、健康人数 、患病人数、患病人数 、退出人数、退出人数结果分析结果分析 resul t_ana.m8((2)系统介绍)系统介绍a. 本系统主要仿真 H1N1 的 SIR 模型,仿真在一定的总人口、健康人数、患病 人数、感染率、治愈率等条件下的疾病的发展和变化b. 主函数为 H1N1.m 主界面分为参数区、自功能区和图像显示区域c.系统有默认的输入变量,点击“开始仿真”即可仿真更改输入参数可以仿 真指定参数的变化曲线点击“恢复默认值”即可恢复默认的输入参数。
d. 如果输入不合法,比如要求输入整数而出现字符串,则出现 Error 弹框:“ ****输入错误”,提醒使用者重新输入e. 如果想把仿真的图像保存下来,可点击“保存图像”按钮,可以保存为.jpg 格式的图片f.“结果分析”依次对仿真图形进行分析描述,选择“分析对象”可得到仿真 结果 “模型假设与模型分析”可以查看模型建立的分析与假设g. “治愈率 miu (µ)对疾病的影响”是拓展内容,仿真发现 SIR 模型疾病结束 后曾经得过病的人和健康者比例等与 miu(µ)密切相关,所以有必要仿真 治愈率 miu 的大小对疾病的影响9五.五. 程序运行实例分析程序运行实例分析a. 主函数 H1N1.m :b.参数输入区:c. 子功能按钮:10d.修改日接触人数、治愈率、总人数、易感染者比例、感染者比例,仿真时间,仿真我 们需要的图像:e.如果输入不合法,则出现 Error 弹框:f.结果分析:11g. 模型介绍h.治愈率 miu 对疾病的影响:12i. 保存图像:13六.六. 个人总结个人总结 通过这次 MATLAB 的学习,我对 MATLAB 有了一个基础的认识,matlab是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。
它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂数值计算的领域得到了广泛应用。












