一、問題重述
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('實際值','馬爾薩斯模型','阻滯增長模型')