数学建模(一)—— 人口增长模型的确定
- 一、題目要求
- 二、相關的基礎知識
- 2.1 馬爾薩斯(Malthus)人口指數增長模型
- 2.2 邏輯斯蒂(Logistic)增長模型
- 2.3 改進的Logistic模型
- 2.4 BP神經網絡模型
- 三、模型的建立與求解
- 3.1 Malthus模型
- 3.2 Logistic模型
- 3.3 改進的Logistic模型
- 3.4 BP神經網絡模型
- 四、人口數量的預測及分析
一、題目要求
????????1790-1980年間美國每隔10年的人口數量記錄如下表所示。
表1 1790-1980年間美國每隔10年的人口數量記錄表| 人口(×106)\left (\times 10^{6} \right )(×106) | 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.試用以上數據建立馬爾薩斯(Malthus)人口指數增長模型,對接下來的每隔十年預測五次人口數量,并查閱實際數據進行比對分析。
- 2.如果數據不相符,再對以上模型進行改進,尋找更為合適的模型進行預測,并對兩次預測結果進行對比分析。
二、相關的基礎知識
????????關于人口增長的模型常用的有馬爾薩斯人口指數增長模型、Logistic增長模型以及改進的Logistic模型,它們常被用于預測人口增長。本次問題求解中除了使用這三種常用的人口增長模型外,還使用了BP神經網絡模型來預測人口。
2.1 馬爾薩斯(Malthus)人口指數增長模型
????????提出: 馬爾薩斯模型來自于英國經濟學家托馬斯·羅伯特·馬爾薩斯于1798年發表的《人口原理》。
????????馬爾薩斯的人口論指出: 在沒有生存資源限制的情況下,人口或生物種群的數量成指數增長。
????????定義: 關于人口或種群增長的模型。
????????模型的建立: 人口數量在單位時間內增長的百分比 rrr 是一定的,寫成一個微分方程的形式,設 t=0t = 0t=0時刻的人口數量為N0N_{0}N0?,則 ttt 時刻的總人口NtN_{t}Nt?滿足1NtdNtdt=r?Nt=N0ert\frac{1}{N_{t}}\frac{dN_{t}}{dt}=r\Rightarrow N_{t}=N_{0}e^{rt}Nt?1?dtdNt??=r?Nt?=N0?ert
????????馬爾薩斯認為,如果人口長期不受控制的話,指數增長的速度會十分驚人,生存資源的增長速度將無法滿足眾多人口的生存需要,從而產生一系列人口問題,嚴重時甚至會爆發饑荒、戰爭和疾病來除去資源與環境無法承受的過剩人口。
2.2 邏輯斯蒂(Logistic)增長模型
????????馬爾薩斯人口論自提出以來,就一直是一個備受爭議的理論。例如:在受到資源環境限制的情況下,人口還能否做指數爆炸式的增長呢?假設資源環境能承受的人口數量為KKK,則可以建立一個Logistic方程1NtdNtdt=r(1?NtK)\frac{1}{N_{t}}\frac{dN_{t}}{dt}=r\left (1-\frac{N_{t}}{K} \right )Nt?1?dtdNt??=r(1?KNt??)
這個方程將得出僅在人口Nt<<KN_{t}<<KNt?<<K 時,Nt=N0ertN_{t}=N_{0}e^{rt}Nt?=N0?ert才是指數增長的。當接近KKK時,人口的增長明顯受到天花板KKK的壓制。雖然Nt>KN_{t}> KNt?>K時確實會出現人口的負增長,但不過是平穩地趨近于平衡水平 KKK,而并不會發生馬爾薩斯所擔心的災難性人口銳減的行為。下圖給出了 KKK 隨時間緩慢線性增加時,人口從不同的初條件以不同的生育率 rrr 增長的數值模擬結果。最終人口都達到了跟隨 KKK(灰線)的線性增加行為。
????????那么是不是可以說由于生存資源 KKK 的算術級增長,人口實際上并不能長期持續地指數增長,而是也會適應KKK 變為算術級增長,所以馬爾薩斯其實在杞人憂天地擔心一個偽命題?
????????邏輯斯蒂方程( Logistic Equation)為馬爾薩斯( Malthus) 人口模型的推廣。
2.3 改進的Logistic模型
????????雖然Logistic模型考慮了環境容納量,認為增長率是隨著人口的增加而遞減的,但Logistic模型中的增長率是線性遞減的。事實上,隨著人口的增加,人口基數越來越大,出生率也是增大的,導致增長率的減小是逐漸緩慢的。因此,增長率的逐年遞減是非線性的。所以需要對Logistic模型進行改進,使得增長率的變化是非線性的。
2.4 BP神經網絡模型
????????BP(back propagation)神經網絡是1986年由Rumelhart和McClelland為首的科學家提出的概念,是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,是應用最廣泛的神經網絡。
????????BP神經網絡是一種多層前饋神經網絡,該網絡的主要特點是:信號前向傳播、誤差反向傳播。在前向傳播中,輸入信號從輸入層經隱含層逐層處理,直至輸出層,每一層的神經元狀態只影響下一層神經元狀態。如果輸出層得不到期望輸出,則轉入反向傳播,根據預測誤差調整網絡權值和閾值,從而使BP神經網絡輸出不斷逼近期望輸出。
????????BP可以用于數據預測,在已知過去和當前的數據下,可以對未來數據進行估計。
三、模型的建立與求解
????????針對本次的題目使用了Malthus模型、Logistic模型、改進的Logistics模型、BP神經網絡模型四種模型進行建模。
????????為了更清楚地反應各模型的預測準確度,令1790-2020年間預測人口數和實際人口數偏差之和為:E=∑t=024∣N(t)?Np(t)∣E=\sum_{t=0}^{24} \left | N(t)-N_{p}(t) \right |E=t=0∑24?∣N(t)?Np?(t)∣
其中,t=0,1,…,24t=0,1,…,24t=0,1,…,24分別表示年份1790,1800,…,2020,N(t)N(t)N(t)和Np(t)Np(t)Np(t)分別表示第ttt個年份的實際人口和預測人口數量。
3.1 Malthus模型
- 模型的建立
????????在最簡單的情況下,人口預測采用指數增長函數,建模的思路如下:假定t0=1790t_{0}=1790t0?=1790年的人口數為N0N_{0}N0?,人口增長率rrr為常數,則第ttt年的人口為N(t)N\left ( t \right )N(t)。其數學模型為:{N(t)=N0er(t?t0)=N0erΔtN(0)=N0\left\{\begin{matrix} N\left ( t \right )=N_{0}e^{r\left ( t-t_{0} \right )}=N_{0}e^{r\Delta t }\\ N\left ( 0 \right )=N_{0}\begin{matrix} & & & & & & & \end{matrix} \end{matrix}\right.{N(t)=N0?er(t?t0?)=N0?erΔtN(0)=N0?????????? - 模型的求解
使用MATLAB的cftool工具箱對數據進行擬合:
擬合得:r=0.02222r = 0.02222r=0.02222
模型為:N(t)=3.9?exp(0.02222?(t?1790))N(t)= 3.9*exp(0.02222*(t-1790))N(t)=3.9?exp(0.02222?(t?1790))
3.2 Logistic模型
- 模型的建立
????????馬爾薩斯模型雖然在一定程度上反映了人口數量隨著時間的推移的變化規律,但是根據馬爾薩斯模型隨著時間的推移人口成指數增長,這顯然是不符合事實的。當人口數量較少時,自然資源比較豐富,人口增長相對較快,自然增長率可以在短期維持一個常數。但當人口達到一定水平后,受到自然資源相對稀缺的影響,人口增長率開始下降。設人口自然增長率r(t)=rN(t)[1?N(t)K]r(t)=rN(t)\left [ 1-\frac{N(t)}{K} \right]r(t)=rN(t)[1?KN(t)?],則其數學模型為:{dN(t)dt=rN(t)[1?N(t)K]N(0)=N0\left\{\begin{matrix} \frac{dN\left ( t \right )}{dt}=rN\left ( t \right )\left [ 1-\frac{N\left ( t \right )}{K} \right ]\\ N\left ( 0 \right )=N_{0}\begin{matrix} & & & & & \end{matrix} \end{matrix}\right.{dtdN(t)?=rN(t)[1?KN(t)?]N(0)=N0????????
????????其中,KKK表示最大環境容納量。
????????????????求解該微分方程模型可解得第ttt年的人口數量為N(t)=K1+(KN0?1)e?r(t?t0)N\left ( t \right )=\frac{K}{1+\left ( \frac{K}{N_{0}} -1\right )e^{-r(t-t_{0})}}N(t)=1+(N0?K??1)e?r(t?t0?)K?
- 模型的求解
使用MATLAB的cftool工具箱對數據進行擬合:
擬合得:k=285.9,r=0.0287k =285.9,r = 0.0287k=285.9,r=0.0287
模型為:x(t)=285.9/(1+(285.9/3.9?1)?exp(?0.0287?(t?1790)))x(t) = 285.9/(1+(285.9/3.9-1)*exp(- 0.0287*(t-1790)))x(t)=285.9/(1+(285.9/3.9?1)?exp(?0.0287?(t?1790)))
3.3 改進的Logistic模型
- 模型的建立
????????雖然Logistic模型考慮了環境容納量,認為增長率是隨著人口的增加而遞減的,但是Logistic模型中的增長率是線性遞減的。事實上,隨著人口的增加,人口基數越來越大,出生率也是增大的,導致增長率的減小是逐漸緩慢的。因此,增長率的逐年遞減是非線性的。設人口自然增長率r(t)=rN(t)[1?lnN(t)lnK]r(t)=rN(t)\left [ 1-\frac{lnN(t)}{lnK} \right]r(t)=rN(t)[1?lnKlnN(t)?],則其數學模型為:{dN(t)dt=rN(t)[1?lnN(t)lnK]N(0)=N0\left\{\begin{matrix} \frac{dN\left ( t \right )}{dt}=rN\left ( t \right )\left [ 1-\frac{lnN(t)}{lnK} \right ]\\ N\left ( 0 \right )=N_{0}\begin{matrix} & & & & & & \end{matrix} \end{matrix}\right.{dtdN(t)?=rN(t)[1?lnKlnN(t)?]N(0)=N0?????????
????????????????求解該微分方程模型可解得第ttt年的人口數量為N(t)=K[(N0K)e?r(t?t0)lnK]N(t)=K\left [ (\frac{N_{0}}{K})e^{\frac{-r(t-t_{0})}{lnK}} \right ]N(t)=K[(KN0??)elnK?r(t?t0?)?]
- 模型的求解
使用MATLAB的cftool工具箱對數據進行擬合:
擬合參數得:k=1084,r=0.04687k =1084,r =0.04687k=1084,r=0.04687
模型為:x(t)=1084?((3.9/1084)x(t)= 1084*((3.9/1084)x(t)=1084?((3.9/1084)^exp(?0.04687?(t?1790)/log(1084)))exp(-0.04687*(t-1790)/log(1084)))exp(?0.04687?(t?1790)/log(1084)))
3.4 BP神經網絡模型
- 模型的建立
????????我們將BP神經網絡模型用于對人口增長的預測,在建立的BP神經網絡模型中,輸入為年份ttt,輸出為年份對應的人口數量N(t)N(t)N(t)。輸入和輸出神經元個數均為1,由于三層神經元網絡可以實現對任意非線性問題的逼近,因此設隱藏層為1,神經元個數為2。BP神經網絡結構圖如下圖所示: - 模型的求解
????????用1790-1980年間美國每隔10年的人口數量作為訓練集,用1990-2030年間美國每隔10年的人口數量作為測試集,設訓練次數為1000,訓練目標最小誤差為0.1,學習速率為0.01。代碼如下:
四、人口數量的預測及分析
????????用1790-1980年間美國每隔10年的人口數量作為訓練集去擬合模型,用擬合好的模型去預測1990-2030年間美國每隔10年的人口數量,并計算每個模型所預測的1790-2030年間美國每隔10年的人口數量與真實值之間的誤差和EEE。
表2 1990-2030年間美國每隔10年的人口數量記錄表| 人口(×106)\left (\times 10^{6} \right )(×106) | 250.181 | 282.413 | 310.483 | 326.767 | —— |
- Malthus模型
| 人口(×106)\left (\times 10^{6} \right )(×106) | 331.9474 | 414.5429 | 517.6900 | 646.5022 | 807.3656 |
經過預測后計算可得, Malthus模型預測的總誤差為1070.944344(百萬)。
- Logistic模型
| 人口(×106)\left (\times 10^{6} \right )(×106) | 231.9765 | 243.4314 | 252.8001 | 260.3193 | 266.2630 |
經過預測后計算可得, Logistic模型預測的總誤差為265.616329(百萬)。
- 改進的Logistic模型
| 人口(×106)\left (\times 10^{6} \right )(×106) | 248.8625 | 273.7884 | 299.3514 | 325.4116 | 351.8302 |
經過預測后計算可得, 改進的Logistic模型預測的總誤差為67.551021(百萬)。
- BP神經網絡模型
| 人口(×106)\left (\times 10^{6} \right )(×106) | 252.1015 | 277.7805 | 303.0367 | 327.2741 | 349.9891 |
經過預測后計算可得, BP神經網絡模型預測的總誤差為54.471387(百萬)。
- 四種模型預測結果對比
????????四種模型對1990-2030年的美國人口進行預測的結果進行對比如上表所示,可以看出Malthus模型、Logistic模型、改進的Logistic模型、BP神經網絡模型四種模型中Malthus模型的誤差是最大的,而BP神經網絡模型的誤差是最小的,可以說明對這一時期的美國人口而言,BP神經網絡模型的效果是比較好的。
總結
以上是生活随笔為你收集整理的数学建模(一)—— 人口增长模型的确定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新黑客攻防实战从入门到精通(第二版)_
- 下一篇: Linux串口驱动(5) - read详