斐波那契数列通项公式

32 篇文章 2 订阅
30 篇文章 1 订阅

前言

我个人认为,学线代,学特征值,就一定要学以致用。一个个定理,一个个公式,不应该是停留在课本上的死知识。它们应该活起来,丰富起来,被用来做有趣而且有意义的事——尽管我也想不出什么太好的让知识有趣起来的方法。

这里夹带一点私货:欢迎大家来参加安排在 2020-01-01 的外卷中心年会,欢迎大家来报节目展示才艺,也欢迎大家来参加 2020-01-02 的外卷中心competition#3,祝各位玩得开心。

记得当时程设课上,有同学想让我证明斐波那契数列的通项公式,我说:如果我现场证明了,那这课可能就讲不完了。为了弥补一下遗憾,我写了一篇浅薄的博客,限于作者水平,如有谬误欢迎各位斧正。

既然大家这么热情,那么我们就开始吧——如何用特征值法求斐波那契数列的通项公式。

斐波那契数列的定义

f 1 = f 2 = 1 , f n = f n − 1 + f n − 2 ( n ≥ 3 , n ∈ N ) f_1=f_2=1, f_n=f_{n-1}+f_{n-2}(n\geq 3,n\in \N) f1=f2=1,fn=fn1+fn2(n3,nN)

除了第一项和第二项外,不难发现每一项都只与其前面的两项有关。

斐波那契数列的矩阵乘法定义

( f n − 1 , f n ) ( 0 1 1 1 ) = ( f n , f n + 1 ) ( n ≥ 2 , n ∈ N ) (f_{n-1},f_{n}) \left( \begin{matrix} 0 & 1\\ 1 & 1 \end{matrix} \right)=(f_n, f_{n+1}) (n\geq2, n\in \N) (fn1,fn)(0111)=(fn,fn+1)(n2,nN)

当然,也要有

f 1 = f 2 = 1 f_1=f_2=1 f1=f2=1

为什么不再多写几项呢?

( f 1 , f 2 ) ( 0 1 1 1 ) = ( f 2 , f 3 ) (f_{1},f_{2}) \left( \begin{matrix} 0 & 1\\ 1 & 1 \end{matrix} \right)=(f_2, f_{3}) (f1,f2)(0111)=(f2,f3)

( f 2 , f 3 ) ( 0 1 1 1 ) = ( f 3 , f 4 ) (f_{2},f_{3}) \left( \begin{matrix} 0 & 1\\ 1 & 1 \end{matrix} \right)=(f_3, f_{4}) (f2,f3)(0111)=(f3,f4)

⋮ \vdots

( f n − 1 , f n ) ( 0 1 1 1 ) = ( f n , f n + 1 ) (f_{n-1},f_{n}) \left( \begin{matrix} 0 & 1\\ 1 & 1 \end{matrix} \right)=(f_n, f_{n+1}) (fn1,fn)(0111)=(fn,fn+1)

哦哦,您记得高中数列的逐差法和累乘法吗?

( f 1 , f 2 ) ( 0 1 1 1 ) n − 1 = ( f n , f n + 1 ) (f_{1},f_{2}) \left( \begin{matrix} 0 & 1\\ 1 & 1 \end{matrix} \right)^{n-1}=(f_n, f_{n+1}) (f1,f2)(0111)n1=(fn,fn+1)

这样吧,我们记 f 0 = 0 f_0=0 f0=0那么就有 f 2 = f 1 + f 2 f_2=f_1+f_2 f2=f1+f2,也就有

( f 0 , f 1 ) ( 0 1 1 1 ) n = ( f n , f n + 1 ) (f_0,f_{1}) \left( \begin{matrix} 0 & 1\\ 1 & 1 \end{matrix} \right)^{n}=(f_n, f_{n+1}) (f0,f1)(0111)n=(fn,fn+1)

如果我们记

A = ( 0 1 1 1 ) A=\left( \begin{matrix} 0 & 1\\ 1 & 1 \end{matrix} \right) A=(0111)

那么问题就转化为如何计算 A n A^n An

对矩阵 A A A 进行相似对角化就可以了,如果我们能够找到可逆矩阵 P P P 以及对角矩阵 Λ \Lambda Λ 使得 P − 1 A P = Λ P^{-1}AP=\Lambda P1AP=Λ A = P Λ P − 1 A=P\Lambda P^{-1} A=PΛP1。那么就有

