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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

数学模型——人口增长模型(基于python)

發布時間:2024/8/1 python 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学模型——人口增长模型(基于python) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用人口增長模型

????????如果已知今年人口為,年增長率為r,一般使用公式這是在增長率r保持不變的情況下做出的,但實際上,不可能不變,而且還有其他影響因素。說白了,這只是一個預測模型,需要我們考慮到會影響變量的各種因素去優化已有模型。

人口增長模型的建立

一、初始模型

????????當我們試圖考察一個國家或地區的人口隨著時間延續而變化的規律時,就可以利用微積分,將人口看作是連續時間t的連續可微函數x(t),記初始時刻(t=0)時的人口為,假設單位時間人口增長率為常數r,rx(t)就是單位時間內x(t)的增長量。得到微分方程

易得出,此時,當r>0,人口將呈指數增長,這個模型也被稱為Malthus人口模型。

????????那么,如何用python去解這樣一個微分方程呢?首先,我們設置初值,時間t為0,對應的人口為6.0496(單位:百萬)使用python的scipy庫進行求解,用matplotlib庫進行展示。

from scipy.integrate import odeint import numpy as np import matplotlib.pyplot as plt import pandas as pddata = pd.read_csv('data.csv') # 導入數據'''人口指數增長模型''' # 初級模型:dx/dt=rx,x(0)=x0(初始時刻),x(t)表示t時刻下的人口 def expbase(x,t):r = 0.2020 # 把人口增長率看做常數return np.array(r*x+0*t)t = np.arange(0,25,1) # 設置時間序列 a = odeint(expbase,6.4096,t) # 設置初始值x0為6.4096 plt.plot(a) plt.scatter(data['t'],data['x'],c='r') plt.show()

?

? ? ? 這里的r和是通過data里的數據,使用參數估計得出來的,常用的就是最小二乘估計,可以利用已知的數據來獲取,不過需要我們先把微分方程換成線性方程形式

????????觀察結果,可以發現,在短期內,對人口增長的預測還是比較準確的,但人口不會一直指數增長,所以在時間后,就可以發現已經明顯偏離,故需要對模型進行進一步優化。

二、對增長率進行改進的增長模型

????????結合實際,把r視為t的函數r(t),假設(為什么要設置成這種形式,實際上需要我們對已有數據進行分析進行判斷)。所以,此時的指數增長模型為

? ? ?利用已知數據,使用最小二乘法估計出此時。

def change(x,t):r = 0.3252R = 0.0114return np.array(r-R*t)*xT = np.arange(0,30,1) x = odeint(change,3.9,T) plt.scatter(data['t'],data['x'],c='r') plt.plot(x) plt.show()

?

????????此時,通過觀察縱坐標的上限對比一二可以發現,精度確實比較高了一點(當然縱軸區間都一致),在人口預測上,已經較為擬合(當然使用不同的參數估計方法,得出不一樣的值,或許可以更好的估計)。但是這還不夠,指數增長模型不能進行長期的預測,而且影響人口增長率的因素有很多,需要知道阻滯作用較大的因素。

三、logistic模型

????????可以注意到,自然資源,環境因素對人口的阻滯影響較大,而且,人口越大,阻滯作用越大,此時,指數增長模型就不適用了,對于長期的預測,使用logistic模型。為此,設置最大人口數,當達到資源與環境所能容納的最大人口時,人口數量不會再增長。

????????設置r隨人口增長而下降的減函數,令x=0時的增長率為r,即r(0)=r=a,當達到最大人口時,,故此時。易得此時的微分方程為

? ? ? 通過以往數據和非線性最小二乘法估計得出

?

? ? ? ? ?對比一二,就可以發現,此時的預測就較為符合現實,logistic模型比指數增長模型作到更好的預測,適用于長期的預測。

? ? ? ? ?至于其他影響因素,需要我們查詢相關文獻資料,來探索,當然,并非影響因素越多越好,總會出現一些意料之外的事。

? ? ? ? 本篇完結!

總結

以上是生活随笔為你收集整理的数学模型——人口增长模型(基于python)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。