《数学实验》报告
实验一 斐波那契数列
(一)练习1
一、 实验目的与要求
1.认识an?1?an?1?an,a1?1数列,体验发现其通项公式的过程; 2.了解matlab软件中进行数据显示与数据拟合的方式; 3.掌握matlab软件中plot, polyfit等函数的基本用法;
1
4.提高对数据进行分析与处理的能力。
二、 问题描述
讨论数列an?1?an?1?an,a1?1的变化规律。 (1)在平面坐标系中画出数列变化的折线图; (2)观察图形,你认为数列的极限是什么; (3)观察图形,寻找恰当的函数去拟合这个数列;
三、 实验过程
本试验将an?1?an?1?an,a1?1数列的有限项,看成是待处理的数据。首先利用matlab软件的可视化功能,将这些数据显示在平面坐标系中,观察曲线的变化趋势。然后通过观察图形,猜测数列的拟合函数,通过实践利用matlab软件的数据拟合功能,不断修改验证,得到合适的函数来拟合这个数列。 1. 在平面坐标系中画出数列变化的折线图
为了研究an?1?an?1?an,a1?1数列的变化规律,我们取此数列的前50项来观察。利用Matlab软件的数据可视化功能,将这些数据显示在平面坐标系中,观察其中蕴涵的函数关系。具体的实现流程为:
(1)定义数组an; (2)显示数组an。
具体的代码如下:
function s1(n) %定义函数显示an?1?an?1?an,a1?1数列前n项 an=[1]; %将数列的首项放到数组an中 for i=2:n %an的第2项到第n项
an=[an,an(i-1)+1./an(i-1)]; %将第i项添加到数组an中 end %循环结束
plot(an,'g*'); %将装有数列前n项的数组用绿色的星型号显示出来
2
在命令窗口调用这个函数,键入:an(50),便显示出来an的随着n变化而变化的图像。图1为代码编辑窗口,图2为数列an变化的折线图。经观察,觉得曲线的形状象幂函数的曲线,其数据无限增大。我们可以改变参数n的值,反复观察。
图1 代码编辑窗口
3
图2 数列an变化的折线图
2. 观察图形,猜测数列的极限
深入观察我们可以看到,随着n的增大,an的值不断增大,当n取100(如图3)与1000(如图4)时,发现an并不趋近于某一值,而是继续增大。所以我们试着猜测:数列的极限是无穷大。而且由an>0,an+1=an+1/an>an可知该数列确实是只能趋于无限大。并且由图形发现,该数列的图形呈现幂函数的形式。
n=100 图4 n=1000
图3
为了进一步验证这个结论是否正确,我们可以进行假设分析与实践验证。
4
3. 寻找恰当的函数拟合数列
由以上事实,我们可以猜想an与n的关系大致为an=mp*n?q,其中m为大于1的正整数,p与q为待定的常数。
(1)首先确定m的大概值,当m取2,3,5,10时,分别比较曲线与原曲线的拟合程度。如果m值合适,此时an^m与n应该成线性关系。取n=200,在同一窗口看当m取2,3,5,10时,曲线是否是一条直线。如图5:
m=2 m=3
m=5 m=10
图 5
显然,由图可见,m=2时an^m与n应该成线性关系,其他均不满足,采用m=2最为合理!所以,我们取m=2。
5