Golden Ratio与Fibonacci

生活有点无聊…记点好玩的


引子

初中时代知道了Golden Ration,从数学老师那里第一次知道时,感觉很有趣的样子,于是在纸上推啊推,好奇为啥值是0.618呢?后来用换元法最终搞出,那个开心啊<( ̄︶ ̄)>,感觉数学神奇啊

高中时代无聊,有次捣腾Fibonacci数列,都说这是神奇的数列。于是自己看看有没有好玩的性质,于是让前面的数字除以后面的数字,1/1;1/2;/2/3;3/5;/5/8…等等,数值怎么不对,8/13;13/21,我去,好像是0.618!再继续,21/34;34/55,我擦,竟然真的是0.618这货,而且越往后越是Golden Ration!!什么情况,难道两者之间有不可描述的关系?(゚Д゚) ,在震惊的同时开始各种推,咳咳,但是以当时的阅历,当然并不知道这里面的水有多深,数学原理是啥…于是不了了之

于是荒废到了工作时代…Times fly and people start to die…

终于有一天,出来混的都还上了…不废话,正题了

Golden Ration

2 1 + 5 ≈ 0.618 ⇔ 1 + 5 2 ≈ 1.618 \frac{2}{1 + \sqrt{5}}\approx0.618\quad\Leftrightarrow\quad\frac{1 + \sqrt{5}}{2}\approx 1.618 1+5 20.61821+5 1.618
这两货相比大部分人都知道,传说中的黄金分割嘛,为啥起这名儿,也许是因为漂亮的妹子颜值的黄金比吧╮( ̄▽ ̄)╭。也不知道为什么造物主喜欢这样设计,反正只知道整容的都喜欢按这比例动刀…呵呵,说真格的,反正从有机生物到无机结构,很多存在都内含该比例。
得,来两张图吧!
还记得曾经的图么
在这里插入图片描述
再来张人体图吧(・ิω・ิ)
在这里插入图片描述

至于值的证明,用换元法把定义的等式处理下,可以得到二次方程
φ = 1 + 1 φ \varphi = 1 + \frac{1}{\varphi} φ=1+φ1
其中一根就是1.618,开心吧,另一根后面会有伏笔
好了,正题刚刚开始…

Fibonacci

先镇个楼,伟大的前辈还是要纪念下的
在这里插入图片描述

数列长这样的,大家都懂
1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , 233 , 377 1,1,2,3,5,8,13,21,34,55,89,144,233,377 1,1,2,3,5,8,13,21,34,55,89,144,233,377
等等,不觉得这货增长很快么,那么有多快呢?如果高中的猜测是对的话,后面相邻两数的比值越来越接近黄金比,那么这可是 O ( c n ) O(c^{n}) O(cn)指数级增长啊,1000的话地球都要爆炸了…

为啥这么快呢?
好了,严肃的要开始了,我也要开始还数学债了,非战斗人员可以跳过推导看思想就行


Fibonacci数列定义是这样的:
F k + 2 = F k + 1 + F k { F 0 = 1 } { F 1 = 1 } \textit{F}_{k + 2}=\textit{F}_{k + 1} + \textit{F}_{k}\\\left\{\textit{F}_{0}=1\right\}\quad\left\{\textit{F}_{1}=1\right\} Fk+2=Fk+1+Fk{F0=1}{F1=1}
递推式,怎么搞呢,不是通项式,有办法转化为通项表示吗?这样不就知道后项与前项的关系了吗?

注:
1. 后面推导的仅是证明思路中的一种
2. 最好有点线性代数基础

既然是两项两项一起出现的,那么就一起来运算吧
先来个Naive but useful trick打头:
S e t υ k = ( F k + 1 F k ) ( k ∈ N ) s o υ 0 = ( F 1 F 0 ) t h e n υ k + 1 = [ 1 1 1 0 ] υ k Set\quad \upsilon_{k}=\begin{pmatrix} \textit{F}_{k + 1}\\\textit{F}_{k}\end{pmatrix}(k\in N) \quad so \quad \upsilon_{0}=\begin{pmatrix} \textit{F}_{1}\\\textit{F}_{0}\end{pmatrix}\\ \\ then \quad \upsilon_{k + 1}=\begin{bmatrix}1 &1 \\1 &0 \end{bmatrix}\upsilon_{k} Setυk=(Fk+1Fk)(kN)soυ0=(F1F0)thenυk+1=[1110]υk

重点出现了,矩阵,要开始玩矩阵了!这时什么“线性无关”、“空间基向量”、“行列式”、“特征向量与特征矩阵”等这些概念需要载入大脑内存了哈,忘了的赶紧谷哥度娘起来( ̄. ̄)

