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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据拟合丨人口预测模型

發布時間:2023/12/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据拟合丨人口预测模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據擬合丨人口預測模型


路漫漫其修遠兮,吾將上下而求索

??下表所列是某地區1971一2000年的人口數據,試給出該地區人口增長的數學模型。

年 份時間變量 tt=年份-1970人口 yy/人年 份時間變量 tt=年份-1970人口 yy/人
197113381519861634520
197223398119871734507
197333400419881834509
197443416519891934521
197553421219902034513
197663421719912134515
197773434419922234517
197883445819932334519
197993449819942434519
1980103447619952534521
1981113448319962634521
1982123448819972734523
1983133451319982834525
1984143449719992934525
1985153451120003034527

??根據表中的數據,做出散點圖,如圖所示。
??由圖可以看出,人口隨時間的變化呈非線性變化,而且存在一個與橫坐標軸平行的漸近線,故可以用Logistic曲線模型進行擬合。

??因為Logistic曲線模型的基本形式為

y=1a+be?ty=1a+be?t
??所以,只要令 y=1yx=e?ty′=1y,x′=e?t,就可以將其轉化為直線模型
y=a+bxy′=a+bx′
?? 下面,用MATLAB進行回歸分析擬合計算。回歸擬合程序如下:

clear clc % 讀入人口數據(1971-2000年) Y=[33815 33981 34004 34165 34212 34327 34344 34458 34498 34476 34483 34488 34513 34497 34511 34520 34507 34509 34521 34513 34515 34517 34519 34519 34521 34521 34523 34525 34525 34527] % 讀入時間變量數據(t=年份-1970) T=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30] % 線性化處理 for t=1:30x(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:\file.xlsx',1,'B1:B30');%讀取數據 Y=Y'; T=xlsread('D:\file.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)

??運行結果:

總結

以上是生活随笔為你收集整理的数据拟合丨人口预测模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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