A n = ( P Λ P − 1 ) ( P Λ P − 1 ) ⋯ ( P Λ P − 1 ) = P Λ ( P − 1 P ) Λ ( P − 1 ⋯ P ) Λ P − 1 = P Λ n P − 1 A^n=(P\Lambda P^{-1})(P\Lambda P^{-1})\cdots (P\Lambda P^{-1})=P\Lambda (P^{-1}P)\Lambda (P^{-1}\cdots P)\Lambda P^{-1}=P\Lambda^n P^{-1} An=(PΛP1)(PΛP1)(PΛP1)=PΛ(P1P)Λ(P1P)ΛP1=PΛnP1

对角矩阵的 n n n 次幂应该还是挺好求的,好的,我们可以开始求特征值了。

设矩阵 A A A 的特征值为 λ \lambda λ ,那么就有

∣ λ E − A ∣ = ∣ λ − 1 − 1 λ − 1 ∣ = λ 2 − λ − 1 = 0 |\lambda E-A|= \left| \begin{matrix} \lambda & -1\\ -1 & \lambda-1 \end{matrix} \right|=\lambda^2-\lambda-1=0 λEA=λ11λ1=λ2λ1=0

解个一元二次方程组吧,这个大家初中时候应该就学过。

Δ = b 2 − 4 a c = 5 > 0 \Delta=\sqrt{b^2-4ac}=\sqrt 5>0 Δ=b24ac =5 >0

λ 1 , 2 = 1 ± 5 2 \lambda_{1,2}=\frac{1\pm\sqrt 5}{2} λ1,2=21±5

接下来我们要找到与之对应的特征向量

这个过程看起来可能会比较枯燥:

( λ E − A ) x = 0 (\lambda E-A)\boldsymbol{x}=\boldsymbol{0} (λEA)x=0

λ 1 , 2 \lambda_{1,2} λ1,2 带入上述方程,得到一个齐次线性方程组的非零解 x x x 就是特征向量了。对于 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2 分别随便找一组解就行。

( λ E − A ) x = ( λ − 1 − 1 λ − 1 ) x = 0 (\lambda E-A)\boldsymbol{x}= \left( \begin{matrix} \lambda & -1\\ -1 & \lambda-1 \end{matrix} \right)\boldsymbol{x}=\boldsymbol{0} (λEA)x=(λ11λ1)x=0

x = ( x 1 x 2 ) \boldsymbol{x}= \left( \begin{matrix} x_1\\ x_2 \end{matrix} \right) x=(x1x2) ,带入矩阵方程得到方程组

