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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

人口logistic模型公式_人口预测模型Matlab实现Logistic曲线模型

發布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人口logistic模型公式_人口预测模型Matlab实现Logistic曲线模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據:

年份

時間變量t=年份-1970

人口y

年份

時間變量t=年份-1970

人口y

1971

1

33815

1986

16

34520

1972

2

33981

1987

17

34507

1973

3

34004

1988

18

34509

1974

4

34165

1989

19

34521

1975

5

34212

1990

20

34513

1976

6

34217

1991

21

34515

1977

7

34344

1992

22

34517

1978

8

34458

1993

23

34519

1979

9

34498

1994

24

34519

1980

10

34476

1995

25

34521

1981

11

34483

1996

26

34521

1982

12

34488

1997

27

34523

1983

13

34513

1998

28

34525

1984

14

34497

1999

29

34525

1985

15

34511

2000

30

34527

Logistic模型的基本形式是:

y=1/(a+b*exp(-t))

所以令y'=1/y; ?x'=exp(-t)強曲線轉化成直線模型

y'=a+b*x'

Matlab代碼進行分析擬合計算:

代碼一:(數據較少時刻意采用這種方式,直接在代碼中輸入數據)

clear

clc

% 讀入人口數據(1971-2000年)

Y=[338153398134004341653421234327343443445834498344763448334488345133449734511345203450734509345213451334515345173451934519345213452134523345253452534527]

% 讀入時間變量數據(t=年份-1970)

T=[123456789101112131415161718192021222324252627282930]

% 線性化處理

for t = 1:30,

x(t)=exp(-t);

y(t)=1/Y(t);

end

% 計算,并輸出回歸系數B,即計算回歸方程 y'=a+bx' 中的a和b的值

c=zeros(30,1)+1;

X=[c,x'];%相當于30個方程組,求解a和b 的值.

B=inv(X'*X)*X'*y'

for i=1:30,

% 計算回歸擬合值

z(i)=B(1,1)+B(2,1)*x(i);

% 計算離差

s(i)=y(i)-sum(y)/30;

% 計算誤差

w(i)=z(i)-y(i);

end

% 計算離差平方和S

S=s*s';

% 回歸誤差平方和Q

Q=w*w';

% 計算回歸平方和U

U=S-Q;

% 計算,并輸出F檢驗值

F=28*U/Q

% 計算非線性回歸模型的擬合值

for j=1:30,

Y(j)=1/(B(1,1)+B(2,1)*exp(-j));

end

% 輸出非線性回歸模型的擬合曲線(Logisic曲線)

plot(T,Y,'r*')

擬合圖形:

改進的代碼(當數據較多時,從Excel中讀取數據):

clear

clc

Y=xlsread('D:\sun1.xlsx',1,'B1:B30');%讀取數據

Y=Y';

T=xlsread('D:\sun1.xlsx',1,'A1:A30');%讀取數據

T=T';

for t=1:30,

x(t)=exp(-t);

y(t)=1/Y(t);

end

c=zeros(30,1)+1;

X=[c,x'];

B=inv(X'*X)*X'*y'%B=inv(X'*X)*X'*y'

for i=1:30,

z(i)=B(1,1)+B(2,1)*x(i);

s(i)=y(i)-sum(y)/30;

w(i)=z(i)-y(i);

end

S=s*s';

Q=w*w';

U=S-Q;

F=28*U/Q

for j=1:30,

Y(j)=1/(B(1,1)+B(2,1)*exp(-j));

end

plot(T,Y)

擬合曲線圖形:

輸出結果:

回歸系數B及F檢驗值:

B =

1.0e-04 *

0.2902

0.0182

F =

47.8774

總結

以上是生活随笔為你收集整理的人口logistic模型公式_人口预测模型Matlab实现Logistic曲线模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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