一、问题重述
1790-1980年间美国人口记录表:
年份 | 1790 | 1800 | 1810 | 1820 | 1830 | 1840 | 1850 | 1860 | 1870 | 1880 |
人口(´106) | 3.9 | 5.3 | 7.2 | 9.6 | 12.9 | 17.1 | 23.2 | 31.4 | 38.6 | 50.2 |
| ||||||||||
年份 | 1890 | 1900 | 1910 | 1920 | 1930 | 1940 | 1950 | 1960 | 1970 | 1980 |
人口(´106) | 62.9 | 76.0 | 92.0 | 106.5 | 123.2 | 131.7 | 150.7 | 179.3 | 204.0 | 226.5 |
用以上数据建立马尔萨斯(Malthus)人口指数增长模型。
二、问题假设
1.假设所给的数据真实可靠;
2.各个年龄段的性别比例大致保持不变;
3.人口变化不受外界大的因素的影响;
4.马尔萨斯人口模型
(1)单位时间的人口增长率r为常数;
(2)将x(t)视为t的连续可微函数。
5.改进后的模型(阻滞增长模型)
(1)人口净增长率r为变化量。
三、变量说明
X(t) t时刻的人口数量
X1790 1790年的的人口数量
r 人口净增长率
Xm 环境所能容纳的最大人口数量,即
四、模型建立
指数增长模型---马尔萨斯模型

阻滞增长模型(Logistic模型)

五、模型求解
输入数据
t=[1790:10:1980];
x=[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 106.5 123.2 131.7 150.7 179.3 204.0 226.5];
1.马尔萨斯模型求解
在matlab里用应用程序中的Curve Fitting求参数,得:

图1.马尔萨斯人口模型
参数:
Coefficients (with 95% confidence bounds):
r = 0.02222 (0.02163, 0.02281)
预测:
每个十年,从1990—2030:
y1 =
331.9474 414.5429 517.6900 646.5022 807.3656
查阅相关年份美国实际人口数据,1990年为248.7百万,2000年为281.4百万,2010年为307.0百万。可以看出马尔萨斯模型预测人口与实际相差很大,而且到后来增长速度变快,主要原因是没有抑制因素。
2.阻滞增长模型求解
在matlab里用应用程序中的Curve Fitting求参数,得:

图2阻滞增长模型与实际人口数据
参数:
a = 285.9 (257.4, 314.4)
r = 0.02858 (0.02763, 0.02953)
预测:
每个十年,从1990—2030:
y2 =
230.9171 242.5109 252.0186 259.6683 265.7291
改进后的模型与实际人口数据很接近。但依然有一定的误差。
3.观察两种模型及原数据的图像。

图3.两个模型与实际人口数据的对比
由图可以看出,阻滞增长模型相比于马尔萨斯模型与实际曲线拟合效果更好。
六、结果分析
1.马尔萨斯模型为指数增长模型,符合人口增长特点,但忽视了资源有限等外部条件,在最初效果可以,预测时间越长,与实际偏离程度越大。
2. 阻滞增长模型在指数增长的基础上添加了修正因子,使得模型包含自我抑制作用,考虑到了外部资源、环境容纳量等现实因素,对于人口预测有比指数模型更好的意义。
七.实验代码
t=[1790:10:1980];
x=[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 106.5 123.2 131.7 150.7 179.3 204.0 226.5];
y1=3.9*exp(0.02222.*(t-1790));
y2=285.9./(1+72.31*exp(-0.02858.*(t-1790)));
plot(t,x,'r',t,y1,'b',t,y2,'g');
legend('实际值','马尔萨斯模型','阻滞增长模型')
转载于:https://www.cnblogs.com/wander-clouds/p/11007668.html