数学实验报告
学院:电力学院
班级:2014级电气3班
学号:201430224138
姓名:游渊
完成日期:2016年3月29日
实验一斐波那契数列
一.实验目的
1.学会用MATLAB解决有关调和级数的问题。
2.研究调和级数的变化规律。
3.学会用MATLAB进行数据的拟合以及图像的绘制。
二.问题描述
1.讨论调和级数的变化规律
(1)画出部分和数列{Sn}变化的折线图,观察变化规律;
(2)引入数列{Hn}:Hn=S2n–Sn,作图观察其变化,猜测是否有极限
(3)引入数列{Gn}:Gn=S2n,作图观察其变化,寻找恰当的函数拟合;
(4)讨论部分和数列{Sn}的变化规律。
三.实验过程
1.画出函数的部分和数列折线图,代码如下:
function shulie1(n)
sn=[1];
for i=2:n;
sn=[sn,sn(i-1)+1/i];
end
plot(sn)
n=1000,得部分和数列折线图
2.令Dn=S2n-Sn,进行数列计算,代码如下:function shulie2(n)
sn=[1];
for i=2:2*n;
sn=[sn,sn(i-1)+1/i];
end
Dn=sn(2)-sn(1);
for t=2:n
Dn=[Dn,sn(2*t)-sn(t)];
end
plot(Dn)
令n=1000,图像为
可判断数列有极限,极限值大致为0.69
3.令数列Tn=S2^n,代码如下:
function shulie3(n)
sn=[1];
for i=2:2*n;
sn=[sn,sn(i-1)+1/i];
end
Tn=sn(2);
for t=2:n
Tn=[Tn,sn(2*t)];
end
plot(Tn)
对函数进行线性拟合:
function y = shulie4(n)
Tn = [1.5];
for i = 2:n
Tn = [Tn,Tn(i-1)+1/(2*i)+1/(2*i-1)]; end
n = 1:n;
Tn = exp(Tn);
y = polyfit(xn,Tn,1)
进行一阶拟合的结果为
shulie4(1000)
Y= 3.5621 0.8914
Ans=3.5621 0.8914
对拟合的公式进行检验,代码为:
function y = shulie5(n)
Tn1 = [];
for i = 1:n
Tn1 = [Tn1,log(3.5621*i+0.8910)];
end
Tn2 = [1.5];
for i = 2:n
Tn2 = [Tn2,Tn2(i-1)+1/(2*i)+1/(2*i-1)]; end
x = 1:n;
plot(x,Tn1,'b',x,Tn2,'r*')
取shulie5(100)
导出的图像为:
观测可知,函数拟合程度较好,可近似认为
Sn=0.6831*log2(n)+0.6893
即为斐波那契数列的前n项和。
实验二人口数量预测模型
一.实验目的
1.学会用MATLAB解决有关人口数量预测的问题。
2.研究人口数量的变化规律。
3.学会用MATLAB进行数据的拟合以及图像的绘制。二.问题描述
以年份为横坐标y,以人口数量为纵坐标p进行人口数量曲线的图像绘制:
yi=1990:2010;
p1=[114333,115823,117171,118517,119850,121121,122 389,123626,124761,125786];
pi=[p1,126743,127627,128453,129227,129988,130756, 131448,132129,132802,133450,134091];
plot(yi,pi)
进行一次多项式的拟合:
yi=1990:2010;
p1=[114333,115823,117171,118517,119850,121121,12238 9,123626,124761,125786];
pi=[p1,126743,127627,128453,129227,129988,130756,13 1448,132129,132802,133450,134091];
k1=polyfit(yi,pi,1)
y=1990:0.2:2010;
y=polyval(k1,y);
plot(yi,pi,'r.',y,p)
拟合结果误差较大,重新对该函数的二次多项式的拟合:yi=1990:2010;
p1=[114333,115823,117171,118517,119850,121121,12238 9,123626,124761,125786];
pi=[p1,126743,127627,128453,129227,129988,130756,13 1448,132129,132802,133450,134091];
k1=polyfit(yi,pi,2)
x=1990:0.2:2010;
y=polyval(k1,y);
plot(yi,pi,'r.',y,p)
二次拟合情况较好,基本可以该函数作为人口数量发展规律的拟合。
得
K1 = -25.242949 101946.786694
-102795132.11
故该函数可近似为:
p=-25.242949*y^2+101946.786694*y--102795132.11
按照拟合的二次函数,推测出2011,2012年的人口数分别为:
p(2011)=134315 万人
p(2012)=134709 万人
查询相关资料,2011和2012年中国人口实际数量分别为:2011:134735 万人
2012:135404 万人
其误差分别在可以接受范围之内
故该二次函数拟合效果较好,可近似认为中国的人口增长满足:
p=-25.242949*y^2+101946.786694*y-102795132.11
其中p为人口数量(万人) y为年份
建议:
中国的人口目前仍在持续增长,但是增速明显放缓,要防备人口老龄化以及未来劳动力短缺的问题,应按实际情况及时制定新的人口政策,保持人口低速平稳增长,同时提高人口素质,意识到比拼人口总量的时代已经过去,人口素质和劳动生产率的比拼才是国家竞争的实质,中国的人口素质如能得到较快提升,将与产业升级、经济发展方式转变相配合,为中国未来的发展提供新的人口优势。
总结分析和心得体会
1.了解了matlab软件的用法。
2.学会了编写matlab程序
3.分析算法和调试程序的过程培养了逻辑思维能力。
4.认识到在matlab中采用拟合的方法是解决数学问题的一大有力的武器。
5.能够将一个比较复杂的数学问题找到规律,并且进行验证,体会到了数学的美妙之处。