人口增长模型——基于matlab语言
標題數學建模:人口增長模型——基于matlab語言
寫文章是為了記錄存檔,可能排版比較拉跨,但源碼皆粘貼可用,若有幫到你,請給個贊以表示鼓勵!!!!
一. 建立模型背景:通過已知的人口數據,研究人口變化規律,建立人口數學模型描述人口發展的規律。做出較準確的增長預測,是指定積極、穩妥的人口政策的前提。
二. 人口指數增長模型的建立:當考察一個較大地區的人口隨著時間延續而變化的規律時,為了利用微積分這一數學工具。可以將人口看作連續時間t的連續可微函數x(t)。記初始時刻(t=0)的人口為x0.假設單位時間人口增長率為常熟r,rx(t)就是單位時間內x(t)的增量dx/dt,于是得到滿足的微分方程和初始條件是dx/dt=rx,x(0)=x0,進而得出x(t)=x0e^(rt);這兩個公式稱為指數增長模型;
三. 指數增長模型的參數估計:包括兩種方法;
1.1求解方法:在matlab中,要通過線性最小二乘法預測參數系數,我們是使用polyfit()函數,通過已知的真實人口數據,就可得出計算結果,計算代碼:
1.2.求解參數結果:r(1)代表增長率,求解r結果截圖
1.3.用方法一繪制圖像結果如下:
1.4.用方法一獲取參數計算人口數量如圖
2.方法二:先對人口數據作數值微分,在計算增長率并將其平均值作為r的估計值,x0直接采用原始數據;需要注意的是這里采用的數值微分是利用差分法求其平均值進行的計算;
2.1.求解代碼:
2.2.求解參數結果:
2.3.用方法二計算參數繪制參數圖像如下:
2.4.用方法二得到的參數計算出的人口數量如下:
四、改進的指數增長模型
1.改進原因:增長率r從19世紀上半葉的0.03年左右,下降到20世紀末只略大于0.01年,針對這么大的變化,應該改進指數增長模型(4)中人口增長率為常熟的假設,將r視為t的函數r(他),即改寫方程為dx/dt=r(t)x=(r0-r1t)*x,x(0)=x0;
2.利用最小二乘法求解改進模型的參數代碼:
3.用改進的指數增長模型計算美國人口圖像如下:
4.所計算的人口如下:
五、logistics模型
1.產生原因:在分析人口增長到一定數量后增長率下降的主要原因時,人們注意到,自然資源、環境條件等因素對人口的增長起著阻滯的作用,并且隨著人口的增加,阻滯作用越來越大,logistic模型就是考慮到這些因素,對指數增長模型的基本假設進行修改后得到的;
2.logistic方程:dx/dt=rx(1-x/xm);
3.logistics模型的參數估計也有兩種方法,方法一是對人口數據進行數值微分后計算增長率,方法二是直接用人口數據和非線性最小二乘法估計r,x0,xm;
4.方法一計算代碼:
5.方法一所得參數如下:
6.方法一獲得的人口增長率繪制圖像如下:
7.方法一的參數擬合圖像如下:
8.方法一獲得的人口數值如下
9.方法二計算代碼
10.方法二估計參數圖像:
11.方法二估計人口數值
寫文章是為了記錄存檔,可能排版比較拉跨,但源碼皆粘貼可用,若有幫到你,請給個贊以表示鼓勵!!!!
總結
以上是生活随笔為你收集整理的人口增长模型——基于matlab语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 松下plc安装序列号afpsgr7_《松
- 下一篇: 黑客帝国动态特效代码