文章目录

  • Malthus模型
    • 模型假设
    • 建模与求解
    • 模型评价
  • Logistic模型
    • 模型假设
    • 建模与求解
    • 模型检验

为了更好地理解Logistic模型,我们先看看Malthus模型

Malthus模型

这是英国神父Malthus通过对一百多年人口统计资料的分析之后提出的人口模型假设

模型假设

  1. 设x(t)表示t时刻的人口数,且x(t)连续可微.
  2. 人口的增长率r是常数(增长数=出生率-死亡率)
  3. 人口的数量的变化是封闭的,即人口数量的增加与减少只取决于人口中个体的生育和死亡,且每一个体都具有同样的生育能力与死亡率.

建模与求解

由假设,t时刻到t+△t时刻人口的增量为x(t+△)-x(t)=rx(t)△t.

​ 所以得到

import sympy as sp
from sympy import  diff,dsolve,simplify
x=sp.symbols('x',cls=sp.Function)
t=sp.symbols('t')
r=sp.symbols('r')
eq=diff(x(t),t)-(r*x(t))
x=dsolve(eq)
print(simplify(x))

所以其解为:

​ x(t)=x0ertx(t)=x0e^rtx(t)=x0ert

模型评价

考虑二百多年来人口增长的实际情况,1961年世界人口总数为3.06×1093.06\times10^93.06×109,我们对人口自然增长率设置为2%.
so x(t)=3.06×109⋅e0.02(t−1961)x(t)=3.06\times10^9\cdot e^{0.02(t-1961)}x(t)=3.06×109⋅e0.02(t−1961)

这一模型符合1961年前的历史人口增长,但对于未来人口数量增长统计却存在一定的极端和不准确性,所以对于r是常数这个地方是值得商榷的.

Logistic模型

继上个模型,我们现在来对r进行修正,因为地球上的资源是有限的,所以随着人口数量的增加,自然资源和环境条件对于人口增长的限制作用将会逐渐显著.

所以,我们将r视为一个随着人口的增加而减小的量,即将增长率r表示为人口x(t)的函数r(x),且r(x)为x的减函数.

模型假设

  1. 设r(x)为x的线性函数,r(x)=r-sx(工程师原则,首先用线性).
  2. 自然资源与环境条件所能容纳的最大人口数$\chi_m $ 即当χ=χm\chi=\chi_mχ=χm​时,增长率r(χm\chi_mχm​)=0.

建模与求解

​ 由假设(1),(2)可得r(x)=r(1−χχm)r(x)=r(1-\frac{\chi}{\chi_m})r(x)=r(1−χm​χ​),则有

import sympy as sp
import math
from sympy import  diff,dsolve,simplify
x=sp.symbols('x',cls=sp.Function)
t=sp.symbols('t')
r=sp.symbols('r')
xm=sp.symbols('xm')
c1=sp.symbols('c1')
x0=sp.symbols('x0')
eq=diff(x(t),t)-r*(1-(x(t)/xm))*x(t)
x=dsolve(eq)
print(simplify(x))

求解方程得到 Eq(x(t),−xm/(exp(C1∗xm−r∗t)−1))Eq(x(t), -xm/(exp(C1*xm - r*t) - 1))Eq(x(t),−xm/(exp(C1∗xm−r∗t)−1))

其中因为C1较为复杂所以这里用python求解并不是一直好办法

我们直接用分离变量法求解 得到x(t)

x(t)=xm1+(xmx0−1)e−r(t−t0)x(t)=\frac{xm}{1+(\frac{xm}{x0}-1)e^{-r(t-t0)}}x(t)=1+(x0xm​−1)e−r(t−t0)xm​

我们用pyplot来使得x(t)函数可视化

import matplotlib.pyplot as plt
import numpy as np
import math
t=np.arange(1,200,0.5)
xm=14
x0=1 #防止除0错误
t0=1 #防止除0错误
r=0.02
plt.rc('font',size=16); plt.rc('font',family='SimHei')
y=xm/(1+(xm/x0-1)*pow(math.e,-r*(t-t0)))
plt.plot(t,y,'g',label='人口随时间的变化曲线')
plt.xlabel("时间序列")
plt.ylabel("人口数",rotation=0)
plt.legend()
plt.show()

可以看到用logistic模型解出的回归函数会更加科学

模型检验

d2xdt2=r2(1−xxm)(1−2xxm)x\frac{d^2x}{dt^2}=r^2(1-\frac{x}{xm})(1-\frac{2x}{xm})xdt2d2x​=r2(1−xmx​)(1−xm2x​)x

所以人口总数x(t)有如下规律:

  1. lim⁡t→+∞χ(t)=χm\lim_{t\rightarrow+\infty}{\chi(t)}=\chi_mlimt→+∞​χ(t)=χm​, 即无论人口初值 χ0\chi_0χ0​ 如何,人口总数以χm\chi _mχm​为极限。

  2. 当0<χ0<χm0<\chi_0<\chi_m0<χ0​<χm​ 时 dxdt=r(1−χχm)x>0\frac{d_x}{d_t}=r(1-\frac{\chi}{\chi_m})x>0dt​dx​​=r(1−χm​χ​)x>0 , 这说明x(t)是单调增加的。
    根据d2xdt2=r2(1−xxm)(1−2xxm)x\frac{d^2x}{dt^2}=r^2(1-\frac{x}{xm})(1-\frac{2x}{xm})xdt2d2x​=r2(1−xmx​)(1−xm2x​)x
    说明当x<xm2x<\frac{x_m}{2}x<2xm​​时,d2xdt2>0\frac{d^2x}{dt^2}>0dt2d2x​>0 x=x(t)是一个凹函数

    而当x<xm2x<\frac{x_m}{2}x<2xm​​的时候 d2xdt2<0\frac{d^2x}{dt^2}<0dt2d2x​<0 x=x(t)是一个凸函数

  3. 人口变化率 dxdt\frac{d_x}{d_t}dt​dx​​ 在x=xm2x=\frac{x_m}{2}x=2xm​​时取到最大值,即人口总数达到极限值一半以前是加速生长时期,经过这一点以后,增长速率会逐渐变小,最终达到零。

