人口预测模型及matlab代码

目录

题目

1949年—1994年我国人口数据资料如下:
年 份 xi 49 54 59 64 69 74 79 84 89 94
人口数 yi 5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8
建模分析我国人口增长的规律, 预报1999年我国人口数(亿)。
1. 在坐标系上作观测数据的散点图;
2. 根据散点分布的几何特征提出模型;
3. 利用数据估计模型的参数;
4. 计算拟合效果。

第一步–画出散点图

matlab代码如下:

x= [49 54 59 64 69 74 79 84 89 94] ;
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 ];
a=polyfit(x,y,1);

得到结果:
在这里插入图片描述根据散点图的分布情况我们可以提出两个模型:
模型一:假设人口数量随时间线性增加

y = a*x + b

模型二:指数增长模型

y = a * exp(b * x)

转化为:

lny = lna + b*x

第二步–利用matlab画出两中模型的拟合函数

代码如下:

x= [1949 1954 1959 1964 1969 1974 1979 1984 1989 1994] ;
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 ];
x1=1949:10:1994;
a=polyfit(x,y,1);     %散点图
y1=a(2)+a(1)*x1;		%模型一
b=polyfit(x,log(y),1);   
y2=exp(b(2))*exp(b(1)*x1);		%模型二  用exp是要将ln转化回去
plot(x,y,'*')
hold on
plot(x1,y1,'--r')
hold on
plot(x1,y2,'-k')
legend('原曲线','模型一曲线','二曲线')

得到拟合后的曲线图:
在这里插入图片描述求得拟合函数为:

模型一:y = 0.146 * x - 1.93
模型二:y = 2.33*exp(0.0179 * x)
(此时的x带入年份的后两位)

第三步–利用拟合函数预测1999年的人口数量并计算拟合精度

预测结果:

模型一预测1999年的人口数量为:12.524亿
预测1999年的人口数量为:13.708亿

拟合精度计算公式:

  1. 总平方和 SST(total sum of squares) : ∑ i = 1 n ( s i − y i ) 2 \sum_{i=1}^{n} (s_i-y_i)^2 i=1n(siyi)2

利用matlab计算
代码如下:

x= [49 54 59 64 69 74 79 84 89 94];
s=0.146*x-1.93;   %求得拟合函数对应得函数值
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 ];
a=s-y;  %两者相减得到每个函数值的误差
b=a.';  %对其进行转置方便计算误差的平方和 
c=a*b; %拟合函数的精度

计算得到拟合精度为:0.3531

评论 3 您还未登录,请先 登录 后发表或查看评论
相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

与森先生

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值