再清晰一点
S u p p o s e A = [ 1 1 1 0 ] t h e n    w e    g e t ⇒ υ k + 1 = A υ k Suppose \quad A= \begin{bmatrix}1 &1 \\1 &0 \end{bmatrix} then\;we\;get \\ \\ \Rightarrow \qquad \upsilon_{k + 1}=A\upsilon_{k} SupposeA=[1110]thenwegetυk+1=Aυk

这里A有对应的含义么,如果Fibonacci相邻两项 F k + 1 \textit{F}_{k + 1} Fk+1 F k \textit{F}_{k} Fk看成空间中的向量,那么 υ k + 1 \upsilon_{k+1} υk+1就是 υ k \upsilon_{k} υk在A变换下产生的向量,直观的看,这里是不是有点像简单的递推式了?

关键就是这里,看清楚喔,变换矩阵A可是n维实对称阵啊,还记得线代上被虐过的定理吧:n阶实对称阵必存在n个实特征值和n个线性无关的特征向量,而且能被对角化
(啊,这啥意思啊?有用么,能当钱花,当饭吃么?额,同学你先坐下冷静下,好像现在AI时代是可以的哈) (;¬_¬)

回来再说,一般某矩阵如果能分解为特征值与特征向量来表示的话,那么恭喜你,你就能看到这个矩阵的本质了,毕竟起名都叫“特征”了(゚▽゚)/如果你再将某矩阵n个线性无关的特征向量组合起来形成空间的话(姑且称为特征矩阵吧),你就知道:
矩阵A在物理上就变成了一种投影关系,表示将某个向量投影到A的特征矩阵代表的空间
如果理解了这一点,上面的式子就像是从 υ 0 \upsilon_{0} υ0开始,不断地被A向量进行着变换,但是不要慌,我们的推导不用这么抽象。

A的特征向量和特征值先求起来吧,忘了的直接用python或matlab工具包愉快的求出来吧。这样你会愉悦地发现:
特征值刚好就是两个黄金比例二次方程的两个根!

惊喜不惊喜,意外不意外!

呵呵,其实没啥意外的,大道归一而且这篇软文就是讲这两者之间不可描述的关系的嘛,有见识,很聪明的同学已经开始在心里翻白眼了…没关系,继续来

A的两个特征值是: λ 1 = 1 + 5 2 ≈ 1.618 λ 2 = 1 − 5 2 ≈ − 0.618 \lambda_{1}=\frac{1 + \sqrt{5}}{2}\approx1.618\quad\lambda_{2}=\frac{1 - \sqrt{5}}{2}\approx-0.618 λ1=21+5 1.618λ2=215 0.618

有点要记住啊,这里我们suppose绝对值大的那个特征值是 λ 1 \lambda_{1} λ1,会看到后面有用的。

A的两个特征值 λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2分别对应特征向量为 χ 1 = ( λ 1 1 ) \chi_{1}=\begin{pmatrix}\lambda_{1}\\1\end{pmatrix} χ1=(λ11) χ 2 = ( λ 2 1 ) \chi_{2}=\begin{pmatrix}\lambda_{2}\\1\end{pmatrix} χ2=(λ21)

关键的Suppose来了:
由于A的两个特征向量是线性无关的,我们就把这两货作为新2维空间的基,将 υ 0 \upsilon_{0} υ0在这个空间中表示出来
υ 0 = ( F 1 F 0 ) = c 1 χ 1 + c 2 χ 2 = [ c 1 λ 1 + c 2 λ 2 c 1 + c 2 ] \upsilon_{0}=\begin{pmatrix} \textit{F}_{1}\\\textit{F}_{0}\end{pmatrix}=c_{1}\chi_{1}+c_{2}\chi_{2}=\begin{bmatrix}c_{1}\lambda{1}+c_{2}\lambda{2}\\c_{1}+c_{2}\end{bmatrix} υ0=(F1F0)=c1χ1+c2χ2=[c1λ1+c2λ2c1+c2]
如果再矩阵化的话是这样的
S u p p o s e S = [ λ 1 λ 2 1 1 ] a n d C = [ c 1 c 2 ] t h e n υ 0 = S C Suppose\quad S=\begin{bmatrix}\lambda_{1} &\lambda_{2} \\1 &1 \end{bmatrix} \quad and \quad C=\begin{bmatrix} c_{1}\\c_{2} \end{bmatrix} \\ \\ then \quad\upsilon_{0}=SC SupposeS=[λ11λ21]andC=[c1c2]thenυ0=SC

这里S可以称为特征矩阵吧

