标题数学建模:人口增长模型——基于matlab语言

写文章是为了记录存档,可能排版比较拉跨,但源码皆粘贴可用,若有帮到你,请给个赞以表示鼓励!!!!

一. 建立模型背景:通过已知的人口数据,研究人口变化规律,建立人口数学模型描述人口发展的规律。做出较准确的增长预测,是指定积极、稳妥的人口政策的前提。
二. 人口指数增长模型的建立:当考察一个较大地区的人口随着时间延续而变化的规律时,为了利用微积分这一数学工具。可以将人口看作连续时间t的连续可微函数x(t)。记初始时刻(t=0)的人口为x0.假设单位时间人口增长率为常熟r,rx(t)就是单位时间内x(t)的增量dx/dt,于是得到满足的微分方程和初始条件是dx/dt=rx,x(0)=x0,进而得出x(t)=x0e^(rt);这两个公式称为指数增长模型;
三. 指数增长模型的参数估计:包括两种方法;

  1. 方法一:直接用人口数据和最小和二乘法模型的参数
    1.1求解方法:在matlab中,要通过线性最小二乘法预测参数系数,我们是使用polyfit()函数,通过已知的真实人口数据,就可得出计算结果,计算代码:
% 人口预测
y1=1:22;
p1=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6...50.2 62.9 76.0 92.0 105.7 122.8 131.7 150.7...179.3 203.2 226.5 248.7 281.4];
% 方法一
r1=polyfit(y1,log(p1),1);
exp(polyval(r1,1790));
plot(y1,p1,'.',y1,exp(polyval(r1,y1)));
grid on

1.2.求解参数结果:r(1)代表增长率,求解r结果截图

1.3.用方法一绘制图像结果如下:

1.4.用方法一获取参数计算人口数量如图

2.方法二:先对人口数据作数值微分,在计算增长率并将其平均值作为r的估计值,x0直接采用原始数据;需要注意的是这里采用的数值微分是利用差分法求其平均值进行的计算;
2.1.求解代码:

% 方法二
x1=zeros(1,22);
x1(1,1)=(-3*p1(1,1)+4*p1(1,2)-p1(1,3))/2/p1(1);
for i=2:21x1(1,i)=(p1(1,i+1)-p1(1,i-1))/2/p1(i);
end
x1(1,22)=(p1(1,22-2)-4*p1(1,22-1)+3*p1(1,22))/2/p1(22);
x2=mean(x1);
r2=zeros(1,22);
r2(1)=p1(1);
for i=2:22r2(i)=p1(1)*exp(x2*(i-1));
end
plot(y1,p1,'.',y1,r2);

2.2.求解参数结果:

2.3.用方法二计算参数绘制参数图像如下:

2.4.用方法二得到的参数计算出的人口数量如下:

四、改进的指数增长模型
1.改进原因:增长率r从19世纪上半叶的0.03年左右,下降到20世纪末只略大于0.01年,针对这么大的变化,应该改进指数增长模型(4)中人口增长率为常熟的假设,将r视为t的函数r(他),即改写方程为dx/dt=r(t)x=(r0-r1t)*x,x(0)=x0;
2.利用最小二乘法求解改进模型的参数代码:

% 改进的指数增长模型
x3=polyfit(y1,x1,1);
r3=zeros(1,22);
r3(1)=p1(1);
for i=2:22r3(i)=p1(1)*exp(0.3252*(i-1)-0.0114*(i-1)^2/2);
end
plot(y1,p1,'*',y1,r3)
grid on

3.用改进的指数增长模型计算美国人口图像如下:

4.所计算的人口如下:

五、logistics模型
1.产生原因:在分析人口增长到一定数量后增长率下降的主要原因时,人们注意到,自然资源、环境条件等因素对人口的增长起着阻滞的作用,并且随着人口的增加,阻滞作用越来越大,logistic模型就是考虑到这些因素,对指数增长模型的基本假设进行修改后得到的;
2.logistic方程:dx/dt=rx(1-x/xm);
3.logistics模型的参数估计也有两种方法,方法一是对人口数据进行数值微分后计算增长率,方法二是直接用人口数据和非线性最小二乘法估计r,x0,xm;
4.方法一计算代码:

%原始增长率见p142的表三
t1=0:21;
rr=[0.2949 0.3113 0.2986 0.2969 0.2907 0.3012 0.3082...0.2452 0.2435 0.2420 0.2051 0.1914 0.1614 0.1457...0.1059 0.1059 0.1579 0.1464 0.1161 0.1004...0.1104 0.1349]
%拟合增长率
pp=polyfit(t,rr,1)
RR=polyval(pp,t)
plot(t1,rr,'*',t1,RR,'b');
grid on
%求解人口
x4=polyfit(p1,x1,1);
xm=-x4(2)./x4(1);
xt=xm./(1+(xm./p1(1)-1).*exp(-x4(2).*t));
%axis([0 22 -inf inf])
r4=zeros(1,22);
r4(1)=p1(1);
for i=2:22r4(i)=xm./(1+(xm./p1(1)-1).*exp(-x4(2).*(i-1)));
endplot(y1,p1,'*',y1,r4)
grid on

5.方法一所得参数如下:

6.方法一获得的人口增长率绘制图像如下:

7.方法一的参数拟合图像如下:

8.方法一获得的人口数值如下

9.方法二计算代码

x4_1=polyfit(p1,x1,2);
xm_1=-x4_1(2)/x4_1(1);
r4_1=zeros(1,22);
r4_1(1)=7.6962;
for i=2:22r4_1(i)=443.9931/(1+(443.9931/7.6962-1)*exp(-0.2155*(i-1)));
endplot(y1,p1,'*',y1,r4_1)
grid on

