人口預測模型

青春不迷、夜半聽雨發表於2019-01-20

下面來介紹一下MATLAB中如何實現對某地區的人口情況進行有效的預測和體現:

1、在MATLAB的編輯器中輸入下列程式碼:

% 讀入人口資料(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:30, 
   x(t)=exp(-t);
   y(t)=1/Y(t);
end
% 計算,並輸出迴歸係數B
c=zeros(30,1)+1;
X=[c,x'];
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)

2、命名儲存至自定義路徑下,點選執行,結果如下:

   

 

至此,基本介紹完畢,請大家繼續關注!!!

相關文章