文档库 最新最全的文档下载
当前位置:文档库 › matlab数学实验报告.doc

matlab数学实验报告.doc

matlab数学实验报告.doc
matlab数学实验报告.doc

MATLAB数学实验报告

------人口统计与预测

指导老师:王宁

实验者:核工程93 孔海宇09032064

核工程93 万承辉09032075

核工程93 张勇09032082

实验日期:2010年5月28日

实验目的

通过对人口预测问题的分析求解,了解利用最小二乘法进行数据拟合的基本思想,熟悉寻找最佳拟合曲线的方法,掌握建立增长数学模型的思想方法。通过拟合图像,对人口进行预测。

实验原理

于已知的关于自变量和因变量的一组数据

(1x ,1y ),(22,y x ),…,(n n y x ,),寻找一个合适的类型的函数y=f (x )(如线性函数y=ax+b,多项式函数0111a x a x a a y n n n

n x ++++=--Λ,指数函数bx a e y +=等),使它在观测点n x x x ,,,21Λ处取得的值与

)(,),(),(21n x f x f x f Λ与观测值Λ

,,21y y n y 在某种尺度下最接近,从而可

用函数y=f (x )作为由观测点所反映的规律的近似表达式。

数据拟合(最小二乘法):

对于已知的一组数据(11,y x ),(22,y x )),(n n y x Λ, 设定某一类型的函数y=f (x ) 后, 确定函数中的参数, 使得在各点处的偏差

),,2,1()(n i y x f r i i i Λ=-=的平方和∑=n

i i r 12最小,这种根据偏差平方和最小

的条件确定参数的方法叫做最小二乘法. 在最小二乘问题中函数

)(x f 的选取是非常重要的,但同时又比较困难。对于一般的拟合函

数通常选取为一组线性无关的简单函数类(又称为拟合基函数)

)(,),(),(21x x x n ???Λ的线性组合

)()()()(2211x a x a x a x f m m ???+++=Λ (n m ≤) 通过最小二乘法求出待定常数i a (),,2,1m i Λ=。

多项式曲线拟合:

如果选用的基函数为幂函数类:1,m x x x ,,,2Λ ,此时拟合函数为一个m 次多项式函数0111)(a x a x a x a x f y m m m m ++++==--Λ ,根据最小二乘法拟合思想,问题归结为m+1元函数

∑=---++++=n

i i m i m m i m m y a x a x a x a a a a a Q 120111210)(),,,,(ΛΛ

的最小值问题。利用多元函数取极值的条件 ),,1,0(0)

,,,(10m k a a a a Q k

m ΛΛ==??

得到法方程组

∑=--==-++++n

i k i i i m i m m i m

m k x y a x a x a x a

1

0111),,0(0)(ΛΛ

可以求得多项式系数 .

对于多项式曲线拟合的求解,MATLAB 软件提供了相应的命令polyfit ,格式: p= polyfit(x,y,m)

其中x,y 为已知数据点向量,m 为要拟合的多项式次数,结果返回拟合的m 次多项式系数,从高次到低次存放在向量p 中,再用命令y0=polyval(p,x0)求得多项式在x0处的值y0。

由于高次多项式曲线变化不稳定,因此拟合时多项式次数不宜过高

实验内容

本次实验要求根据美国前100年的人口数据数据,分别用Malthus 和Logistic 模型建立美国人口增长的近似曲线(设美国人口总体容量为10亿),并预测后100年我国的人口数,通过与实际数据相比较,对两种预测结果进行分析。

1790年到1980年各年美国人口的统计数据如下表: 美国人口统计数字(单位:百万)

Malthus 模型

1978

年,英国统计学家Malthus 在进行大量的统计基础上发现了一

个关于生物种群的繁殖规律,就是一个种群中个体数量的增长率与该时刻种群的个体数量成正比。按照此规律,设种群个体数量为0x 时刻开始计时,t 时刻种群个体数为)(t x ,于是得到Malthus 模型:

)(t rx dt

dx

= 求解此方程,得到生物种群繁殖的规律为: rt e x t x 0)(=

由此可见,生物种群个体数量是按照指数方式增长的。

Logistic 模型

1838

年,荷兰生物学家Verhulst 做了进一步的分析后指出,导致

Malthus 模型不符合实际情况的主要原因是Malthus 模型未能考虑生

物种群繁殖过程中“密度制约”因素。事实上,种群生活在一定的环境中,在资源给定的情况下,个体数量越多,每一个个体获得的资源就越少,这将抑制其生育率,增加死亡率。因而,相对增长率不是常数,而应该乘上一个“制约因子”。这个因子随)(t x 的增加而减少,设为)1(k

x -,其中k 为环境的容纳量。于是Verhulst 提出了生物种群增长的Logistic 模型: )1(1k

x

r dt dx x -= 求解方程得:

00

)()(x e x k kx t x rt +-=-

这便是Logistic 模型。

实验问题求解:

Malthus 模型下的求解程序 clear;clf

t=1790:10:1980;

N=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.0 72.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5]; plot(t,N,'k.','markersize',20); axis([1790 1980 0 1000]) grid;hold on pause(0.5) n=10;

