题主给出中国人口预测问题(二),可以使用英国经济学家马尔萨斯提出的Malthus模型来拟合与预测。其步骤:
第一步,自定义Malthus模型函数(指数函数),如
func=@(k,t)N0*exp(D*(t-t0))
这里,N0=60.2;t0=1954;
第二步,利用1954-2005年的数据,分别使用lsqcurvefit函数,求出系数D。即
[D,resnorm,residual,exitflag]=lsqcurvefit(func,a0,t,N);
第三步,计算拟合值,即
x1=func(D,t);
第四步,计算相关系数R^2,即
R2=R2_fun(x,x1);
第五步,预测2010年和2030年的人口数,即
xhat=func(D,2010);
disp(['预测2010年人口数为',num2str(xhat),'千万'])
xhat=func(D,2030);
disp(['预测2030年人口数为',num2str(xhat),'千万'])
第六步,使用plot函数绘制,中国人口数的统计数据与预测模型曲线对比图,即
plot(t,x,'*-',t,x1,'+-')
第七步,标注图例,即
legend('统计数据','Malthus模型')
第八步,编写标题,即
title='中国人口数的统计数据与Malthus模型曲线对比';
第九步,标注坐标轴名称,即
xlabel('年份');ylabel('人口(千万)');
最后,编写程序,并运行可以得到如下结果。
其他问题与上述过程类似。