{ λ x 1 − x 2 = 0 − x 1 + ( λ − 1 ) x 2 = 0 \left\{ \begin{aligned} \lambda x_1-x_2=0\\ -x_1+(\lambda-1)x_2=0 \end{aligned} \right. {λx1x2=0x1+(λ1)x2=0

我们知道 λ ≠ 0 \lambda\not=0 λ=0,因此可以这样

{ x 1 − 1 λ x 2 = 0 − x 1 + ( λ − 1 ) x 2 = 0 \left\{ \begin{aligned} x_1-\frac{1}{\lambda}x_2=0\\ -x_1+(\lambda-1)x_2=0 \end{aligned} \right. x1λ1x2=0x1+(λ1)x2=0

两式相加得到

( λ − 1 − 1 λ ) x 2 = 0 , x 1 = ( λ − 1 ) x 2 (\lambda-1-\frac{1}{\lambda})x_2=0,x_1=(\lambda-1)x_2 (λ1λ1)x2=0,x1=(λ1)x2

我们惊奇地发现, λ − 1 − 1 λ = 0 \lambda-1-\frac{1}{\lambda}=0 λ1λ1=0,因此 λ 2 \lambda_2 λ2 是自由变量。不妨令 x 2 = 1 , x 1 = λ − 1 x_2=1, x_1=\lambda-1 x2=1x1=λ1

λ 1 = 1 + 5 2 \lambda_1=\frac{1+\sqrt 5}{2} λ1=21+5

特征向量为

α 1 = ( 5 − 1 2 1 ) \boldsymbol{\alpha_1}= \left( \begin{matrix} \frac{\sqrt 5 - 1}{2}\\ 1 \end{matrix} \right) α1=(25 11)

λ 2 = 1 − 5 2 \lambda_2=\frac{1-\sqrt 5}{2} λ2=215

特征向量为

α 2 = ( − 5 − 1 2 1 ) \boldsymbol{\alpha_2}= \left( \begin{matrix} \frac{-\sqrt 5 - 1}{2}\\ 1 \end{matrix} \right) α2=(25 11)

这样我们就得到对角化后的矩阵了

我们记 P = ( α 1 , α 2 ) P=(\alpha_1, \alpha_2) P=(α1,α2) 则有

P − 1 A P = ( 1 + 5 2 0 0 1 − 5 2 ) P^{-1}AP= \left( \begin{matrix} \frac{1+\sqrt 5}{2} & 0 \\ 0 & \frac{1-\sqrt 5}{2} \end{matrix} \right) P1AP=(21+5 00215 )

这是特征向量的性质之一,如果您不相信我,或者没有好好学习线性代数的话,建议手动矩阵乘法验证一下上式。

还剩下的工作不多了

对上式左右两侧同时求 n n n 次幂

P − 1 A n P = ( ( 1 + 5 2 ) n 0 0 ( 1 − 5 2 ) n ) P^{-1}A^nP= \left( \begin{matrix} \left(\frac{1+\sqrt 5}{2}\right)^n & 0 \\ 0 & \left(\frac{1-\sqrt 5}{2}\right)^n \end{matrix} \right) P1AnP=(21+5 )n00(215 )n

因此

A n = P ( ( 1 + 5 2 ) n 0 0 ( 1 − 5 2 ) n ) P − 1 ( ∗ ) A^n=P \left( \begin{matrix} \left(\frac{1+\sqrt 5}{2}\right)^n & 0 \\ 0 & \left(\frac{1-\sqrt 5}{2}\right)^n \end{matrix} \right)P^{-1} \qquad (*) An=P(21+5 )n00(215 )nP1()

让我们淡定的对 P P P 矩阵求逆。

P = ( α 1 , α 2 ) = ( 5 − 1 2 − 5 − 1 2 1 1 ) P=(\alpha_1, \alpha_2)=\left(\begin{matrix} \frac{\sqrt 5 - 1}{2} & \frac{-\sqrt 5 - 1}{2}\\ 1 & 1 \end{matrix}\right) P=(α1,α2)=(25 1125 11)

首先

∣ P ∣ = 5 − 1 2 − − 5 − 1 2 = 5 |P|=\frac{\sqrt 5 - 1}{2}-\frac{-\sqrt 5 - 1}{2}=\sqrt 5 P=25 125 1=5

然后 P P P 的伴随矩阵是

P ∗ = ( 1 5 + 1 2 − 1 5 − 1 2 ) P^*=\left(\begin{matrix} 1 & \frac{\sqrt 5 + 1}{2}\\ -1 & \frac{\sqrt 5 - 1}{2} \end{matrix}\right) P=(1125 +125 1)

那么我们就有

P − 1 = P ∗ ∣ P ∣ = 1 5 ( 1 5 + 1 2 − 1 5 − 1 2 ) P^{-1}=\frac{P^*}{|P|}=\frac{1}{\sqrt 5}\left(\begin{matrix} 1 & \frac{\sqrt 5 + 1}{2}\\ -1 & \frac{\sqrt 5 - 1}{2} \end{matrix}\right) P1=PP=5 1(1125 +125 1)

带入 ( ∗ ) (*) ()

A n = ( 5 − 1 2 − 5 − 1 2 1 1 ) ( ( 1 + 5 2 ) n 0 0 ( 1 − 5 2 ) n ) 1 5 ( 1 5 + 1 2 − 1 5 − 1 2 ) A^n=\left(\begin{matrix} \frac{\sqrt 5 - 1}{2} & \frac{-\sqrt 5 - 1}{2}\\ 1 & 1 \end{matrix}\right) \left( \begin{matrix} \left(\frac{1+\sqrt 5}{2}\right)^n & 0 \\ 0 & \left(\frac{1-\sqrt 5}{2}\right)^n \end{matrix} \right)\frac{1}{\sqrt 5}\left(\begin{matrix} 1 & \frac{\sqrt 5 + 1}{2}\\ -1 & \frac{\sqrt 5 - 1}{2} \end{matrix}\right) An=(25 1125 11)(21+5 )n00(215 )n5 1(1125 +125 1)

看着太累了用 λ 1 , λ 2 \lambda_1,\lambda_2 λ1,λ2 简化表示。

A n = ( − λ 2 − λ 1 1 1 ) ( λ 1 n 0 0 λ 2 n ) 1 5 ( 1 λ 1 − 1 − λ 2 ) A^n=\left(\begin{matrix} -\lambda_2 & -\lambda_1\\ 1 & 1 \end{matrix}\right) \left( \begin{matrix} \lambda_1^n & 0 \\ 0 & \lambda_2^n \end{matrix} \right)\frac{1}{\sqrt 5}\left(\begin{matrix} 1 & \lambda_1\\ -1 & -\lambda_2 \end{matrix}\right) An=(λ21λ11)(λ1n00λ2n)5 1(11λ1λ2)

全部乘开,感兴趣的同学自己手动乘一下吧

A n = 1 5 ( − λ 2 λ 1 n + λ 1 λ 2 n − λ 2 λ n + 1 + λ 1 λ 2 n + 1 λ 1 n − λ 2 n λ 1 n + 1 − λ 2 n + 1 ) A^n=\frac{1}{\sqrt 5}\left( \begin{matrix} -\lambda_2\lambda_1^n+\lambda_1\lambda_2^n & -\lambda_2\lambda^{n+1}+\lambda_1\lambda_2^{n+1}\\ \lambda_1^n-\lambda_2^n & \lambda_1^{n+1}-\lambda_2^{n+1} \end{matrix}\right) An=5 1(λ2λ1n+λ1λ2nλ1nλ2nλ2λn+1+λ1λ2n+1λ1n+1λ2n+1)

那么我们算算这个

( f 0 , f 1 ) A n = ( 0 , 1 ) A n = 1 5 ( λ 1 n − λ 2 n , λ 1 n + 1 − λ 2 n + 1 ) = ( f n , f n + 1 ) (f_0, f_1)A^n=(0, 1)A^n=\frac{1}{\sqrt 5}\left(\lambda_1^n-\lambda_2^n, \lambda_1^{n+1}-\lambda_2^{n+1}\right)=(f_n, f_{n+1}) (f0,f1)An=(0,1)An=5 1(λ1nλ2n,λ1n+1λ2n+1)=(fn,fn+1)

因此

f n = 1 5 ( λ 1 n − λ 2 n ) = 1 5 ( ( 1 + 5 2 ) n − ( 1 − 5 2 ) n ) f_n=\frac{1}{\sqrt 5}\left(\lambda_1^n-\lambda_2^n\right)=\frac{1}{\sqrt 5}\left(\left(\frac{1+\sqrt 5}{2}\right)^n-\left(\frac{1-\sqrt 5}{2}\right)^n\right) fn=5 1(λ1nλ2n)=5 1((21+5 )n(215 )n)

然后我们可以看一下百度百科上给出的通项公式

百度图片惊奇地发现完全一样欸,是的,这说明我们的计算大体上没有什么问题。

如果您感兴趣的话,还可以带入几个 n n n 进去算一算,检验一下这个公式是否正确。当然如果您想我一样懒的话,也可以写个程序去帮您算算这个通项公式求出的前 20 20 20 项斐波那契数列与 传统递推法求出的前 20 20 20 项斐波那契数列有什么不同。

总结一下

在刚刚过去的一个小时里,我们做了什么?用到了哪些知识点。事实上我们也没做什么惊天地泣鬼神的证明,一点点线代的知识就足够了。

  1. 我们用矩阵乘法替换掉了原有的递推公式,这使得我们能够通过矩阵乘法递推出斐波那契数列中的每一项。
  2. 我们用相似对角化的方法计算出了与矩阵 A A A 相似的对角阵 Λ \Lambda Λ 以及相似因子 P P P,使得矩阵的 n n n 次幂运算变得容易。
  3. 我们用伴随矩阵的方法求出了 P P P 矩阵的逆矩阵 P − 1 P^{-1} P1 ,毕竟 P P P 矩阵只是一个 2 × 2 2\times2 2×2的矩阵。

最后

感谢您这么认真地看到最后,无论您是不是外卷中心的一员,都欢迎您参加 2020-01-01 的联欢会。QQ群:“外卷中心 大水库”是我们的水群基地,也是我们联欢会的讨论群。在这里,你可以报个节目—展示才华,还可以开心地水群,另外,也可以不开心地水群,总之就是可以水群。

我始终相信,学习并不是苦修行,学习可以是一件快乐的事。只要你愿意交流而不是内卷,愿意理解而不是死记硬背。

最后,祝您学习愉快,提前祝各位元旦快乐。

2020-12-27 GGN_2015

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值