| 项目 | 人口增长问题 | 所属 课程 | 数学建模 | |||||||
| 实 验 目 的 | 1、掌握用for 、while、if 语句来编写脚本文件。 2、掌握Matlab中插值和拟合的语句和方法。 | |||||||||
| 实 验 环 境 | Matlab | |||||||||
| 实 验 内 容 | 1、编写脚本文件,实现 用magic(6)产生一矩阵,用for循环指令求解其所有元素的和。 2、 已知x=[0.1,0.8,1.3,1.9,2.5,3.1],y=[1.2,1.6,2.7,2.0,1.3,0.5],用不同的方法求x=2点的插值,并分析所得的结果有何不同。 3、下面是六十年代世界人口的增长数据(单位:亿): 年份 | 1960 | 1961 | 1962 | 1963 | 19 | 1965 | 1966 | 1967 | 1968 |
| 人口 | 29.72 | 30.61 | 31.51 | 32.13 | 32.34 | 32.85 | 33.56 | 34.20 | 34.83 | |
| (2)请你建立一个模型估计2002年的世界人口数,请分析它与现在的实际人口数的差别的成因。 | |||
| 实 验 过 程 | 1、程序:m=magic(6) m = 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11 >> s=0;for i=1:36;s=s+m(i);end;sum=s sum = 666 2、 (1)、用分段线性插值:x=[0.1 0.8 1.3 1.9 2.5 3.1]; y=[1.2 1.6 2.7 2.0 1.3 0.5]; t=0:0.1:3.1; h=interp1(x,y,t,'spline'); plot(x,y,'+',t,h) (2)、三次样条插值 x0=[0.1,0.8,1.3,1.9,2.5,3.1];y0=[1.2,1.6,2.7,2.0,1.3,0.5]; x=0:0.01:4; pp1=csape(x0,y0); y1=ppval(pp1,x); plot(x0,y0,'+',x,y1) 3、(1)程序:y=[1960 1961 1962 1963 19 1965 1966 1967 1968]; x=[29.72 30.61 31.51 32.13 32.34 32.85 33.56 34.20 34.83]; plot(x,y,'r*') 数据散布图如下: 根据已有数据,进行数据拟合:考虑分段函数,对1960-1963进行数据拟合: t=[0 1 2 3] x1=[29.72 30.61 31.51 32.13] p=polyfit(t,x1,1) t=[5 6 7 8] x2=[32.85 33.56 34.20 34.83] z=x1.*(t<=3)+x2.*(t>=4) p=polyfit(t,x2,1) t=[0 1 2 3 4 5 6 7 8] x=[29.73 30.61 31.51 32.13 32.34 32.85 33.56 34.20 34.83] plot(t,x1,'g+',t,x2,'g.',t,z,'b-'); hold on plot(t,x,'r*') 图如下: (2)、数据显示,2002年世界人口总数为62.51亿。 根据所建立的数学模型,知: Columns 37 through 54 53.2710 53.9290 54.5870 55.2450 55.9030 56.5610 57.2190 57.8770 2002年世界人口总数约为56.5610亿。 人口差距的原因: 1、世界总体经济增长对生产力的需求,尤其是作为管理者的人。 2、当前世界和平稳定,经济繁荣发展,人们生活安逸,有利于组织生活和家庭。(战乱是就不会这样) 3、生活条件提高,现代医疗设施完善,出生死亡率极大降低。 4、人们的生活观念的变化,以及对生理的自然需求。 5、人类繁衍的必然 | ||
| 实 验 结 果 及 分 析 | |||
| 实 验 心 得 总 结 | |||
| 教师 评语 | |||