华南理工大学   陈艺荣          邮箱:eecyryou@mail.scut.edu.cn

人口问题是我国最大社会问题之一,估计人口数量和发展趋势是我们制定一系列相关政策的基础。从人口统计年鉴,可查我国从1990年至2010年人口数据资料如下,试根据表中数据,分析人口增长的规律,并以此预测2011年和2012年的人口数量,然后与实际人口数量做对比,评价模型的优劣,并对我国人口政策提出建议。

表 1 不同年份我国的人口数量(万)

年份

1990

1991

1992

1993

1994

1995

1996

1997

数量

114333

115823

117171

118517

119850

121121

122389

123626

年份

1998

1999

2000

2001

2002

2003

2004

2005

数量

124761

125786

126743

127627

128453

129227

129988

130756

年份

2006

2007

2008

2009

2010

数量

131448

132129

132802

133450

134091

本问题要求我们利用已知的人口数据建立相应的人口增长模型,并利用该模型计算2011年和2012年我国的人口数量。

在MATLAB中以多项式为目标函数作数据拟合的函数是polyfit,它的基本使用格式为:

函数:polyfit(x,y,n),其中参数n为指定多项式的阶。

用polyfit函数进行2阶多项式拟合、4阶多项式拟合、5阶多项式拟合,用R=dot(y-polyval(p,t),y-polyval(p,t)) 计算拟合残差,再用polyval函数预测2011和2012年的人口。

其中,人口数据存放在一个命名为renkoushuju.txt的文件当中,设定1990年为第0年,如下列数据所示。在matlab中使用fopen函数和textsan函数获取相关数据。

renkoushuju.txt文件数据如下

0 114333
1 115823
2 117171
3 118517
4 119850
5 121121
6 122389
7 123626
8 124761
9 125786
10 126743
11 127627
12 128453
13 129227
14 129988
15 130756
16 131448
17 132129
18 132802
19 133450
20 134091

代码如下

%renkouyuce.m     我国人口增长规律观测
%           C    年份和人口数据矩阵
%         year    年份
%         num    人口
%           a    2011年预测人口数
%           b    2012年预测人口数%Chen Yirong 修改于2017年04月05日clc;clear all           %清除所有
%提取1990年到2010年的人口数据,数据存储在renkoushuju.txt文件中
renkou=fopen('renkoushuju.txt');  %打开数据总文件
A=textscan(renkou,'%f %f');       %把每一列的数据读入到读入到单元数组A中
C=[A{1} A{2}];                    %从单元数组R中提取每列数据赋值给矩阵C
n=max(size(C));                   %确定读入数据的年份数目
year=C(:,1);num=C(:,2);           %赋值%进行2阶、4阶、5阶拟合
p2= polyfit(year,num,2)        %2阶拟合
p4= polyfit(year,num,4)        %4阶拟合
p5= polyfit(year,num,5)        %5阶拟合
R5= dot(num-polyval(p5,year),num-polyval(p5,year)) %计算拟合残差
R4= dot(num-polyval(p4,year),num-polyval(p4,year)) %计算拟合残差
R2= dot(num-polyval(p2,year),num-polyval(p2,year)) %计算拟合残差%绘制原始数据和拟合曲线图
hold on;
xlabel('year','color','b');     %设置横坐标名
ylabel('num','color','b');      %设置纵坐标名
title('1990-2010人口增长曲线','color','m');   %设置标题
grid on      %网格线
plot(year,num,'r*',year,polyval(p2,year),year,polyval(p4,year),year,polyval(p5,year))
legend('我国人口数量','2阶拟合', '4阶拟合','5阶拟合')%人口预测
a=polyval(p5,21)    %预测2011年人口数量
b=polyval(p5,22)    %预测2012年人口数量

【作者简介】陈艺荣,男,目前在华南理工大学电子与信息学院广东省人体数据科学工程技术研究中心攻读博士。曾获2次华南理工大学三好学生、华南理工大学“优秀共青团员”、新玛德一等奖学金(3000元,综测第3)、华为奖学金(5000元,综测第3)、汇顶科技特等奖学金(15000元,综测第1),两次获得美国大学生数学建模竞赛(MCM)一等奖,获得2016年全国大学生数学建模竞赛(广东赛区)二等奖、2017年全国大学生数学建模竞赛(广东赛区)一等奖、2018年广东省大学生电子设计竞赛一等奖等科技竞赛奖项,主持一项2017-2019年国家级大学生创新训练项目获得优秀结题,参与两项广东大学生科技创新培育专项资金、一项2018-2019年国家级大学生创新训练项目获得良好结题、4项华南理工大学“百步梯攀登计划”项目,发表SCI论文3篇授权实用新型专利5项,在受理专利17项(其中发明专利13项,11项进入实质审查阶段)。
我的Github
我的CSDN博客
我的Linkedin

