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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

人口增长模型——基于matlab语言

發布時間:2024/8/1 循环神经网络 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人口增长模型——基于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()函數,通過已知的真實人口數據,就可得出計算結果,計算代碼:
  • % 人口預測 y1=1:22; p1=[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 105.7 122.8 131.7 150.7...179.3 203.2 226.5 248.7 281.4]; % 方法一 r1=polyfit(y1,log(p1),1); exp(polyval(r1,1790)); plot(y1,p1,'.',y1,exp(polyval(r1,y1))); grid on

    1.2.求解參數結果:r(1)代表增長率,求解r結果截圖

    1.3.用方法一繪制圖像結果如下:

    1.4.用方法一獲取參數計算人口數量如圖

    2.方法二:先對人口數據作數值微分,在計算增長率并將其平均值作為r的估計值,x0直接采用原始數據;需要注意的是這里采用的數值微分是利用差分法求其平均值進行的計算;
    2.1.求解代碼:

    % 方法二 x1=zeros(1,22); x1(1,1)=(-3*p1(1,1)+4*p1(1,2)-p1(1,3))/2/p1(1); for i=2:21x1(1,i)=(p1(1,i+1)-p1(1,i-1))/2/p1(i); end x1(1,22)=(p1(1,22-2)-4*p1(1,22-1)+3*p1(1,22))/2/p1(22); x2=mean(x1); r2=zeros(1,22); r2(1)=p1(1); for i=2:22r2(i)=p1(1)*exp(x2*(i-1)); end plot(y1,p1,'.',y1,r2);

    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.利用最小二乘法求解改進模型的參數代碼:

    % 改進的指數增長模型 x3=polyfit(y1,x1,1); r3=zeros(1,22); r3(1)=p1(1); for i=2:22r3(i)=p1(1)*exp(0.3252*(i-1)-0.0114*(i-1)^2/2); end plot(y1,p1,'*',y1,r3) grid on

    3.用改進的指數增長模型計算美國人口圖像如下:

    4.所計算的人口如下:

    五、logistics模型
    1.產生原因:在分析人口增長到一定數量后增長率下降的主要原因時,人們注意到,自然資源、環境條件等因素對人口的增長起著阻滯的作用,并且隨著人口的增加,阻滯作用越來越大,logistic模型就是考慮到這些因素,對指數增長模型的基本假設進行修改后得到的;
    2.logistic方程:dx/dt=rx(1-x/xm);
    3.logistics模型的參數估計也有兩種方法,方法一是對人口數據進行數值微分后計算增長率,方法二是直接用人口數據和非線性最小二乘法估計r,x0,xm;
    4.方法一計算代碼:

    %原始增長率見p142的表三 t1=0:21; rr=[0.2949 0.3113 0.2986 0.2969 0.2907 0.3012 0.3082...0.2452 0.2435 0.2420 0.2051 0.1914 0.1614 0.1457...0.1059 0.1059 0.1579 0.1464 0.1161 0.1004...0.1104 0.1349] %擬合增長率 pp=polyfit(t,rr,1) RR=polyval(pp,t) plot(t1,rr,'*',t1,RR,'b'); grid on %求解人口 x4=polyfit(p1,x1,1); xm=-x4(2)./x4(1); xt=xm./(1+(xm./p1(1)-1).*exp(-x4(2).*t)); %axis([0 22 -inf inf]) r4=zeros(1,22); r4(1)=p1(1); for i=2:22r4(i)=xm./(1+(xm./p1(1)-1).*exp(-x4(2).*(i-1))); endplot(y1,p1,'*',y1,r4) grid on

    5.方法一所得參數如下:

    6.方法一獲得的人口增長率繪制圖像如下:

    7.方法一的參數擬合圖像如下:

    8.方法一獲得的人口數值如下

    9.方法二計算代碼

    x4_1=polyfit(p1,x1,2); xm_1=-x4_1(2)/x4_1(1); r4_1=zeros(1,22); r4_1(1)=7.6962; for i=2:22r4_1(i)=443.9931/(1+(443.9931/7.6962-1)*exp(-0.2155*(i-1))); endplot(y1,p1,'*',y1,r4_1) grid on

    10.方法二估計參數圖像:

    11.方法二估計人口數值

    寫文章是為了記錄存檔,可能排版比較拉跨,但源碼皆粘貼可用,若有幫到你,請給個贊以表示鼓勵!!!!

    總結

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

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