在高中时除了物理竞赛没有学习外,竞赛的五大学科剩下的四门均有所涉猎及参加,因而精力分散太多。因此下定决心大学时可以广泛涉猎知识,但是主攻的竞赛只能有两个ACM和MCM,如今虽然高考完挂,但学术之心尚存,而SIR模型对我来说便是数学海洋中的一块拾贝
舆论的力量一向是被政府所重视的,所以在战时拥有自己的电台,掌握说话权是相当的重要。对于商人,他们希望他们促销打折的消息迅速的传播,同样对于普通百姓来说,家长里短,一个消息的传播往往是复杂而多变的,因此研究消息传播的一般规律显得尤为重要。现在我们迫切想知道一般来说对于一个消息,经过一段时间后能够有多少人得到它?
为方便讨论,做如下假设:初始时知道这个消息的人数为P0,经过时间t后知道这个消息的人数为f(t)。
我们先猜想下f(t)会有些什么性质?首先它是递增的---短期内如果不是患上阿尔兹海默症的人群的话,知道一个消息的人数只可能越来越多。其次可以预计当t趋向于正无穷时f(t)将会趋于一个定值---全人类的数目是有限的,当时间过得越长,消息的扩散也就趋于饱和,
尝试建立模型,假设每人单位时间内会接触k个人并将消息准确传播给这k个人,那么在△t内知道这一消息增加的人数为f(t+△t)-f(t),它又等于t时刻知道这一消息的所有人在△t这段时间内传播的人数,即可列出方程:f(t+△t)-f(t)=kf(t)* △t
由f(t+△t)≈f(t)+f’(t)* △t将上式改写成微分方程:df/dt =kf(t)
该方程属于可分离变量型,容易求出通解为f(t)=C*e^(kt)将f(0)=P0代入求出特解为:f(t)=P0*e^(kt)
突然我们发现,花了那么大力气竟然求出来一个无界的函数!!分析过程的每一步,我们发现,问题出在f(t)个人单位时间接触的k个人除了不知道这个消息的人外还有已经知道这个消息的即f(t)中的人,这就迫使我们另辟蹊径,即本文的主题SI模型。
设消息受众的总人数为N(例如某市百货商场打折这一消息的N就是该市的总人数)f(t)不再表示t时刻知道消息的人数,而是t时刻知道消息的人数占总人数N的比率,所以此时知道消息的人数表示成N*f(t),而不知道该消息的人数为N*(1-f(t)),这样建模的好处便是我们顺利分出了知道消息的人与不知道消息的人, 每人每天接触的k人里有k*f(t)是以前听过消息的,k*(1-f(t))人是以前没听过消息的
k的意义如前所述,因此在△t时间内知道该消息增加了N*[f(t+△t)-f(t)],类似于上面一个模型的讨论,只是k变成了k*(1-f(t)),f(t)成了N*f(t)得到:
N*[f(t+△t)-f(t)]=[k*(1-f(t))]*[ N*f(t)]* △t
对上式进行同样的处理得到微分方程:df/dt=k*[1-f(t)]*f(t)
等等这个微分方程怎么那么像混沌里面的虫口模型的方程?没错这个就是著名的逻辑蒂斯方程,只是在研究混沌现象时我们研究它的离散形式也就是差分方程,而这里我们研究的是微分方程,本质上是一样的。顺便一提,还记得高中生物书上说当种群没有受到食物,空间等因素的制约时是J型曲线,反之是S型曲线么?J型曲线对应的便是上面一个模型 ,而S型曲线即对应这里的逻辑蒂斯方程
这个微分方程是有解析解的,并且仍然属于可分离变量型的。结果很容易求,但由于百度空间传图不方便,自行脑补吧
然后就是这个模型最初的建立不是研究消息的传播,而是传染病的传播,因此除了SI模型外还有SIS(可治愈并被再次感染)SIR(可治愈并获得免疫不再被感染),其中SIR模型的微分方程无解析解,因此得用maltab进行分析,当然也可以用欧拉法自行画出微分方程的图。如今相关模型已经成为一门系统的学科即传染病动力学。

