用matlab解答2. 试在matlab中编程,用以下美国人口数据拟合人口增长模型:,确定其待定参数 和 .年 份 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 19

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 18:53:50

用matlab解答2. 试在matlab中编程,用以下美国人口数据拟合人口增长模型:,确定其待定参数 和 .年 份 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 19
用matlab解答
2. 试在matlab中编程,用以下美国人口数据拟合人口增长模型:,确定其待定参数 和 .
年 份 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

用matlab解答2. 试在matlab中编程,用以下美国人口数据拟合人口增长模型:,确定其待定参数 和 .年 份 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 19
clc;clear
A=[1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980;
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];
yr=A(1,:)-A(1,1);
pop=A(2,:)*1e6;
fun=@(a,t) a(1)./(1+a(2)*exp(-a(3)*t))%logistic人口模型
%求初始值
[K,a,b]=solve('5.3e6=K/(1+a*exp(-b*10))','9.6e6=K/(1+a*exp(-b*30))','226.5e6=K/(1+a*exp(-b*190))');
a0=eval([K(1),a(1),b(1)])
format long
a=nlinfit(yr,pop,fun,a0)
yr1=0:300;
pop1=fun(a,yr1);
pop2010=fun(a,2010-1790)
plot(yr+1790,pop,'o',yr1+1790,pop1)
结果:
a =
1.0e+008 *
3.603762767460773 0.000000531097359 0.000000000234227
pop2010 =
2.757103964896516e+008
图形见:http://hi.baidu.com/chemical%5Fengineering/album/item/8dbb564ef1a02a2fb1de056a.html

x=1790:10:1980;
y=[自 己 输 入];
z=ployfit(x,y,n) %n为拟合方程阶数