日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数学建模(一)—— 人口增长模型的确定

發(fā)布時(shí)間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学建模(一)—— 人口增长模型的确定 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  • 一、題目要求
  • 二、相關(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ù)量記錄表 年份17901800181018201830184018501860187018801890190019101920193019401950196019701980
人口(×106)\left (\times 10^{6} \right )(×106)3.95.37.29.612.917.123.231.438.650.262.976.092.0106.5123.2131.7150.7179.3204.0226.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=024?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.9r=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=1084r=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。代碼如下:
%利用BP神經(jīng)網(wǎng)絡(luò)對(duì)人口進(jìn)行預(yù)測(cè) clear clc%%% 讀取原始數(shù)據(jù) num=xlsread('E:\MATLAB\R2012a\bin\數(shù)學(xué)建模\1790-1980間美國(guó)人口數(shù)據(jù).xlsx'); %num返回的是excel中的數(shù)據(jù) year=num(1,:); population=num(2,:);%%% 利用已知數(shù)據(jù)訓(xùn)練BP網(wǎng)絡(luò) x=year; y=population; net=newff(x,y,2); %生成輸入、輸出均為一個(gè)神經(jīng)元,隱含層2個(gè)神經(jīng)元的BP網(wǎng)絡(luò) net.trainParam.epochs = 1000; % 訓(xùn)練次數(shù),這里設(shè)置為1000次(訓(xùn)練的最大次數(shù)) net.trainParam.goal = 0.1; % 訓(xùn)練目標(biāo)最小誤差,這里設(shè)置為0.1 net.trainParam.lr = 0.01; % 學(xué)習(xí)速率,這里設(shè)置為0.01 net=train(net,x,y); %訓(xùn)練網(wǎng)絡(luò)%%% 預(yù)測(cè)1790-1980間人口數(shù)量 population_pre=sim(net,year); plot(year,population,'*b','MarkerSize',8);hold on plot(year,population_pre,'or','MarkerSize',8);hold on plot(year,population,'b','LineWidth',2);hold on plot(year,population_pre,'r','LineWidth',2);grid on legend('人口自然增長(zhǎng)','擬合曲線') xlabel('年份') ylabel('人口/百萬(wàn)') title('利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行人口預(yù)測(cè)')%%% 預(yù)測(cè)1980-2030間人口數(shù)量 Year_pre=1790:10:2030; Population_pre_BP=sim(net,Year_pre);% 在m文件中向Simulink模型傳遞參數(shù),并運(yùn)行模型,得到模型運(yùn)行的結(jié)果數(shù)據(jù) POPUS=[population,250.181,282.413,310.483,326.767]; errors=sum(abs(Population_pre_BP(1:end-1)-POPUS)); fprintf('總誤差:%f\n',errors) save Population_pre_BP Population_pre_BP

四、人口數(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ù)量記錄表 年份19902000201020202030
人口(×106)\left (\times 10^{6} \right )(×106)250.181282.413310.483326.767——
  • Malthus模型
表3 Malthus模型對(duì)1990-2030年間美國(guó)每隔10年的人口數(shù)量進(jìn)行預(yù)測(cè)的結(jié)果 年份19902000201020202030
人口(×106)\left (\times 10^{6} \right )(×106)331.9474414.5429517.6900646.5022807.3656

經(jīng)過(guò)預(yù)測(cè)后計(jì)算可得, Malthus模型預(yù)測(cè)的總誤差為1070.944344(百萬(wàn))。

  • Logistic模型
表4 Logistic模型對(duì)1990-2030年間美國(guó)每隔10年的人口數(shù)量進(jìn)行預(yù)測(cè)的結(jié)果 年份19902000201020202030
人口(×106)\left (\times 10^{6} \right )(×106)231.9765243.4314252.8001260.3193266.2630

經(jīng)過(guò)預(yù)測(cè)后計(jì)算可得, Logistic模型預(yù)測(cè)的總誤差為265.616329(百萬(wàn))。

  • 改進(jìn)的Logistic模型
表5 改進(jìn)的Logistic模型對(duì)1990-2030年間美國(guó)每隔10年的人口數(shù)量進(jìn)行預(yù)測(cè)的結(jié)果 年份19902000201020202030
人口(×106)\left (\times 10^{6} \right )(×106)248.8625273.7884299.3514325.4116351.8302

經(jīng)過(guò)預(yù)測(cè)后計(jì)算可得, 改進(jìn)的Logistic模型預(yù)測(cè)的總誤差為67.551021(百萬(wàn))。

  • BP神經(jīng)網(wǎng)絡(luò)模型
表6 BP神經(jīng)網(wǎng)絡(luò)模型對(duì)1990-2030年間美國(guó)每隔10年的人口數(shù)量進(jìn)行預(yù)測(cè)的結(jié)果 年份19902000201020202030
人口(×106)\left (\times 10^{6} \right )(×106)252.1015277.7805303.0367327.2741349.9891

經(jīng)過(guò)預(yù)測(cè)后計(jì)算可得, BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)的總誤差為54.471387(百萬(wàn))。

  • 四種模型預(yù)測(cè)結(jié)果對(duì)比
表7 四種模型對(duì)1990-2030年間美國(guó)每隔10年的人口數(shù)量進(jìn)行預(yù)測(cè)的結(jié)果進(jìn)行對(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。