内容发布更新时间 : 2024/11/19 15:37:28星期一 下面是文章的全部内容请认真阅读。
数据拟合应用实例 —— 人口预测模型
源代码 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: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)
运行结果
Y =
Columns 1 through 9
33815 33981 34004 34344 34458 34498
Columns 10 through 18
34476 34483 34488 34520 34507 34509
Columns 19 through 27
34521 34513 34515 34521 34521 34523
Columns 28 through 30
34525 34525 34527 T =
Columns 1 through 18
1 2 3 4 5 6 7 14 15 16 17 18
Columns 19 through 30
19 20 21 22 23 24 25 B =
34165 34513 34517 8 26 27 34212 34327 34497 34511 34519 34519 9 10 11 12 13 28 29 30
1.0e-04 *
0.2902 0.0182 F =
47.8774 拟合图像 >>
通过拟合判断人口增长趋势