华工数学实验报告斐波那契数列
《数学实验》报告
学 院: 电子信息学院
专业班级: 信息工程电联班
学 号:
姓 名:
实验名称: 实验二 斐波那契数列
实验日期: 2016/04/05
实验目的
认识Fibonacci数列,体验发现其通项公式的过程。了解matlab软件中,进行数据显示与数据拟合的方式提高对数据进行分析与处理的能力。
实验任务
1. 讨论调和级数的变化规律
(1)画出部分和数列变化的折线图,观察变化规律;
(2)引入数列,作图观察其变化,猜测是否有极限;
(3)引入数列,作图观察其变化,寻找恰当的函数拟合;
(4)讨论调和级数的部分和数列的变化规律。
2. 人口问题是我国最大社会问题之一,估计人口数量和发展趋势是我们制定一系列相关政策的基础。从人口统计年鉴,可查我国从1990年至2010年人口数据资料如下,试根据表中数据,分析人口增长的规律,并以此预测2011年和2012年的人口数量,然后与实际人口数量做对比评价模型的优劣,并对我国人口政策提出建议。
表1 不同年份我国的人口数量(万)
年份19901991199219931994199519961997数量114333115823117171118517119850121121122389123626年份19981999200020012002200320042005数量124761125786126743127627128453129227129988130756年份20062007200820092010数量131448132129132802133450134091
实验过程
3.1实验原理
3.1.1任务一
通过用for循环语句来进行操作,用plot进行画图,通过看图猜测函数的类型,判断是对数函数,取指数后,利用polyfit进行拟合,判断猜测成立。
3.1.2任务二
用polyfit进行拟合,R5=dot(y-polyval(p5,t),y-polyval(p5,t)) 计算拟合残差,
再用polyval预测2011和2012年的人口。
3.2算法与编程
3.2.1任务一
3.2.1.1
function fib1(n)
s=[1,1.5];
for i=3:n
s=[s,s(i-1)+1/i];
end
plot(s);
3.2.1.2
function fib2(n)
s=[1];
for i=2:2*n
s=[s,s(i-1)+1/i];
end
h=[0.5];
for j=2:n
h=[h,s(2*j)-s(j)];
end
plot(h)
3.2.1.3
function fib3(n)
s=[1];
for i=2:2*n
s=[s,s(i-1)+1/i];
end
g=[1.5];
for j=2:n
g=[g,s(2*j)];
end
plot(g)
y=exp(g);
x=[1:n];
p=polyfit (x,y,3)
plot(x,y, 'ro',x,polyval (p,x), 'b')
legend('数据点','拟合曲线') ;
3.2.2任务二
function fib4()
t=[0:20];
y=[114333,115823,117171,118517,119850,121121,122389,123626];
y=[y,124761,125786,126743,127627,128453,129227,129988,130756,131448,132129,132802,133450,134091];
p2= polyfit(t,y,2)
p4= polyfit(t,y,4)
p5= polyfit(t,y,5)
R5 = dot(y-polyval(p5,t),y-polyval(p5,t)) %计算拟合残差
R4= dot(y-polyval(p4,t),y-polyval(p4,t))
R2 = dot(y-polyval(p2,t),y-polyval(p2,t))
plot(t,y,'r+',t,polyval(p2,t),t,polyval(p4,t),t,polyval(p5,t))
legend('我国人口数量','2阶拟合',