指数函数的数据拟合
世界人口预测问题
下表给出了本世纪六十年代世界人口的统计数据(单位:亿)
年1960 1961 1962 1963 1964 1965 1966 1967 1968
人口
有人根据表中数据,预测公元2000年世界人口会超过60亿。
这一结论在六十年代末令人难以置信,但现在已成为事实。
试建立数学模型并根据表中数据推算出2000年世界人口的数量。
根据马尔萨斯人口理论,人口数量按指数递增的规律发展
人口问题是当今世界各国普遍关注的问题,认识人口数量的变化规律,可以为有效控制人口增长提供依据。
早在1798年,英国经济学家马尔萨(就提出了自然状态下的人口增长模型:
rt
y
e
y
其中t表示经过的时间,0y表示t=0时的人口数,r
1
2
表示人口的年平均增长率。
表3是1950~1959年我国的人口数据资料:
年份
1950 1951 1952 1953 1954 1955 1956 1957 1958 1959
人数/万人 55196 56300 57482 58796 60266 61456 62828 64563 65994 67207
t
0 1 2 3 4 5 6 7 8 9
(1)如果以各年人口增长平均值作为我国这一时期的人口增长率(精确到),用马尔萨斯人口增长模型建立我国在这一时期具体人口增长模型,并检验所得模型与实际人口数据是否相符;
解:设1951~1959
年的人口增长率分别为
于是, 1951~1959年期间,我国人口的年均增长率为
由图4可以看出,所得模型与1950~1959年的实际人口数据基本吻合。
0.022155196..
t y e t N =∈129(...)90.0221
r r r r =+++÷≈129r ,r ,......,r .1
55196(1)56300,1951,
r +=≈≈≈≈≈≈≈≈≈1
2
345
67
8
9
可得年的人口增长率r 0.0200.同理可得r 0.0210,r 0.0229,r 0.0250,r 0.0197,r 0.0223,r 0.0276,r 0.0222,r 0.0184.
55196,1950~1959y =令则我国在年期间的人口增长模型为
3
(2)如果按表3的增长趋势,大约在哪一年我国的人口达到13亿? 将y=130000代入
由计算可得3976.38≈≈t
所以,如果按表3的增长趋势,那么大约在1950年后的第39年(即1989年)我国的人口就已达到13亿.由此可以看到,如果不实行计划生育,而是让人口自然增长,今天我国将
面临难以承受的人口压力.
根据表格3中的数据作出散点图,并作出函数
图4
0.022155196..
t y e t N =∈
function y=ys1(a,t)
y=55196*exp(a*t);
t=[0:9];
y=[55196 56300 57482 58796 60266 61456 62828 64563 65994 67207]; a0=[1];
[a,res]=lsqcurvefit('ys1',a0,t,y)
t1=[0::9];
y1=55196*exp*t1);
plot(t1,y1,t,y,'*')
4
例1已知1790—1990年间美国每隔十年的人口记录如下:(人口单位:106)
年1790 1800 1810 1820183018401850人口
年1860187018801890190019101920人口7692
年1930194019501960197019801990人口204
用以上数据检验Malthus人口(指数)增长模型
方法一
(1)编写函数M文件fit1(图1)
function y=fit1(a,t)
y=*exp(a*(t-1790));
rt
e
y
y
(2)输入并运行如下命令
t=1790:10:1990;
y=[,,,,,,,,,,,76,92,,,,,, 204, ,];
a0=; [a,res]= lsqcurvefit('fit1',a0,t,y) a = res = +004
5
(或t=1790:10:1990;
y=[,,,,,,,,,,,76,92,,,,,, 204, ,];
f=inline('*exp(a*(t-1790))','a','t'); [a,res]=lsqcurvefit(f, ,t,y)
人口增长模型的图形显示
ti=1790:1990; yi=*exp(a*(ti-1790)); plot(t,y,'o',ti,yi)
(图
1
)
6
方法二
(1)编写函数M文件fit1(图2)
rt
e
y
y
0 =
function y=fit1(a,t)
y=a(1)*exp(a(2)*(t-1790));
(2)输入并运行如下命令
t=1790:10:1990;
y=[,,,,,,,,,,,76,92,,,,,, 204, ,];
a0=[0,0]; [a,res]= lsqcurvefit('fit1',a0,t,y) a =
rt
e
y
y
=
res =+003
人口增长模型的图形显示
ti=1790:1990; yi=a(1)*exp(a(2)*(ti-1790));
plot(t,y,'o',ti,yi)
gtext('人口指数函数') %注释
(或t=1790:10:1990;
y=[,,,,,,,,,,,76,92,,,,,, 204, ,];
[c,d]=solve('c*exp(d*10)=','c*exp(d*20)=','c','d')
f=inline('a(1)*exp(a(2)*(t-1790))','a','t');
7
[a,res]=lsqcurvefit(f,[,],t,y))
a=
res =
+003
300
250
200
150
100
50
(图2)8
(图1)(图2)9。