Epidemic Modeling

SIR Modeling SIR 经典模型主要是在传染病领域用来预测感染人数的未来趋势。 S[t] 表示susceptible易感人群 I[t] 表示infected已经感染的人群 R[t] 表示recovered已经康复人群 参考: MathWorld: SIR Model Kermack-McKendrick Model Kermack-McKendrick Model Kermack-McKendrick 最初的模型是为了解释像在1665-1666年发生的鼠疫,1865年发生的霍乱,感染人群的数量随着时间的变化。 该模型假定总人口是是固定的,传染病的潜伏期是瞬间的,传染持续时间与疾病的周期相同,并且假定人群都是无差异的,无性别及种族差异。 该模型使用了三个非线性常微分方程: beta 表示 infection rate 感染率 gamma 表示 recovery rate 恢复率 i 表示已感染人群 r 表示已恢复健康的人群 s 表示易感染人群 预设值: beta = 20%, gamma = 15%, i(0) = 0.1, r(0) = 0, s[0] = 10 Modelica 源码 model SIRModel parameter Real beta = 0.2; parameter Real gamma = 0.15; Real i; Real r; Real s; initial equation s = 10; i = 0.1; r = 0; equation der(s) = (-1) * beta * i * s; der(i) = (-1) * gamma * i + beta * i * s; der(r) = gamma * i; end SIRModel; 模型预测图: ...

April 6, 2020

Foundations of Modelica systemmodeler with Mathematica (1)

为什么学习 Modelica 之前看到过一本书《模型思维》, 这段时间正好处在CoVid-2019疾病肆虐全球,偶然之间看到关于传染病学的预测模型SEIR,借着这个机会开始研究数学模型,决定重新捡起大学的时候学习的数学分析,常微分方程,偏微分方程,微分几何学等课程。接触到了Modelica这门语言,由于一直在学习Wolfram Mathematica,对Wolfram产品系列的SystemModeler颇有好感,于是下手购买了SystemModeler家庭版,购买了一本《Modelica多领域物理系统建模入门与提高》书籍,开始了对Modelica的探索,预期希望对数学模型的建立能够有一个较深刻的认识,利用数学模型预测某个事件的未来发展规律和在定量数据分析中获得更多的隐藏信息。 建立模型 - 液压系统 语言采用 Mathematica 液体不可压缩 根据Hagen-Poiseuille关系式首先建立方程组: 预设置参数: 假设两边的管子横截面积相同为1 解上述微分方程 h1, h2 的高度变化图 h1[t], h2[t] 方程组如下所示: 最后创建 SystemModeler 模型 model W8918fcdd72d8462a890fa97776822164 parameter Real g = 9.81; parameter Real mu = 1 / 500; parameter Real pipeDia = 0.2; parameter Real pipeLen = 0.1; parameter Real rho = 0.2; Real h1; Real h2; Real p1; Real p2; initial equation h1 = 1; h2 = 0; equation p1 = g * rho * h1; p2 = g * rho * h2; der(h1) = (-1) / 128 * Modelica.Constants.pi * pipeDia ^ 4 * pipeLen ^ (-1) * mu ^ (-1) * (p1 + (-1) * p2); der(h2) = 1 / 128 * Modelica.Constants.pi * pipeDia ^ 4 * pipeLen ^ (-1) * mu ^ (-1) * (p1 + (-1) * p2); »; end W8918fcdd72d8462a890fa97776822164; 将Modelica源码复制到SystemModeler运行,得到如下h1, h2的高度变化图形 ...

March 30, 2020 · FengChen