舆论的力量---数学建模初探(SI模型)的更多相关文章

  1. Python小白的数学建模课-B5. 新冠疫情 SEIR模型

    传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. 考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫的传染病. 本 ...

  2. Python小白的数学建模课-B6. 新冠疫情 SEIR 改进模型

    传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. SEIR 模型考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫 ...

  3. Python小白的数学建模课-B4. 新冠疫情 SIR模型

    Python小白的数学建模课-B4. 新冠疫情 SIR模型 传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. SIR 模型将人群分为易感者(S类). ...

  4. Python小白的数学建模课-09 微分方程模型

    小白往往听到微分方程就觉得害怕,其实数学建模中的微分方程模型不仅没那么复杂,而且很容易写出高水平的数模论文. 本文介绍微分方程模型的建模与求解,通过常微分方程.常微分方程组.高阶常微分方程 3个案例手 ...

  5. Matlab与数学建模

    一.学习目标. (1)了解Matlab与数学建模竞赛的关系. (2)掌握Matlab数学建模的第一个小实例—评估股票价值与风险. (3)掌握Matlab数学建模的回归算法. 二.实例演练. 1.谈谈你 ...

  6. Python小白的数学建模课-16.最短路径算法

    最短路径问题是图论研究中的经典算法问题,用于计算图中一个顶点到另一个顶点的最短路径. 在图论中,最短路径长度与最短路径距离却是不同的概念和问题,经常会被混淆. 求最短路径长度的常用算法是 Dijkst ...

  7. Python小白的数学建模课-10.微分方程边值问题

    小白往往听到微分方程就觉得害怕,其实数学建模中的微分方程模型不仅没那么复杂,而且很容易写出高水平的数模论文. 本文介绍微分方程模型边值问题的建模与求解,不涉及算法推导和编程,只探讨如何使用 Pytho ...

  8. Python小白的数学建模课-12.非线性规划

    非线性规划是指目标函数或约束条件中包含非线性函数的规划问题,实际就是非线性最优化问题. 从线性规划到非线性规划,不仅是数学方法的差异,更是解决问题的思想方法的转变. 非线性规划问题没有统一的通用方法, ...

  9. Python小白的数学建模课-15.图论基本概念

    图论中所说的图,不是图形图像或地图,而是指由顶点和边所构成的图形结构. 图论不仅与拓扑学.计算机数据结构和算法密切相关,而且正在成为机器学习的关键技术. 本系列结合数学建模的应用需求,来介绍 Netw ...

随机推荐

  1. servlet生命周期:

    Servlet生命周期分为三个阶段: 1,初始化阶段  servlet实例创建时调用init()方法,在Servlet的整个生命周期内,init()方法只被调用一次. 2,响应客户请求阶段 调用ser ...

  2. Java学习笔记之log4j与commons-logging<转>

    Java学习笔记之log4j与commons-logging<转> (2011-02-16 11:10:46) 转载▼ 标签: 杂谈 分类: 技术学习之其他 Logger来自log4j自己 ...

  3. P2658 汽车拉力比赛

    题目描述 博艾市将要举行一场汽车拉力比赛. 赛场凹凸不平,所以被描述为M*N的网格来表示海拔高度(1≤ M,N ≤500),每个单元格的海拔范围在0到10^9之间. 其中一些单元格被定义为路标.组织者 ...

  4. Spring源码:Spring IoC容器加载过程(1)

    Spring源码版本:4.3.23.RELEASE 一.加载过程概览 Spring容器加载过程可以在org.springframework.context.support.AbstractApplic ...

  5. 关于setTimeout和Promise执行顺序问题

    先看一段代码 console.log('打印'+1); setTimeout(function(){ console.log('打印'+2); }) new Promise(function(reso ...

  6. Android CursorAdapter的使用

    CursorAdapter继承于BaseAdapter,为Cursor和ListView连接提供了桥梁. 首先看一下CursorAdapter的部分源码: /** * @see android.wid ...

  7. 《Python基础教程》 读书笔记 第六章 抽象 函数 参数

    6.1创建函数 函数是可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> x=1 ...

  8. Entity Framework + MySQL 使用笔记

    添加: using (var edm = new NorthwindEntities()) { Customers c = ", Region = "天府广场", Con ...

  9. Android(java)学习笔记163:开发一个多界面的应用程序之界面间数据传递

    1.界面跳转的数据传递 (1)intent.setData() --> intent.getData():     传递的数据比较简单,一般是文本类型的数据String:倘若我们传递的数据比较复 ...

  10. b继承a的函数

    var cls={ my:, init:function() { alert(this.my.a); }};window.onload=function(){ cls.init();} 调用cls.i ...