达永编程网

程序员技术分享与交流平台

斐波那契数列的推导证明: 附不动点和不动点方程详解

本文将深入分析斐波那契数列的通项公式的推导过程,在推导过程中将引入不动点的概念并做详细的分析,以对高中学习数列的同学思路的启发.

一: 斐波那契数列的定义:

a1=0,a1=1,a2=1,a3=2,a4=3,a5=5.....即满足

斐波那契数列的定义为: F(n) = F(n-1) + F(n-2),这样的数列称之为斐波那契数列,F(0)=0,F(1)=1,也就是an+2=an+1+an .

求解该数列的通项公式,有很多种方法,比如说构造法,这里我们不研究了,我们来探讨另外一个求解的思路. 需要引入数列或函数的不动点进行求解

二:不动点以及不动点方程的定义的推导理解原理:

设f(x)是一个函数, 令f(x)=x,即解f(x)-x=0的过程,就相当于构建了一个不动点的方程,解这个方程所得到的解就叫不动点. f(x)-x=0就叫不动点方程. 如何理解呢:

f(x)是一个关于x的f 规则的函数, x和f(x)一一对应, x是定义域,f(x)是值, 我们令y=x, 相当于我们知道了f(x)值,去求x值, 其背后的含义是若f(x)的反函数是g(x),则求g(x)与f(x)的交叉点.因为g(x)和f(x)关于y=x对称,所以交叉点一定在y=x上.

不动点方程: f(x)-x=0 ..............(1)

根据定义,求出来的x值记为a,则x=a,为方程(1)的根, 于是我们代入方程得到

f(a)-a=0,我们也可以写成

(x-a).C=0 (可以写成这种方式,C是一个待定项).

即: f(a)-a=(x-a)*C=f(x)-x ......(2)

也就是任何一个f(x)若存在 f(x)=x 有实数根a,则 都可以写成:

f(a)-a=(x-a)*C=f(x)-x 的形式.

1.2 再来看与数列的关系. 我们设An是一个数列, 则

An=f(An-1)........................................(3)

(An的通项公式一般都是由An-1存在对应规则关系,设这种规则为f()),于是 我们比较下它与我们一般函数函数不动点的结构.

假若An=f(An-1)存在x=f(x)实数根a,则

f(a)-a=(An-1-a).C=f(An-1)-An-1=An-An-1 (因为f(An-1)=An 代入)

即: An-An-1=(An-1-a).C

方程移项整理然后同时减去a: An-a=(An-1-a).C+An-1-a

即 An-a=(An-1-a)*(C+1).......(4)

注意到(4)的:令 An-a= g(n),g(n-1)=An-1, q=C+1于是(4)变成了

g(n)=g(n-1).q...............(5)

即: An-a= (An-1-a)*q.....(6)

很明显: (6)的公式说明 g(n)/g(n-1)=q, 即g(n)是一个公比为q的的等比数列,于是我们要求An,只需要把g(n) 求出来. 这样再通求An ,就能求出来了.


三: 求解斐波那契数列的推导过程来理解下:

已知: F(n+2)=F(n+1)+F(n).......(1)(斐波那契数列定义,F(1)=0,F(1)=1,n>=1),求F(n)通项公式(表达式)

根据条件得到: F(n+2)/F(n+1)=F(n+1)/F(n)+1 (两边同时除以F(n+1),因为F(n+1)不等于0)

设一个函数g(n),g(n)=F(n+1)/F(n),于是得到

g(n+1)=1/g(n)+1 (3.1)

根据不动点方程的表达式和(二)关于数列的不动点过程的推理过程:

g(n+1) 与g(n)的函数对应规则我们设为f,设g(n)=x 根据数列不动点方程

An=f(An-1) 对应x=f(x) 代入 (3.1)

g(n+1)=f(g(n)) 根据函数不动点方程x=f(x) 设g(n)=x, g(n+1)=1/x 将(3.1)整理得到

x=1/x+1...... (3.2)


解这个方程得到两个不动点

x1=, x2=

x1.x2=-1 x1+x2=1

于是:g(n+1)=1/g(n)+1 (3.1) 就可以根据(二)写成不动点的方程(即: An-a= (An-1-a)*q.....(6)) (q1,q2 为对应的q)

g(n+1)-x1=(1/g(n)-x1)*q1 .......(3.3)

g(n+1)-x2=(1/g(n)-x2)*q2........(3.4)

得到: 将g(n)=F(n+1)/F(n) 代入 3.3 ,3.4

F(n+2)/F(n+1)-x1= (F(n)/F(n+1)-x1+1) *q1

同时乘以F(n+1)整理得到: F(n+2)-x1.F(n+1)=(F(n)-x1.F(n+1)+F(n+1))*q1=((1-x1).F(n+1)+F(n)*q1

=-1/x1 *((1-x1)(-x1).F(n+1)-x1F(n))*q1=-1/x1*q1( F(n+1)-x1.F(n))

即:

(F(n+2)-x1.F(n+1))= C1. (F(n+1)-x1*F(n)) C1=-1/x1.q1; (3.5)

因为 F(n+2)=F(n+1)+F(n) (已知条件) ,x1为我们求出的不动点,所以 C1+x1=1 C1*(-x1)=-1

所以 C1=1-x1=

同理可以得到:

(F(n+2)-x2*F(n+1))=C2. (F(n+1)-x2*F(n)) C2=-1/x2.q2 ,C2+X2=1 (3.6)

C2=1-x2=

F(n+2)-x1.F(n+1)= (F(1+1)-x1.F(1))*

F(n+2)-x2.F(n+1)=F(1+1)-x2.F(1)*

设Bn=F(n+2)-x.F(n+1)

F(1)=0,F(2)=1 代入B1=F(1+1)-x1.F(1)=

Bn=F(n+2)-x1.F(n+1)=B1* .......(3.7)

同理:F(n+2)-x2.F(n+1)=M1* .......(3.8) ,

其中M1=F(1+1)-x2.F(1)=

3.7与3.8 相减:

(x2-x1).F(n+1)=

X2-X1=+=

F(n+1)=

所以 F(n)=

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言