MATLAB人口数量预测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB人口数量预测
实验报告
一,实验目的:
1.、学会用matlab软件进行数据拟合;
2、了解利用最小二乘法进行数据拟合的基本思想,掌握用数据拟合法寻找最佳拟合曲线的方法;
3、了解多元函数的机制在数据拟合法中的应用;
4、通过对实际问题进行分析研究,初步掌握建立数据拟合数学模型的方法。
二.问题分析及建立模型
1.多项式拟合
对于已知数据点,如果选用拟合基函数为幂函数类1,x,x2,x3….xm,则拟合函数为一个m次多项式函数。
y=f(x)=a m*x m+a m-1*x m-1+…a1*x+a0
根据最小二乘法你和思想,问题归结为求m+1元函数
Q(a0,a1,…a m)=∑(a m*x i m a m-1*x i m-1+…+a1*x+a0)2
的最小值问题,同样的,利用多元可微函数求得极值的必要条件
得到法方程组
∂Q(a0,a1,…a m)/∂a k=0; k=0,1,2,3…m;
此时,矩阵G为一范德蒙矩阵,解此方程可以求的多项式系数a=[a m,a m-1,a0]T
模型
假设美国的人口满足函数关系x=f(t), f(t)=e a+bt,a,b为待定常数,
根据最小二乘拟合的原理,a,b是函数∑
=-
=
n
i
i
i
x t
f
b
a
E
1
2
)
)
(
(
)
,
(的最小值点。
其中x i是t i时刻美国的人口数。
这是第一种模型。
3.Logistic模型
上述模型可以在短时间内较好地拟合实际人口数量,但也存在问题。
即人口是呈指数规律无止境地增长,此时人口的自然增长率随人口的增长而增长,这不可能。
一般说来,当人口较少时增长得越来越快,即增长率在变大;人口增长到一定数量以后,增长就会慢下来,即增长率变小。
这是因为自然资源环境条件等因素不允许人口无限制地增长,它们对人口的增长起着阻滞作用,而且随着人口的增加,阻滞作用越来越大。
而且人口最终会饱和,趋于某一个常数x,假设人口
的静增长率为r(1-x(t)/x ),即人口的静增长率随着人口的增长而不断减小,当t 时,静增长率趋于零。
按照这个假设,得到
⎪⎩⎪⎨⎧=-=∞00
)()1(x t x x x r dt
dx (1) 这便是荷兰数学家Verhulst 于19世纪中叶提出的logistic 模型。
人口的变化规律为:
r t e x x x )1790(3910)1(1--∞∞-+=
(2)
具体实验中应使用这种模型进行拟合。
4.为了更好地比较2000,2005,2010,2015,2020年美国人口数,需将其画入一个图中。
三.程序
(1)x=1790:10:1980;
y=[,,,,,,,,,,,,,,,,,,,];
plot(x,y,'k.','markersize',25); axis([1790 1990 3 230]);
p2=polyfit(x,y,2)
p3=polyfit(x,y,3)
t=1790:10:1980;
s=polyval(p2,t);
s1=polyval(p3,t);
hold on
plot(t,s,'r-','linewidth',2)
plot(t,s1,'b-','linewidth',2)
grid
(2)function f=nihehanshu(x,xdata) f=exp(x(1)+x(2)*xdata);
xdata=1790:10:1980;
ydata=[,,,,,,,,,,,,,,,,,,,];
x0=[0,0];
[x,resnorm]=lsqcurvefit(@nihehanshu3,x0,xdata,ydata)(3)function y=nihehanshu(x,xdata)
y=1./^(-1)+exp(-x(1)-x(2)*xdata))
xdata=1790:10:1980;
ydata=[,,,,,,,,,,,,,,,,,,,];
x0=[0,0];
[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)(4)f=inline('1./(450^(-1)+exp')
fplot(f,[1790,2020])
hold on
g=inline('exp( +*x)');
fplot(g,[1790,2020])
hold on
f=inline(' *x+*x^2') fplot(f,[1790,2020]) hold on
grid
四.实验结果
(1)
p2 =
+004 *
p3 =
+003 *
(2)x = resnorm =
+003(3)x =
resnorm = +003(4)
五.结果分析
(1)在第一问多项式拟合方法中,通过对多项式次数的改变,当多项式次数大于3时结果误差较大。
最好的多项式拟合次数应为2和3.
(2)使用malthus模型模拟方法,f= exp( +*x)
(3)使用logistic模型模拟方法,f=1./(450^(-1)+exp(4)经过三个图线的比较可以得出结论:logistic模型模拟的人口数量增长比较准确。
六.实验心得
不仅要学会熟练使用软件工具,而且要善于使用软件工具,但不能迷信软件工具。
它可以大大提高你的工作效率,多数情况下,它都能给出正确的答案。
但它在处理复杂问题时,也有不足之处,因为许多算法并非是无条件的,并非适合于任何情形,有时收敛,有时奇异,有时收敛太慢。
这就要求你对结果进行检验,看是否合乎实际,是否合理。
若不合理,应找原因,针对不同情况,想出解决问题的办法,进行实验、验证,直到结果满意为止。