這完全是一個數學問題,但有的時候可以用來解決一些計算機問題,所以簡單總結一下。
感謝今天上午學長的精彩講解。 2018.1.24
結論
對於數列A,若An=p⋅An−1+q⋅An−2
那麼A的通項公式就一定能表示成An=α⋅xn1+β⋅xn2 的形式。
其中x1,x2 爲方程x2−p⋅x−q=0 的兩根。(它們也被稱爲這個數列的特徵根)
證明
我只是一個普通人,所以我並不知道數學家是如何腦洞大開,想出這個結論的,但是我們可以嘗試着“反向證明”。(這個證明是我自己胡亂YY的,別聽我胡扯!)
假如我們已知一個數列的通項公式爲An=α⋅xn1+β⋅xn2 ,那麼我們能不能試着反推它的遞推式。假如:An=p⋅An−1+q⋅An−2 ,那麼有:
[α⋅xn1+β⋅xn2]=p⋅[α⋅xn−11+β⋅xn−12]+q⋅[α⋅xn−21+β⋅xn−22]
也就是:
[α⋅xn1]+β⋅xn2=[p⋅α⋅xn−11+q⋅α⋅xn−21]+p⋅β⋅xn−12+q⋅β⋅xn−22 。
我們不妨假設,這個式子可以拆成兩部分:
α⋅xn1=p⋅α⋅xn−11+q⋅α⋅xn−21
β⋅xn2=p⋅β⋅xn−12+q⋅β⋅xn−22
係數約掉:
xn1=p⋅xn−11+q⋅xn−21
xn2=p⋅xn−12+q⋅xn−22
兩個式子分別處以xn−11,xn−22 :
x21=p⋅x1+q⇔x21−p⋅x1−q=0
x22=p⋅x2+q⇔x22−p⋅x2−q=0
這說明如果x1,x2 恰是x2−p⋅x−q=0 的兩根,該遞推式就可行。
(不靠譜的證明到此結束)
以後如果我知道了正確的證明方式我就把正確的證明補上。
用法
這樣的話,只需要知道這個數列中的任意兩項,帶入求出α,β 就得到了完整的通項公式。
用法案例:斐波那契數列
比如斐波那契數列的通項公式:
斐波那契數列的定義:
F0=F1=1
Fn=Fn−1+Fn−2:n≥2
它的特徵方程爲:
x2−x−1=0
兩個特徵根爲:x1=1+5√2,x2=1−5√2
所以通項公式爲Fn=α(1+5√2)n+β(1−5√2)n 。
把F0,F1 帶入通項公式。
F0=α+β=1
F1=α⋅1+5√2+β⋅1−5√2=1
解方程得:
α=5√+125√,β=5√−125√
所以,斐波那契數列通項公式爲:Fn=5√+125√(1+5√2)n+5√−125√(1−5√2)n
注意,這個通項公式是從n=0開始的,我看到百度上給出了從n=1開始的通項公式。
若將F1=F2=1 帶入通項公式:
F1=α⋅1+5√2+β⋅1−5√2=1
F2=α⋅(1+5√2)2+β⋅(1−5√2)2=1
解得:α=15√,β=−15√ 。
所以通項公式爲:Fn=15√(1+5√2)n−15√(1−5√2)n
這個式子只需要向左平移一下就可以得到剛纔求出的從0開始的那個通項公式(這說明我解方程沒解錯)。
—> 百度百科戳這裏 <—