实验24
人口预测的最小二乘模型
表 24-1 世界人口数据(单位
亿)
年 1960 1961 1962 1963 1964 1965 1966 1967 1968 人口
29.72
30.61
31.51
32.13
32.34 32.85
33.56
34.20
34.83
根据表中数据,预测公元2000年世界人口会超过 60亿。
作出这一预测结果所用 的方法就是数据拟合方法。
一、问题分析
据人口增长的统计资料和人口理论,当人口总数
N 不是很大时,在不长的
时期内,人口增长率与人口数 N 成正比,这就是著名的马尔萨斯人口模型,用微
分方程描述为
由此可知,马尔萨斯模型是人口数量按指数函数递增的模型。
由于指数函数表达 式中a 和b 均未知,需要用人口数据来确定。
即用指数函数对数据进行拟合,确 定指数函数中参数使指数函数与人口数据偏差(残差平方和)尽可能小。
下图是 经数所拟合后的指数函数图形与原始数据散点图的对比,残差平方和为 3.6974 杓-4
为了计算方便,将上式两边冋取对数,还原为
y = ln N
或
In N = a + b t ,令
N = e y
变换后的拟合函数为
dN dt
bN
其中,b 为人口增长系数。
用分离变量法解常微分方程,得 N(t) a bt
e
(24.1)
In N = b t + a ,即
(24.2)
图24-1指数函数图形与原始数据散点图
y(t) = a + b t (24-3) 由人口数据取对数(y = In N )计算,得下表
表24-2世界人口数据(单位:亿)
二、求解超定方程组的数学原理
根据表中数据及等式a + b t k = y k ( k = 1, 2, ……,9)可列出关于两个未知数
a、b的9个方程的线性方程组
a 1960
b 3.3918
a 1961
b 3.4213
a 1962
b 3.4503
a 1963
b 3.4698
a 1964
b 3.4763
a 1965
b 3.4920
a 1966
b 3.5133
a 1967
b 3.5322
a 1968
b 3.5505
(24-4) 由于这一问题中方程数目多于未知数个数,被称为超定方程组,用矩阵形式表示为
AU = f (24-5) 显然A矩阵的行数大于列数。
求解这一类方程组的数学原理是将等式左、右同时
乘以A的转置矩阵,得新的线性方程组
A T AU =A T f (24-6) 令G =A T A, b = A T f。
得系数矩阵为方阵的线性方程组。
GU=b
求解得原方程组的最小二乘解(广义解)。
由于原方程组一般无解,将最小二乘解
代入下式计算
R = f -A U (24-7) 通常会得非零向量,这一向量称为残差。
残差的内积可以用来度量最小二乘解的
逼近程度。
三、问题求解的计算机实验
输入下面命令
t=1960:1968;
N=[29.72 30.61,31.51 32.13, 32.34 32.85, 33.56 34.20, 34.83]; f=log(N); A=[o
nes(9,1) t'];
G=A'*A; b=A'*f;
U=G\b
a=U(1); b=U(2); R=f-A*U;
R'*R
Y=exp(a+b*t); tt=1960:8:2000; YY=exp(a+b*tt);
plot(t,N,'*',t,Y)
figure
bar(tt,YY)
程序运行结果为U = -33.0383 0.0186
ans = 3.6974e-004
由方程组最小二乘解得: a —33.0383, b 0.0186;残差向量的内积:3.6974 XI0"
4。
代入拟合函数有
33.0383 0.0186t
N (t) e
经计算
N(2000)= 64.1805
所以2000年的世界人口预测为64.1805亿。
这一数据基本反映了人口变化趋。
图24-2预测的人口数据变化图。