用阻滞模型求解人口预估问题,代码如下:
x=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,...
106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4,309.35]';
n=length(x);
y=x(1:n);%1790 年到 2010 年数据
t=(1:n)';
beta0=[5.3,0.22,400,]; %[x0,r,xm]
[beta,R,J]=nlinfit(t,y,'logisfun',beta0);
%R 为残差,beta 为待求参数
py=beta(3)./(1+(beta(3)/beta(1)-1)*exp(-beta(2)*t));%预测各年人口
p24=beta(3)./(1+(beta(3)/beta(1)-1)*exp(-beta(2)*24));%预测 2020 年人口
rmse=sqrt(sum(R.^2)/n); %均方误差根
plot(1:n,y,'*',1:n,py); %作对比图
%logisfun.m
function yhat=logisfun(beta,x)
yhat=beta(3)./(1+(beta(3)./beta(1)-1).*exp(-beta(2)*x));
运行结果很理想,得到了人口模型的拟合曲线,如下:

这个做好了之后想把该模型移植用于预测某省未来40年的平均工资,代码如下:
x=[0.0566,0.0632,0.0745,0.0755,0.0769,0.0789,0.0985,0.1110,0.1313,0.1428,0.1782,

博客介绍了如何使用Logistic阻滞模型进行人口预估,并展示了代码实现和理想的拟合结果。但在将模型移植到预测某省未来40年平均工资时,遇到了秩不足的报错,导致模型无法正常运行。作者对错误原因感到困惑,寻求解决方案。
最低0.47元/天 解锁文章
295

被折叠的 条评论
为什么被折叠?



