如何用matlab拟合下列人口模型的数据??
来源:百度知道 编辑:UC知道 时间:2024/05/27 14:04:41
数据如上所示,拟合的函数关系是:
ln(x)=r*t + ln(x0);其中 r 和 x0 是要拟合的。
要求:从1790年到1900年,拟合得到一个r和x0 ,
从1790年到2000年拟合得到一个r和x0.
我是个新手,对你和不是很熟悉,非常感谢大家帮我!!!
结果为:r=0.02743 x0=4.1884
第二个结果为:r=0.02022 x0=6.0540
希望各位给出个具体的程序!谢谢了!!!!
我提一个方案吧,你可以试一下,对不对我就不太清楚了
自变量为t,因变量为x
先将你的式子改一下,取e为底
x=e((r*t)+ln(x0))
令z(1)=r,z(2)=ln(x0)
fz=@(z,t) EXP(z(1)*t+z(2)),...
'z','t';
[s,resnorm,residual,exitflag,output] = lsqcurvefit(fz,z0,t,x,[],[],options)
z0为系数矩阵初值,先随便选一下值比如(0.5,0.5)
data =
1790 3.9
1800 5.3
1810 7.2
1820 9.6
1830 12.9
1840 17.1
1850 23.2
1860 31.4
1870 38.6
1880 50.2
1890 62.9
1900 76
1910 92
1920 106.5
1930 123.2
1940 131.7
1950 150.7
1960 179.3
1970 204
1980 226.5
1990 251.4
200