前言
我个人认为,学线代,学特征值,就一定要学以致用。一个个定理,一个个公式,不应该是停留在课本上的死知识。它们应该活起来,丰富起来,被用来做有趣而且有意义的事——尽管我也想不出什么太好的让知识有趣起来的方法。
这里夹带一点私货:欢迎大家来参加安排在 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=fn−1+fn−2(n≥3,n∈N)
除了第一项和第二项外,不难发现每一项都只与其前面的两项有关。
斐波那契数列的矩阵乘法定义
( 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) (fn−1,fn)(0111)=(fn,fn+1)(n≥2,n∈N)
当然,也要有
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}) (fn−1,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)n−1=(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 P−1AP=Λ 即 A = P Λ P − 1 A=P\Lambda P^{-1} A=PΛP−1。那么就有
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ΛP−1)(PΛP−1)⋯(PΛP−1)=PΛ(P−1P)Λ(P−1⋯P)ΛP−1=PΛnP−1
对角矩阵的 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 ∣λE−A∣=∣∣∣∣λ−1−1λ−1∣∣∣∣=λ2−λ−1=0
解个一元二次方程组吧,这个大家初中时候应该就学过。
Δ = b 2 − 4 a c = 5 > 0 \Delta=\sqrt{b^2-4ac}=\sqrt 5>0 Δ=b2−4ac=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} (λE−A)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} (λE−A)x=(λ−1−1λ−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. {λx1−x2=0−x1+(λ−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=0−x1+(λ−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=1,x1=λ−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=21−5
特征向量为
α 2 = ( − 5 − 1 2 1 ) \boldsymbol{\alpha_2}= \left( \begin{matrix} \frac{-\sqrt 5 - 1}{2}\\ 1 \end{matrix} \right) α2=(2−5−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) P−1AP=(21+50021−5)
这是特征向量的性质之一,如果您不相信我,或者没有好好学习线性代数的话,建议手动矩阵乘法验证一下上式。
还剩下的工作不多了
对上式左右两侧同时求 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) P−1AnP=⎝⎛(21+5)n00(21−5)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(21−5)n⎠⎞P−1(∗)
让我们淡定的对 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−112−5−11)
首先
∣ P ∣ = 5 − 1 2 − − 5 − 1 2 = 5 |P|=\frac{\sqrt 5 - 1}{2}-\frac{-\sqrt 5 - 1}{2}=\sqrt 5 ∣P∣=25−1−2−5−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∗=(1−125+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) P−1=∣P∣P∗=51(1−125+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−112−5−11)⎝⎛(21+5)n00(21−5)n⎠⎞51(1−125+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)51(1−1λ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=51(−λ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=51(λ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=51(λ1n−λ2n)=51((21+5)n−(21−5)n)
然后我们可以看一下百度百科上给出的通项公式
惊奇地发现完全一样欸,是的,这说明我们的计算大体上没有什么问题。
如果您感兴趣的话,还可以带入几个 n n n 进去算一算,检验一下这个公式是否正确。当然如果您想我一样懒的话,也可以写个程序去帮您算算这个通项公式求出的前 20 20 20 项斐波那契数列与 传统递推法求出的前 20 20 20 项斐波那契数列有什么不同。
总结一下
在刚刚过去的一个小时里,我们做了什么?用到了哪些知识点。事实上我们也没做什么惊天地泣鬼神的证明,一点点线代的知识就足够了。
- 我们用矩阵乘法替换掉了原有的递推公式,这使得我们能够通过矩阵乘法递推出斐波那契数列中的每一项。
- 我们用相似对角化的方法计算出了与矩阵 A A A 相似的对角阵 Λ \Lambda Λ 以及相似因子 P P P,使得矩阵的 n n n 次幂运算变得容易。
- 我们用伴随矩阵的方法求出了 P P P 矩阵的逆矩阵 P − 1 P^{-1} P−1 ,毕竟 P P P 矩阵只是一个 2 × 2 2\times2 2×2的矩阵。
最后
感谢您这么认真地看到最后,无论您是不是外卷中心的一员,都欢迎您参加 2020-01-01 的联欢会。QQ群:“外卷中心 大水库”是我们的水群基地,也是我们联欢会的讨论群。在这里,你可以报个节目—展示才华,还可以开心地水群,另外,也可以不开心地水群,总之就是可以水群。
我始终相信,学习并不是苦修行,学习可以是一件快乐的事。只要你愿意交流而不是内卷,愿意理解而不是死记硬背。
最后,祝您学习愉快,提前祝各位元旦快乐。
2020-12-27 GGN_2015