数学建模入门之MATLAB实现人口预测相关推荐

  1. 【MATLAB】数学建模入门方法综述

    数学建模入门方法综述

  2. 数学建模入门 方法及代码

    数学建模入门 数学模型 (1)原型与模型 模型是原型的替代物.(对原型提炼构造.) 模型不是原型,既简单于原型又高于原型. 模型的分类 数学模型是对特定对象,特定目的,根据特有的内在规律,做出一些必要 ...

  3. 【数学建模】基于matlab武汉地铁2号线路线地图动态模拟【含Matlab源码 1092期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数学建模]基于matlab武汉地铁2号线路线地图动态模拟[含Matlab源码 1092期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...

  4. 简述数学建模的过程_数学建模入门知识分享(一):什么是数模

    0 一个不是那么标准的Introduction 2019年的美赛结束于1月29日,接近一年多对数学建模的不断学习,终于有了些数模的感触,这个系列就简单从几个方面比较系统的阐述一下数模的基本问题,本人在 ...

  5. 【数学建模】基于matlab船舶三自由度MMG模型【含Matlab源码 1925期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数学建模]基于matlab船舶三自由度MMG模型[含Matlab源码 1925期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  6. 数学建模专栏 | 开篇:如何备战数学建模竞赛之 MATLAB 编程

    作 者 简 介 卓金武,MathWorks中国高级工程师,教育业务经理,在数据分析.数据挖掘.机器学习.数学建模.量化投资和优化等科学计算方面有多年工作经验,现主要负责MATLAB校园版业务.曾2次获 ...

  7. 【数学建模】基于matlab动态水波仿真【含Matlab源码 2056期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数学建模]基于matlab动态水波仿真[含Matlab源码 2056期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  8. 【数学建模】基于matlab zernike泽尼克多项式仿真【含Matlab源码 1953期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数学建模]基于matlab zernike泽尼克多项式仿真[含Matlab源码 1953期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  9. 【数学建模】基于matlab三维海浪模型仿真【含Matlab源码 1159期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数学建模]基于matlab三维海浪模型仿真[含Matlab源码 1159期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付 ...

最新文章

  1. SQL字符串基本操作汇总
  2. GRDB使用SQLite的WAL模式
  3. thinkphp中出现unserialize(): Error at offset 533 of 1857 bytes如何解决
  4. 拒绝从入门到放弃_《Openstack 设计与实现》必读目录
  5. c++ 程序执行时间
  6. 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解
  7. C++实现邻接矩阵存储的图及dfs遍历
  8. lzw压缩 java_java实现的LZW 压缩算法源码 | 学步园
  9. android如何兴起_情感设计的必要兴起
  10. linux下的C语言开发(动态库)
  11. 【报告分享】2021年中国企业直播成长路径研究报告.pdf(附下载链接)
  12. java实现url转码、解码
  13. 【Visio】Visio图片在Word中显示不全?如何确定Visio作图大小?
  14. Tomcat下载安装及配置
  15. 移动wap浏览器网页调试工具vconsole和eruda
  16. 对于IT这两个字眼,是不是只能由学习过IT的大学生才能做呢,就由我来为大家讲解一下IT的由来!
  17. c语言erfc函数,erf、erff、erfl、erfc、erfcf、erfcl
  18. 工信部发布《2018中国区块链产业白皮书》:量子计算机将给密码体系带来重大安全威胁
  19. TypeScript入门与区块链项目实战(TypeScript Quickly)阅读记录
  20. Levenshtein Distance编辑距离应用实践——拼写检查(Java fork/join框架实现)

热门文章

  1. 三十岁的男人(zz)
  2. 根目录,子目录,当前目录
  3. R语言将大型Excel文件转为dta格式
  4. Unity Tag标签
  5. vue项目中显示当前时间的农历时间
  6. 冒险岛教程一:修改封包加解密(AES_OFB)
  7. 微软 MSE Build 1.0.1959.0 最新版发布
  8. FPGA之4K图像处理
  9. 12. GeoTrellis数据输出篇之输出COG到本地文件系统
  10. 杀软测评通报:“AV-Test”最新一轮测试结果及与“VB100”认证