在斐波那契的著作《计算之书》中,斐波那契数列定义如下:
Fn=⎩⎨⎧01Fn−1+Fn−2若 n=0若 n=1若 n≥2可以证明,其闭式公式为:
Fn=51((21+5)n−(21−5)n)以我目前的知识,只能理解下面两种证明方法:
首先讨论 n≥2 的情形。现在的目标是把斐波那契数列的递推公式化为矩阵形式。怎么做呢?我们可以从线性方程组的角度入手。
首先,已知:
Fn−1+Fn−2=Fn我们可以加上方程 Fn−1+0⋅Fn−2=Fn−1,构成一个线性方程组:
{Fn−1+Fn−2=FnFn−1+0⋅Fn−2=Fn−1这可以化为如下的矩阵形式:
[1110][Fn−1Fn−2]=[FnFn−1]现在,我们可以反复迭代这一过程:
[FnFn−1]=[1110][Fn−1Fn−2]=[1110]2[Fn−2Fn−3]=⋯=[1110]n−1[F1F0]记矩阵 A=[1110]。于是问题转化为求 An−1;之后我们还可以计算 An,并把所有 n 换成 n−1。
注意到矩阵 A 是方阵,我们可以利用矩阵的特征值与特征向量。
特征向量可以理解为:右乘该矩阵后,得到与自身平行的向量。特征值则是右乘矩阵时特征向量被缩放的比例因子。换言之:
Ax=λx(1)这里 λ 是特征值,非零向量 x∈Rn(其中 n 为方阵的阶数)是矩阵 A 对应于特征值 λ 的特征向量。
因此具体做法是:先求出特征值 λ1 与 λ2(一般 n 阶矩阵有 n 个特征值),得到对角矩阵 diag{λ1,λ2};然后寻找可逆矩阵 P,使得:
P−1AP=diag{λ1,λ2}利用矩阵乘法的性质:
(P−1AP)n=P−1A(PP−1)A(P⋯P−1)AP=P−1AnP(2)这样就可以算出 An。
先求特征值。我们可以把方程 (1) 改写成:
(A−λE)x=0(3)这里 E 是单位矩阵,可以算出 A−λE=[1−λ11−λ]。为保证存在非零解,我们求解:
∣A−λE∣=1−λ11−λ=λ2−λ−1=0解此方程,得到 λ1=21+5 与 λ2=21−5。
因此,对角矩阵为:
diag{λ1,λ2}=[21+50021−5]假设特征向量为 x=[xy]T,将 λ1 与 λ2 分别代入方程 (2),得到两个方程组:
{(1−λ1)x+y=0x−λ1y=0,{(1−λ2)x+y=0x−λ2y=0在两个方程组中都令 y=1,即可得到矩阵的两个特征向量:
x1=[21+51]T,x2=[21−51]T于是,可逆矩阵 P 由这两个特征向量构成:
P=[21+5121−51]为什么是这样呢?设 P=[x1y1x2y2](其中 x1,y1,x2,y2 分别是特征向量 x1,x2 的分量)。
现在,若计算 Pdiag{λ1,λ2},它恰好等于 [λ1x1λ1y1λ2x2λ2y2]。这说明 AP=Pdiag{λ1,λ2} 是必然成立的。两边左乘 P−1,得到 P−1AP=diag{λ1,λ2}。因此,P=[x1y1x2y2] 是合理的。
其逆矩阵很容易计算:
P−1=∣P∣P∗=51[1121−521+5]代入方程 (2):
An=P(P−1AP)nP−1=Pdiagn{λ1,λ2}P−1其中对角矩阵为:
diagn{λ1,λ2}=(21+5)n00(21−5)n因此,
An=51(21+5)n+1+(21−5)n+1(21+5)n+(21−5)n(21+5)n+1(21−5)+(21−5)n+1(21+5)(21+5)n(21−5)+(21−5)n(21+5)于是,
[FnFn−1]=An−1[F1F0]=51(21+5)n+(21−5)n(21+5)n−1+(21−5)n−1只考虑方程两边矩阵的第一行,即可得到斐波那契数列的闭式公式:
Fn=51((21+5)n−(21−5)n)代入 n=0 与 n=1 验证,发现两者都满足该方程。
把数列 {an} 的一阶差分定义为 Δan=an+1−an(这里采用向后差分),则可以定义二阶差分:
Δ2an=Δan+1−Δan=an+2−2an+1+an进一步,可以定义 m 阶差分:
Δman=Δm−1an+1−Δm−1an=i=0∑m(−1)iCmian+m−i以及
F(an,Δan,Δan,Δ2an,Δ3an,…)定义如 Fn=Fn−1+Fn−2 的斐波那契数列,其二阶差分是常数:
Δ2Fn=Fn+2−2Fn+1+Fn=Fn+1+Fn+1−2Fn+1+Fn=Fn+1−Fn=Fn现在,我们可以写出 Fn 的二阶线性齐次差分方程:
Δ2Fn−Fn=0这是一个特征方程,我们可以假设 Fn=rn 来求解:
r2−1=0解此方程得到两个解:r=1 与 r=−1。因此,齐次差分方程的通解为:
Fn=c1⋅1n+c2⋅(−1)n现在,我们需要初始条件来求特解。已知 F0=0、F1=1。将它们代入通解:
F0F1=c1⋅10+c2⋅(−1)0=c1+c2=0=c1⋅11+c2⋅(−1)1=c1−c2=1解这个方程组,得 c1=21、c2=−21。因此,斐波那契数列的特解为:
Fn=21⋅1n−21⋅(−1)n利用 (−1)n=(−1)n−1⋅(−1)=−(−1)n−1,可以进一步化简:
Fn=21−21⋅(−1)n−1这确实是斐波那契数列的闭式公式:
Fn=51((21+5)n−(21−5)n)这样,我们便用差分方程法成功地推导出了相同的结果。
总之,矩阵法与差分方程法都得出了斐波那契数列相同的闭式表达式,展现了数学以多种途径殊途同归之美。