數(shù)學(xué)建模:人口增長模型
模型目標(biāo):
通過給定的一組人口增長數(shù)據(jù),預(yù)測后續(xù)的人口增長情況.
一、指數(shù)增長模型
假設(shè)增長率不變:
若已知人口年增長率為r,今年人口為
x
0
x_0
x0?,預(yù)測k年后的人口可以用簡單的公式得到:
x
k
=
x
0
(
1
+
r
)
k
x_k = x_0(1+r)^k
xk?=x0?(1+r)k
*以美國人口為例,數(shù)據(jù)點取下表:
用matlab輸入好數(shù)據(jù):
p = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92 105.7 122.8 131.7 150.7 179.3 203.2 226.5 248.7 281.4];
該公式得到的人口增長模型如下圖(matlab作圖):
選取的增長率0.2與實際的人口數(shù)據(jù)點貼合度差,于是進一步建立模型,找到偏差更小的增長率r
精確化增長率r
把人口看作關(guān)于時間的可微函數(shù)
x
(
t
)
x(t)
x(t),記
x
(
0
)
=
x
0
x(0) = x_0
x(0)=x0?
r
x
0
rx_0
rx0? 即為單位時間
x
(
t
)
x(t)
x(t) 的增長量
所以得到微分方程:
d
x
d
t
=
r
x
,
x
(
0
)
=
x
0
\frac{dx}{dt} = rx , x(0)=x_0
dtdx?=rx,x(0)=x0?
解得:
x
(
t
)
=
x
0
e
r
t
x(t) = x_0e^{rt}
x(t)=x0?ert
上述公式即位指數(shù)增長模型
數(shù)據(jù)擬合:
接下來對指數(shù)增長模型的參數(shù)進行估計,即數(shù)據(jù)擬合
·法一
用人口數(shù)據(jù)和線性最小二乘法,對上式取對數(shù):
y
=
r
t
+
a
,
y
=
l
n
x
,
a
=
l
n
x
0
y = rt +a , y=lnx,a=lnx_0
y=rt+a,y=lnx,a=lnx0?
用matlab進行編程擬合:
%取1790年為t=0,數(shù)據(jù)點取到2000年
t=0:10:210;
lnp = log(p);
cftools
解得:
r
=
0.202
,
x
0
=
e
1.8
=
6.049
r = 0.202,x_0 = e^{1.8} = 6.049
r=0.202,x0?=e1.8=6.049
帶入得
x
(
t
)
=
6.049
e
0.0202
t
x(t) = 6.049 e^{0.0202t}
x(t)=6.049e0.0202t
·法2
對人口數(shù)據(jù)做數(shù)值微分,計算平均值r‘,x0直接選用原始數(shù)據(jù).
函數(shù)在各點的近似導(dǎo)數(shù)值為(數(shù)值微分中點公式):
x
′
(
t
k
)
=
x
k
+
1
?
x
k
?
1
2
Δ
t
,
?
(
k
=
1
,
2
,
3
,
.
.
.
,
n
?
1
)
x'(t_k) = \frac{x_{k+1}-x_{k-1}}{2\Delta t},\\\ \\(k=1,2,3,...,n-1)
x′(tk?)=2Δtxk+1??xk?1??,?(k=1,2,3,...,n?1)
x
′
(
0
)
=
4
x
1
?
3
x
0
?
x
2
2
Δ
t
,
x
′
(
n
)
=
?
4
x
n
?
1
+
3
x
n
+
x
n
?
2
2
Δ
t
x'(0) = \frac{4x_1-3x_0-x_2}{2 \Delta t}, x'(n) = \frac{-4x_{n-1}+3x_{n}+x_{n-2}}{2 \Delta t}
x′(0)=2Δt4x1??3x0??x2??,x′(n)=2Δt?4xn?1?+3xn?+xn?2??
那么增長率為:
r
(
t
k
)
=
x
′
(
t
k
)
x
(
t
k
)
r(t_k)=\frac{x'(t_k)}{x(t_k)}
r(tk?)=x(tk?)x′(tk?)?
*公式相關(guān)推導(dǎo)可參考數(shù)值計算方法 第六章 數(shù)值積分和數(shù)值微分
增長率
r
k
=
x
′
(
t
k
)
x
(
t
k
)
r_k=\frac{x'(t_k)}{x(t_k)}
rk?=x(tk?)x′(tk?)?再取平均值得到r = 0.0205
改進的指數(shù)增長模型
上述模型對于增長率r不變的假設(shè)導(dǎo)致預(yù)測曲線與實際偏差較大
所以改進模型中假設(shè) r 為 t 的函數(shù)
r
(
t
)
r(t)
r(t) , 根據(jù)上述法2的
x
′
(
t
)
x'(t)
x′(t) 畫r—t圖像:
r=[];
for i=1:22
if i == 1
r(i)=(4*p(i+1)-3*p(i)-p(i+2))/(20*p(i));
elseif i == 22
r(i)=(-4*p(i-1)+3*p(i)+p(i-2))/(20*p(i));
else
r(i)=(p(i+1)-p(i-1))/(20*p(i));
end
end
plot(t,r,'.','MarkerSize',20);
ylim ([0.005,0.04]);
xlabel('t');
ylabel('增長率r');
根據(jù)散點圖假設(shè)
r
(
t
)
=
r
0
?
r
1
t
r(t)=r_0-r_1t
r(t)=r0??r1?t的線性函數(shù),用最小二乘法線性擬合得到:
r
0
=
0.03252
,
?
r
1
=
0.0001143
r_0 = 0.03252,\space r_1 = 0.0001143
r0?=0.03252,?r1?=0.0001143
根據(jù)微分方程:
d
x
/
d
t
=
r
(
t
)
x
dx/dt=r(t)x
dx/dt=r(t)x
?
x
(
t
)
=
x
0
e
(
r
0
t
?
r
1
t
2
/
2
)
\Rightarrow x(t) = x_0 e^{(r_0t-r_1t^2/2)}
?x(t)=x0?e(r0?t?r1?t2/2)
把擬合后的參數(shù)帶入:
xt2 = 3.9.*exp(0.03252.*t-0.0001143.*t.^2./2);
plot(t,xt2,'LineWidth',1);
最終根據(jù)改進模型預(yù)測的2010年人口為290million,與實際數(shù)據(jù)281.4吻合度較高.顯然改進后的模型優(yōu)于前兩者.
二、logistic模型
改進的指數(shù)增長模型中增長率線性下降,但沒有體現(xiàn)其下降的相關(guān)影響因素,只是以時間為變量.logistic模型考慮了自然資源,環(huán)境等對人口增長的阻滯作用.文章來源:http://www.zghlxwxcb.cn/news/detail-426744.html
未完…文章來源地址http://www.zghlxwxcb.cn/news/detail-426744.html
到了這里,關(guān)于數(shù)學(xué)建模:人口增長模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!