matlab
Logistic 方程
常见人口预测模型有Logistic模型,人口指数增长模型,当然我们也可以采用人工神经网络及灰色预测模型来建立人口预测模型。接下来,我将以Logistic模型为例示范如何将一个非线性模型转化为线性模型并进行模型参数求解与检验,首先,我们有Logistic方程来推导Logistic人口模型,过程如下图:
接下来,通过变化将Logistic模型转化为线性模型,过程如下:
然后,再使用matlab进行该线性模型的参数求解及检验,代码如下:%%人口预测模型 %下面有某地区30年的人口数据,试给出该地区人口增长的数学模型 clear;clc y=[33815 33981 34 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=年份-起始年份 T=1:30; %对数据作线性处理 for i=1:30, x(i)=exp(-i); Y(i)=1/y(i); 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'; %计算回归误差平方和 Q=w*w'; %计算回归平方和 U=S-Q; %计算并输出F检验值 F=28*U/Q %计算非线性回归模型的拟合值 for j=1:30, p(j)=1/(b(1,1)+b(2,1)*exp(-j)); end %输出非线性回归模型的拟合曲线 plot(T,y) hold on plot(T,p,'r-');
最后,运行程序得到F检验值及回归系数的值还有Logistic人口预测模型拟合优度。
本经验面向初学者,不涉及一些更深内容,请大家勿喷。
有兴趣的网友可以建立BP神经网络或者灰色预测模型来与Logistic模型进行对比,进一步加深了解。
如果本经验对你有所帮助,请点击左下角的投票按钮为作者投票,谢谢!