二階齊次線性遞推通項公式的尋找

二階齊次線性遞推通項公式的尋找


前置技能:斐波那契數列與二階線性遞推

斐波那契數列f(n) 是遞歸定義的:

f(n)=f(n1)+f(n2),n2

其中f(0)=0,f(1)=1 。如果使用艾弗森約定處理分段,可以用一個公式統一:

f(n)=f(n1)+f(n2)+[n=1]

一般地,一個二階線性遞推式被遞歸地定義:

g(n)=αg(n1)+βg(n2),n2

其中g(0)=λ,g(1)=μ 。同樣地,使用艾弗森約定可以變形爲:

g(n)=αg(n1)+βg(n2)+λ[n=0]+(μλα)[n=1]

容易證明這兩種表達形式具有等價性。

技術:生成函數

一個數列g(n) 的生成函數爲G(n)=g(n) ,被定義爲:

G(n)=ng(n)zn

其中z 是一個形式變量。其中許多生成函數可以被寫成緊湊的封閉形式,《具體數學》中指出,在寫成封閉形式時我們一般不必考慮級數的收斂性。我們考慮一種特殊形式生成函數的封閉形式,其中g(n)=kρn ,根據定義有:

G(n)=nkρnzn=k+ρzngnzn=k+ρzG(n)

解得:G(n)=k1ρz

反過來,如果我們知道了一個函數的生成函數形如:G(n)=k1ρz ,我們就可以斷言,這個數列的第n 項必然是[zn]G=kρn 。這將是我們解決問題的關鍵。

計算過程

g(n)=αg(n1)+βg(n2)+λ[n=0]+(μλα)[n=1]

由於g(n1)=0,g(0),g(1), ,可以發現其生成函數爲zG(n) 。同樣的,g(n2) 的生成函數是z2G(n) 。對於僅在n=1 時有值的項(μλa)[n=1] ,其生成函數自然是(μλa)z 。上式被改寫爲:

G(n)=αzG(n)+βz2G(n)+λ+(μλa)z

解方程得到:

G(n)=λ+(μλα)z1αzβz2

考慮將這個式子表示成A1pz+B1qz 的形式,以便用上面的技術解決問題。通分後得到分母的方程:

(1pz)(1qz)=1αzβz2

也就是:

pq=βp+q=α

解得:

p=α+t2,q=αt2,t=α2+4β

分子的方程則是:

A(1qz)+B(1pz)=λ+(μλα)z

展開並解方程,得到:

A=λtλα+2μ2t,B=λα+λt2μ2t

則我們斷言,原方程第n[zn]G=Apn+Bqn 。整理後也就是:

λtλα+2μ2t(α+t2)n+λα+λt2μ2t(αt2)n

代入數據發現可以滿足斐波那契數列和一些小的情景,我們基本可以確定這個公式的正確性。

其他

運用同樣的技術,我們可以方便地處理含有常數項甚至f(n) 項的線性遞推數列。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章