MATLAB人口数量预测

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLAB人口数量预测实验报告一,实验目的:1.、学会用matlab软件进行数据拟合;2、了解利用最小二乘法进行数据拟合的基本思想,掌握用数据拟合法寻找最佳拟合曲线的方法;3、了解多元函数的机制在数据拟合法中的应用;4、通过对实际问题进行分析研究,初步掌握建立数据拟合数学模型的方法。二.问题分析及建立模型1.多项式拟合对于已知数据点,如果选用拟合基函数为幂函数类1,x,x2,x3….xm,则拟合函数为一个m次多项式函数。y=f(x)=am*xm+am-1*xm-1+…a1*x+a0根据最小二乘法你和思想,问题归结为求m+1元函数Q(a0,a1,…am)=∑(am*ximam-1*xim-1+…+a1*x+a0)2的最小值问题,同样的,利用多元可微函数求得极值的必要条件得到法方程组∂Q(a0,a1,…am)/∂ak=0;k=0,1,2,3…m;此时,矩阵G为一范德蒙矩阵,解此方程可以求的多项式系数a=[am,am-1,a0]T2.malthus模型假设美国的人口满足函数关系x=f(t),f(t)=ea+bt,a,b为待定常数,根据最小二乘拟合的原理,a,b是函数niiixtfbaE12))((),(的最小值点。其中xi是ti时刻美国的人口数。这是第一种模型。3.Logistic模型上述模型可以在短时间内较好地拟合实际人口数量,但也存在问题。即人口是呈指数规律无止境地增长,此时人口的自然增长率随人口的增长而增长,这不可能。一般说来,当人口较少时增长得越来越快,即增长率在变大;人口增长到一定数量以后,增长就会慢下来,即增长率变小。这是因为自然资源环境条件等因素不允许人口无限制地增长,它们对人口的增长起着阻滞作用,而且随着人口的增加,阻滞作用越来越大。而且人口最终会饱和,趋于某一个常数x,假设人口的静增长率为r(1-x(t)/x),即人口的静增长率随着人口的增长而不断减小,当t时,静增长率趋于零。按照这个假设,得到00)()1(xtxxxrdtdx(1)这便是荷兰数学家Verhulst于19世纪中叶提出的logistic模型。人口的变化规律为:rtexxx)1790(3910)1(1(2)具体实验中应使用这种模型进行拟合。4.为了更好地比较2000,2005,2010,2015,2020年美国人口数,需将其画入一个图中。三.程序(1)x=1790:10:1980;y=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,28.6,50.2,62.0,72.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5];plot(x,y,'k.','markersize',25);axis([179019903230]);p2=polyfit(x,y,2)p3=polyfit(x,y,3)t=1790:10:1980;s=polyval(p2,t);s1=polyval(p3,t);holdonplot(t,s,'r-','linewidth',2)plot(t,s1,'b-','linewidth',2)grid(2)functionf=nihehanshu(x,xdata)f=exp(x(1)+x(2)*xdata);xdata=1790:10:1980;ydata=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,28.6,50.2,62.0,72.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5];x0=[0,0];[x,resnorm]=lsqcurvefit(@nihehanshu3,x0,xdata,ydata)(3)functiony=nihehanshu(x,xdata)y=1./(4.5^(-1)+exp(-x(1)-x(2)*xdata))xdata=1790:10:1980;ydata=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,28.6,50.2,62.0,72.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5];x0=[0,0];[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)(4)f=inline('1./(450^(-1)+exp(36.6468-0.0216*x))')fplot(f,[1790,2020])holdong=inline('exp(-25.5772+0.0157*x)');fplot(g,[1790,2020])holdonf=inline('-1.0806*x+0.0006*x^2')fplot(f,[1790,2020])holdongrid四.实验结果(1)p2=1.0e+004*0.0000-0.00242.1955p3=1.0e+003*0.0000-0.00000.0149-2.6733(2)x=-25.57720.0157resnorm=1.5501e+003(3)x=-25.57720.0157resnorm=1.5501e+003(4)五.结果分析(1)在第一问多项式拟合方法中,通过对多项式次数的改变,当多项式次数大于3时结果误差较大。最好的多项式拟合次数应为2和3.(2)使用malthus模型模拟方法,f=exp(-25.5772+0.0157*x)(3)使用logistic模型模拟方法,f=1./(450^(-1)+exp(36.6468-0.0216*x))(4)经过三个图线的比较可以得出结论:logistic模型模拟的人口数量增长比较准确。六.实验心得不仅要学会熟练使用软件工具,而且要善于使用软件工具,但不能迷信软件工具。它可以大大提高你的工作效率,多数情况下,它都能给出正确的答案。但它在处理复杂问题时,也有不足之处,因为许多算法并非是无条件的,并非适合于任何情形,有时收敛,有时奇异,有时收敛太慢。这就要求你对结果进行检验,看是否合乎实际,是否合理。若不合理,应找原因,针对不同情况,想出解决问题的办法,进行实验、验证,直到结果满意为止。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功