好戏来了!
根据之前Fibonacci的递推式 υ k + 1 = A υ k \upsilon_{k + 1}=A\upsilon_{k} υk+1=Aυk,我们可知: υ k = A k υ 0 \upsilon_{k}=A^{k}\upsilon_{0} υk=Akυ0,而根据提过的对角化的优美性质( ̄▽ ̄)~*,我们知道矩阵A是可以分解为(可以验证的):
A = S Λ S − 1 h e r e Λ = [ λ 1 0 0 λ 2 ] A=S \Lambda S^{-1}\quad here \quad \Lambda = \begin{bmatrix}\lambda_{1} & 0\\0 &\lambda_{2} \end{bmatrix} A=SΛS1hereΛ=[λ100λ2],其中S就是上面的特征矩阵;又计算得知 A k = S Λ k S − 1 A^{k}=S\Lambda^{k}S^{-1} Ak=SΛkS1

所以…铺垫这么多,终于可以推导了(这里详细一点)
υ k = A k υ 0 = A k S C = S Λ k S − 1 S C = S Λ k C = [ λ 1 λ 2 1 1 ] [ λ 1 k 0 0 λ 2 k ] [ c 1 c 2 ] = [ c 1 λ 1 k + 1 + c 2 λ 2 k + 1 c 1 λ 1 k + c 2 λ 2 k ] = [ F k + 1 F k ] \upsilon_{k}=A^{k}\upsilon_{0}=A^{k}SC=S\Lambda^{k}S^{-1}SC=S\Lambda^{k}C\\=\begin{bmatrix}\lambda_{1} &\lambda_{2} \\1 &1 \end{bmatrix}\begin{bmatrix}\lambda_{1}^{k} & 0\\0 &\lambda_{2}^{k} \end{bmatrix}\begin{bmatrix} c_{1}\\c_{2} \end{bmatrix}=\begin{bmatrix} c_{1}\lambda_{1}^{k+1} + c_{2}\lambda_{2}^{k+1}\\c_{1}\lambda_{1}^{k} + c_{2}\lambda_{2}^{k} \end{bmatrix}=\begin{bmatrix} \textit{F}_{k+1}\\\textit{F}_{k} \end{bmatrix} υk=Akυ0=AkSC=SΛkS1SC=SΛkC=[λ11λ21][λ1k00λ2k][c1c2]=[c1λ1k+1+c2λ2k+1c1λ1k+c2λ2k]=[Fk+1Fk]

这…这,我们想要的通项公式出来了啊啊啊!
先求出 c 1 c_{1} c1 c 2 c_{2} c2
υ 0 = ( F 1 F 0 ) = [ c 1 λ 1 + c 2 λ 2 c 1 + c 2 ] = ( 1 1 ) ⇒ c 1 = 1 − λ 2 λ 1 − λ 2 , c 2 = λ 1 − 1 λ 1 − λ 2 \upsilon_{0}=\begin{pmatrix} \textit{F}_{1}\\\textit{F}_{0}\end{pmatrix}=\begin{bmatrix}c_{1}\lambda{1}+c_{2}\lambda{2}\\c_{1}+c_{2}\end{bmatrix}=\begin{pmatrix}1\\1\end{pmatrix}\Rightarrow c_{1}=\frac{1-\lambda_{2}}{\lambda_{1}-\lambda_{2}}, c_{2}=\frac{\lambda_{1}-1}{\lambda_{1}-\lambda_{2}} υ0=(F1F0)=[c1λ1+c2λ2c1+c2]=(11)c1=λ1λ21λ2,c2=λ1λ2λ11

最终通项式就是: F k = 1 − λ 2 λ 1 − λ 2 λ 1 k + λ 1 − 1 λ 1 − λ 2 λ 2 k \textit{F}_{k}=\frac{1-\lambda_{2}}{\lambda_{1}-\lambda_{2}}\lambda_{1}^{k} + \frac{\lambda_{1}-1}{\lambda_{1}-\lambda_{2}}\lambda_{2}^{k} Fk=λ1λ21λ2λ1k+λ1λ2λ11λ2k

知道通项式后终于可以知道Fibonacci数列为什么是按黄金率增长了…
F k + 1 F k = c 1 λ 1 k + 1 + c 2 λ 2 k + 1 c 1 λ 1 k + c 2 λ 2 k ≈ λ 1 C o n s i d e r ∣ λ 1 ∣ > 1 a n d ∣ λ 2 ∣ < 1 w h e n k → ∞ \frac{\textit{F}_{k+1}}{\textit{F}_{k}}=\frac{c_{1}\lambda_{1}^{k+1} + c_{2}\lambda_{2}^{k+1}}{c_{1}\lambda_{1}^{k} + c_{2}\lambda_{2}^{k}}\approx\lambda_{1}\\Consider \quad \left | \lambda_{1} \right | > 1 \quad and \quad \left | \lambda_{2} \right | < 1 \quad when \quad k \to \infty FkFk+1=c1λ1k+c2λ2kc1λ1k+1+c2λ2k+1λ1Considerλ1>1andλ2<1whenk

这里负值根也是有用的喔,用于收敛趋于0…

有耐心看到这的童鞋有福了,LZ累死了,码这么多公式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值