以上的结论都可以从上面我画的曲线中直观地看出.

数学建模-Logistic模型相关推荐

  1. 数学建模——支持向量机模型详解Python代码

    数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...

  2. 数学建模——线性规划模型详解Python代码

    数学建模--线性规划模型详解Python代码 标准形式为: min z=2X1+3X2+x s.t x1+4x2+2x3>=8 3x1+2x2>=6 x1,x2,x3>=0 上述线性 ...

  3. 数学建模传染病模型_数学建模| 时间序列模型

    1 数学建模 时间序列模型 1.与实践有关系的一组数据,叫做时间序列: 2.得到时间序列的数据后,要构建模型,其中平稳时间序列的模型,是本节课重点介绍的: 3.y=at+季节性+周期性 一.     ...

  4. 数学建模常用模型04:灰色关联分析法

    数学建模常用模型04:灰色关联分析法 灰色关联分析法 本文所用的资料参考来源:美赛资料网:美赛资料网 与灰色预测模型一样,比赛不能优先使用,灰色关联往往可以与层次分析结合使用.层次分析用在确定权重上面 ...

  5. 数学建模常用模型(一):灰色预测法

    数学建模常用模型(一):灰色预测法 灰色预测法是一种用于处理少量数据.数据质量较差或者缺乏历史数据的预测方法.它适用于一些非线性.非平稳的系统,尤其在短期预测和趋势分析方面有着广泛的应用.灰色预测法作 ...

  6. 数学建模常见模型总结

    数学建模常见模型总结 一.插值 当已有数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法. 常用插值方法 拉格朗日插值 分段线性插值 Hermite 三次样条插值 克里金法 matlab ...

  7. 数学建模-人口模型Logistic模型与 Malthus模型

    一.问题及重述:下表是中国人口数据,请根据这些数据建立适当的数学模型对其进行描述,并预测2002.2003.2004年的中国人口数. 给出模型,求解代码及必要的图形,误差分析结果. 重述: 选取合适的 ...

  8. 数学建模优化模型简单例题_数学建模之优化模型:存储模型

    点击上方「蓝字」关注我们 最近,为申报市级精品课程,我为我校"数学建模与科学计算"课程录制了讲课视频,下面是3.1节优化模型的第一个例子:存储模型.敬请大家批评指正! 优化模型是数 ...

  9. MATLAB数学建模-规划模型总结| MATLAB求解

    目录 1 线性规划问题(LP) 风格1 风格2 2 非线性规划 3 动态规划 A星算法 基于dijkstra的概率路线图 4 多目标规划 帕累托最优 支配(Dominace) 不可支配解集 帕累托最优 ...

  10. 【数学建模常用模型】图论专题

    图论是研究点.线间关系的一门学科.现实生活中,凡是涉及到事物间的关系,都可以抽象为图论模型.图论模型也是各大数学建模中常见的一种模型,主要用于计算.规划最短距离.路线等问题.下面介绍几个基本概念和算法 ...

最新文章

  1. javascript 判断 前端 是 pc端 还是 移动端
  2. php url %,php常用的url处理函数集
  3. 关于SAP的SD的定价公式的资料
  4. 【.NET基础】--委托、事件、线程(2)
  5. 减小Delphi xe系列生成的exe文件大小
  6. Tomcat 在 SpringBoot 中是如何启动的
  7. insert into select 主键自增_springboot2结合mybatis拦截器实现主键自动生成
  8. Air Data System
  9. SQL Server--通过存储过程生成表数据的脚本
  10. DAY3-“忙里偷闲”找你玩耍2018-1-11
  11. linux修改可执行程序,反汇编,修改,然后重新组装一个Linux可执行文件
  12. 坑了我一个小时的脚本执行
  13. Gson解析原理概述
  14. 怎么调节手机的刷新率_【W21 5G性能篇】120Hz自适应刷新率,用了再也回不去
  15. python中argsparse_Python中的argparse模块
  16. Latex安装教程 —— textlive+textstudio+基础环境配置
  17. Silverlight 4 帮助文件例子的连接
  18. NetApp 数据存储阵列 EF 系列——用于大数据分析和高性能计算
  19. IOS越狱--修复Cydia闪退(或打不开)的办法
  20. mysql数据库文件查找网站后台密码_怎么查看数据库的密码?

热门文章

  1. Java代码审计详解
  2. Laravel框架实现中英文双语站
  3. 服务器------sz命令 – 从Linux上下载文件到本地
  4. Unity接入Steam成就
  5. 人脸识别数据集-WebFace260M
  6. spss相关分析(spss统计分析实验教程,谢蕾蕾)
  7. 医学统计学-为什么是个医学生就都要学R语言?
  8. ”教你如何抓住短视频时代风口,进行流量红利变现
  9. 南邮通院考研的一些经验
  10. 服务器系统在虚拟机安装win7系统安装教程,虚拟机安装教程图解 虚拟机安装win7步骤...