1. 学习由实际问题去建立机器学习模型的过程;
2. 掌握用matlab作最小二乘多项式拟合和曲线拟合的方法。
3. 通过实例学习如何用拟合方法解决实际问题,注意差值方法的区别。
4. 鼓励不囿于固定的模式或秩序,灵活调整思路,突破思维的呆板性,找到打破常规的解决方法。并在文献检索 动手和动脑等方面得到锻炼。
电脑、网络
相应的开发软件matlab
问题描述
1、 Malthus人口指数增长模型
从1790—1980年间美国每隔10年的人口记录如表综2.1所示:
表综2.1
年 份 | 1790 | 1800 | 1810 | 1820 | 1830 | 1840 | 1850 |
---|---|---|---|---|---|---|---|
人口(×106) | 3.9 | 5.3 | 7.2 | 9.6 | 12.9 | 17.1 | 23.2 |
年 份 | 1860 | 1870 | 1880 | 1890 | 1900 | 1910 | 1920 |
人口(×106) | 31.4 | 38.6 | 50.2 | 62.9 | 76.0 | 92.0 | 106.5 |
年 份 | 1930 | 1940 | 1950 | 1960 | 1970 | 1980 | |
人口(×106) | 123.2 | 131.7 | 150.7 | 179.3 | 204.0 | 226.5 |
用以上数据检验马尔萨斯(Malthus)人口指数增长模型,根据检验结果进一步讨论马尔萨斯人口模型的改进,并利用至少两种模型来预测美国2010年的人口数量
Malthus 模型的基本假设是:人口的增长率为常数,记为 r。记时刻t的人口为x(t),(即x(t)为模型的状态变量)且初始时刻的人口为x0,于是得到如下微分方程:
需要先求微分方程的解,再用数据拟合模型中的参数。
由上述可得:x(t)=x(0)e^(rt)
也就是y1=x0*exp(r*x);
(1) 应用matlab软件求解方程;
x=1790:10:1980;
y=[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];
利用lsqcurvefit得到拟合函数y=(3.54e-011)*exp(0.0149*x);
(2) 应用matlab软件作图;
(3) 应用matlab软件完成函数拟合等功能;
(3)体会所用的方法;
t=1790:10:1990;
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.3 131.7 150.7 179.3,204.0 226.5 251.4];
plot(x,t,'*');
hold on;
x=1790:10:2010;
y=(3.54e-011)*exp(0.0149*x);
plot(y,x);
因此,根据拟合结果可知美国2010年的人口数量应该为359.5*10^6;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。