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