数学建模——人口预测模型

多项式拟合

假设

  1. 把人口增长看做是一个多项式函数
  2. 人口增长没有限制,可以一直增长

特点

  1. 已有数据拟合的很好,不论数据有没有规律可言
  2. 预测未来一两年比较准确,越往后越不准确
  3. 预测的人口数量在未来会超出人口限制,且增长速度变快

代码实现

代码实现思路

以年份为x轴变量,当年人口为y轴变量,将两者进行拟合得到人口数模型与时间的关系式
,选取某城市2008到2019年老年人口数量进行模拟测试

代码

首先是将已有的数据拟合成一条曲线,过程代码如下所示

close
clc;
clear all           %清除所有
n=5;%拟合多项式的次数
year=2008:2019;
num=[97.42 102.36	105.78	111.16	116.04	121.71	126.26	134.93	137 139 141.89 146];%户籍人口; 
p5= polyfit(year,num,n);       %5阶拟合 
%绘制原始数据和拟合曲线图
figure(1)
hold on;
xlabel('year');     %设置横坐标名
ylabel('num');      %设置纵坐标名
title('2008-2019人口增长曲线');   %设置标题
grid on      %网格线
plot(year,num,'r*',year,polyval(p5,year)) 
legend('人口数量','拟合曲线')

运行结果图
在这里插入图片描述

然后预测未来几年的人口增长数

figure(2)
year1=2008:2025;
plot(year1,polyval(p5,year1)) 
people=polyval(p5,year1);
legend('人口预测数量')

运行的结果图
在这里插入图片描述

BP神经网络

特点

  1. BP神经网络预测人口模型不需要任何假设
  2. BP神经网络根据已有的数据推算数据内部之间的关系
  3. BP神经网络是非线性的方法

代码实现

实现思路

采用三层BP神经网络,利用已有数据推算出关系式,然后推算出下一年的人口,然后以下一年的人口为基础继续推算下下一年的人口

代码

clear all
close
clc
%原始数据
P=[97.42 102.36	105.78	111.16	116.04	121.71	126.26	134.93	137;
    102.36	105.78	111.16	116.04	121.71 126.26 134.93 137 139;
    105.78	
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值