a=sum(t(1:n));

b=sum(t(1:n).*t(1:n)); c=sum(log(N(1:n))); d=sum(t(1:n).*log(N(1:n))) A=[n a;a b]; B=[c;d]; p=inv(A)*B x=1790:10:1980;

y=exp(p(1)+p(2)*x);

plot(x,y,'r-','linewidth',2)

Logistic模型下的求解程序

clear;clf

t=1790:10:1980;

N=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.0 72.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];

plot(t,N,'k.','markersize',20);

axis([1790 1980 0 600])

grid;

hold on

pause(0.5)

n=10;

I=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2]

K=[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]

g=1./I;

h=1./K;

M=g-h;

a=sum(t(1:n));

b=sum(t(1:n).*t(1:n));

c=sum(log(M(1:n)));

d=sum(t(1:n).*log(M(1:n)))

A=[n a;a b];

B=[c;d];

p=inv(A)*B

x=1790:10:1980;

y=1./(0.001+exp(p(1)+p(2)*x));

plot(x,y,'r-','linewidth',2)

实验结果分析

1、在Malthus模型下的求解情况分析

由程序运行解得的a=-49.7954;b=0.0286

由程序运行的曲线如下

2、在Logistic模型下的求解情况分析

由程序运行解得的a=50.7047.7954;b=-0.0291 由程序运行的曲线如下

3、两种人口预测模型的对比

由实验可知,两种模型均可对人口的未来走向有所预测,但很明显,Malthus模型在预测时会产生较大的误差,相比之下,由于Logistic模型考虑到了“密度制约”的因素,引进了一个制约因子,因此修改后的认可预测模型能够更好地对未来的人口加以预测。

下面的图形是将两种模型的曲线在同一个图中加以比较,其中蓝色的线代表的是Malthus模型的人口预测曲线,红色的线代表的是Logistic模型的人口预测曲线,黑点代表实际的人口数目。

由图中二者的对比不难发现,Logistic模型确实比Malthus 模型能更好地对未来人口的走向加以预测。所以Logistic模型是一个更好的人口预测模型。

实验误差分析

虽然两种人口模型均可以对未来的人口走势进行预测,但是,实际的人口数目仍小于预期的人口数目,而且随着时间的增加,这种误差会越来越明显。

这是由于实际情况下的情况更加复杂,除了人口密度的制约因素外,人口增长的因素还受到其他众多因素的影响,比如自然灾害、流行性疾病的发生、战争等等。例如,在20世纪三四十年代,人口的增长出现了短暂的停滞,这应该是由于美国当时正处于大萧条时代,后来又卷入了第二次世界大战的缘故,所以人口的总数会出现减缓增长的现象;而到了60年代前后,那时美国经济正在飞速发展,人口也在以一个较高的速度发展。

这些外在因素的影响导致了实验预测产生误差,而且外在的因素影响越强烈,实验的预测情况与实际情况之间的误差就会越大。

总结与收获

在此次实验中,我们共同合作,学会了用matlab编写简单的数学程序进行一些建模和数学计算,同时我们还掌握了两种人口预测的模型,并且在合作研究之中学会了如何客观全面地分析问题,解决问题。在我们一起合作时,我们也体会到了共同合作学习的重要性,学会了如何团结合作完成一个问题。

总之,此次数学实验让我们受益匪浅,学到了很多知识,收获了很多能力。

相关文档