10.方法二估计参数图像:

11.方法二估计人口数值

写文章是为了记录存档,可能排版比较拉跨,但源码皆粘贴可用,若有帮到你,请给个赞以表示鼓励!!!!

人口增长模型——基于matlab语言相关推荐

  1. 数学建模:火箭发生升空模型——基于matlab语言

    基于教材:<数学建模>第五版 仅是为了个人记录,也为了在有需要的情况下帮到大家,排版可能略显拉跨,但代码以及实验结果均正确!!! 如果帮到你了,请动手点个小赞吧, 一.不考虑空气阻力的简单 ...

  2. 游程理论提取灾害事件特征---基于MATLAB语言的编程实现

    变强从来不是因为社会的阳光面,而是为了当社会的阴暗面向我或我们在意的人伸手时,我们能够干净利索地绞杀它们. 游程理论识别灾害事件---基于MATLAB语言的编程实现 前言 1. 版本 2. 摘要 3. ...

  3. matlab传播损耗,基于MATLAB语言的电波传播路径损耗的仿真

    基于MATLAB 语言的电波传播路径损耗的仿真 龙云亮,黄 明,王兴玮,王 泳 (中山大学无线电电子学系,广东广州510275) 摘 要:根据几何绕射理论的建模思想,利用MATLAB 语言,对自由空间 ...

  4. 电力系统matlab实验报告,基于matlab语言计算电力系统暂态稳定仿真程序实验报告.docx...

    基于matlab语言计算电力系统暂态稳定仿真程序实验报告 BeijingJiaotongUniversity 电力系统分析 暂态稳定分析实验 学院:电气工程学院 班级:xxxxxxxx 学号:xxxx ...

  5. 主振型 matlab 振动,基于MATLAB语言的多自由度振动系统的固有频率及主振型计算分析...

    基于 MATLAB 语言的多自由度振动系统的固有频率及主振型计算分析 文 涛 ,胡青春 (华南理工大学 机械工程学院 ,广东 广州 510640) 摘要 :多自由度振动系统固有频率及主振型计算分析是研 ...

  6. matlab hod on,基于Matlab语言定量反馈控制器的分析与设计_朱永文

    计算机测量与控制. 2002. 10( 12) 822 Computer Measurement & Control 文章编号: 1671- 4598( 2002) 12- 0822- 02 ...

  7. 概率图模型基于R语言(一)贝叶斯模型

    概率图模型基于R语言[一]贝叶斯模型 条件概率 贝叶斯模型 R 参考书:<概率图模型基于R语言> 记录一些代码和自己的想法和目前版本代码的写法(书中有一些无法用了) 随时更新 条件概率 熟 ...

  8. matlab多径信道模型,基于matlab的无线多径信道建模与仿真分析

    基于matlab的无线多径信道建模与仿真分析 基于MATLAB的无线多径信道建模与仿真分析 摘 要:对于无线通信, 衰落是影响系统性能的重要因素, 而不同形式的衰落对于信号产生的影响 也不相同.本文在 ...

  9. 用matlab简单电路模型,基于MATLAB的电路模型仿真应用

    基于MATLAB的电路模型仿真应用实验指导书 一.实验目的 1.掌握采用M文件及SIMULINK对电路进行仿真的方法. 2.熟悉POWERSYSTEM BLOCKSET 模块集的调用.设置方法. 3. ...

  10. matlab搭建多径模型,基于MATLAB的无线多径信道建模与仿真分析.docx

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于MATLAB的无线多径信道建模与仿真分析.do ...

最新文章

  1. 完整中英文世界国家级联下拉列表插件【前端版】
  2. 教AI逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好者有点东西啊
  3. 上海计算机应用基础自考上机,上海2010年自考计算机应用基础上机大纲
  4. VTK:标记网格用法实战
  5. HTTPS连接的前几毫秒发生了什么
  6. 高精度计时器(编程测试效率用)
  7. SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回
  8. redis持久化RDB和AOF
  9. POJ1279 Art Gallery 多边形的核
  10. MySQL里的日期技巧
  11. linux下提示libpng12-0缺失
  12. python实现播放音乐_python实现简易云音乐播放器
  13. c 语言编写脚本优化,两周自制脚本语言-第11天 优化变量读写性能
  14. C语言之父:我创造了C语言,但这些书帮我表达了出来
  15. pygame下载(非常详细)
  16. 计算机ping使用的端口,ping 端口:Ping端口命令的使用方法介绍
  17. 智能垃圾桶(七)——SG90舵机的介绍与使用(树莓派pico实现)
  18. CAD打印adobe acrobat pro/DC 安装的PDF打印机闪退问题
  19. 分布式ID生成算法——雪花算法
  20. python迅雷下载任务出错_迅雷下载“任务出错”最新解决方法

热门文章

  1. 突然发现浏览器广告拦截插件原理
  2. HTML当当图书馆作业介绍
  3. WinRAR压缩软件无广告版
  4. eagle php,使用EaglePHP打造自己的网站(非PHP程序员的菜鸟使用手册)
  5. 1100个商务企业宣传通用PPT模板免费下载网址
  6. java中的杨辉三角形_Java编写杨辉三角
  7. python里面的模块怎么下载_python下载模块然后怎么安装
  8. pr视频两边模糊_干货!Pr教程:如何在视频中添加模糊效果?
  9. 【JAVA】java获取项目地址或tomcat绝对地址
  10. 脉冲耦合神经网络(PCNN)的python实现