多语言展示
当前在线:1132今日阅读:75今日分享:44

如何使用matlab建立人口预测模型

在数学建模和学习中,我们有时可能需要建立一些非线性的模型,显然非线性模型计算量相对线性模型更加复杂。因此,有时我们需要将一些非线性模型转化为线性模型进行处理,借助相对成熟的线性模型来研究复杂的非线性模型,不仅能大大减少我们的计算量,更便于我们对模型进行检验和修正。下面我们通过matlab来建立Logistic人口预测模型,并将其转化为线性模型进行处理。
工具/原料
1

matlab

2

Logistic 方程

方法/步骤
1

常见人口预测模型有Logistic模型,人口指数增长模型,当然我们也可以采用人工神经网络及灰色预测模型来建立人口预测模型。接下来,我将以Logistic模型为例示范如何将一个非线性模型转化为线性模型并进行模型参数求解与检验,首先,我们有Logistic方程来推导Logistic人口模型,过程如下图:

3

接下来,通过变化将Logistic模型转化为线性模型,过程如下:

4

然后,再使用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-');

6

最后,运行程序得到F检验值及回归系数的值还有Logistic人口预测模型拟合优度。

注意事项
1

本经验面向初学者,不涉及一些更深内容,请大家勿喷。

2

有兴趣的网友可以建立BP神经网络或者灰色预测模型来与Logistic模型进行对比,进一步加深了解。

3

如果本经验对你有所帮助,请点击左下角的投票按钮为作者投票,谢谢!

推荐信息