0%
✦
• 5 min read • 学习笔记

线性递归关系

本节我们介绍了线性递归关系的定义、求解方法。通过特征方程法和生成函数法,我们可以系统地求解各种线性递推关系,包括齐次和非齐次的情况。本节主要是为了补充生成函数中的内容,帮助读者更好地理解线性递推关系的求解方法。

1 齐次线性递推

定义:kk 阶齐次线性递推关系形如:

an=c1an−1+c2an−2+⋯+ckan−ka_n = c_1 a_{n-1} + c_2 a_{n-2} + \cdots + c_k a_{n-k}

其中 c1,c2,…,ckc_1, c_2, \ldots, c_k 为常数,且 ck≠0c_k \neq 0。


特征方程法:

为了求解上述递推关系,我们假设解的形式为 an=rna_n = r^n,代入递推式得到:

rn=c1rn−1+c2rn−2+⋯+ckrn−kr^n = c_1 r^{n-1} + c_2 r^{n-2} + \cdots + c_k r^{n-k}

两边除以 rn−kr^{n-k},得到特征方程:

rk=c1rk−1+c2rk−2+⋯+ckr^k = c_1 r^{k-1} + c_2 r^{k-2} + \cdots + c_k

即:

rk−c1rk−1−c2rk−2−⋯−ck=0r^k - c_1 r^{k-1} - c_2 r^{k-2} - \cdots - c_k = 0


不同根的情况:

若特征方程有 kk 个互不相同的根 r1,r2,…,rkr_1, r_2, \ldots, r_k,则通解为:

an=A1r1n+A2r2n+⋯+Akrkna_n = A_1 r_1^n + A_2 r_2^n + \cdots + A_k r_k^n

其中 A1,A2,…,AkA_1, A_2, \ldots, A_k 为由初始条件确定的常数。


重根的情况:

若特征方程有重根,设 rr 是 mm 重根,则对应的解包含以下 mm 项:

(B0+B1n+B2n2+⋯+Bm−1nm−1)⋅rn(B_0 + B_1 n + B_2 n^2 + \cdots + B_{m-1} n^{m-1}) \cdot r^n

其中 B0,B1,…,Bm−1B_0, B_1, \ldots, B_{m-1} 为待定常数。


例子:Fibonacci数列

Fibonacci数列定义为:

Fn=Fn−1+Fn−2,F0=0,F1=1F_n = F_{n-1} + F_{n-2}, \quad F_0 = 0, \quad F_1 = 1

特征方程为:

r2=r+1⇒r2−r−1=0r^2 = r + 1 \quad \Rightarrow \quad r^2 - r - 1 = 0

解得:

r1,2=1±52r_{1,2} = \frac{1 \pm \sqrt{5}}{2}

设 ϕ=1+52\phi = \frac{1 + \sqrt{5}}{2}(黄金比例),ψ=1−52\psi = \frac{1 - \sqrt{5}}{2}。

通解为:

Fn=A⋅ϕn+B⋅ψnF_n = A \cdot \phi^n + B \cdot \psi^n

利用初始条件 F0=0,F1=1F_0 = 0, F_1 = 1:

{A+B=0Aϕ+Bψ=1\begin{cases} A + B = 0 \\ A\phi + B\psi = 1 \end{cases}

解得:

A=15,B=−15A = \frac{1}{\sqrt{5}}, \quad B = -\frac{1}{\sqrt{5}}

因此Fibonacci数列的Binet公式为:

Fn=15[(1+52)n−(1−52)n]F_n = \frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^n - \left(\frac{1-\sqrt{5}}{2}\right)^n\right]


2 非齐次线性递推

定义:kk 阶非齐次线性递推关系形如:

an=c1an−1+c2an−2+⋯+ckan−k+f(n)a_n = c_1 a_{n-1} + c_2 a_{n-2} + \cdots + c_k a_{n-k} + f(n)

其中 f(n)≢0f(n) \not\equiv 0 称为非齐次项。


解法:

非齐次线性递推的通解由两部分组成:

an=an(h)+an(p)a_n = a_n^{(h)} + a_n^{(p)}

其中:

  • an(h)a_n^{(h)} 是对应齐次方程的通解(由特征方程法求得)
  • an(p)a_n^{(p)} 是非齐次方程的特解

求特解的方法:

1. 常数变易法(待定系数法)

根据 f(n)f(n) 的形式猜测特解的形式,常见的对应关系:

f(n)f(n) 的形式特解 an(p)a_n^{(p)} 的猜测形式
常数 CC常数 AA
多项式 Pm(n)P_m(n)同次多项式 Qm(n)Q_m(n)
C⋅rnC \cdot r^n(rr 不是特征根)A⋅rnA \cdot r^n
C⋅rnC \cdot r^n(rr 是 mm 重特征根)A⋅nm⋅rnA \cdot n^m \cdot r^n
cos⁡(ωn)\cos(\omega n) 或 sin⁡(ωn)\sin(\omega n)Acos⁡(ωn)+Bsin⁡(ωn)A\cos(\omega n) + B\sin(\omega n)

2. 叠加原理

若 f(n)=f1(n)+f2(n)f(n) = f_1(n) + f_2(n),且 an(p1)a_n^{(p_1)} 是对应 f1(n)f_1(n) 的特解,an(p2)a_n^{(p_2)} 是对应 f2(n)f_2(n) 的特解,则:

an(p)=an(p1)+an(p2)a_n^{(p)} = a_n^{(p_1)} + a_n^{(p_2)}


例子:带常数项的递推

求解:an=3an−1−2an−2+4a_n = 3a_{n-1} - 2a_{n-2} + 4,其中 a0=1,a1=3a_0 = 1, a_1 = 3

步骤1:求齐次通解

特征方程:r2−3r+2=0⇒(r−1)(r−2)=0r^2 - 3r + 2 = 0 \Rightarrow (r-1)(r-2) = 0

根为 r1=1,r2=2r_1 = 1, r_2 = 2

齐次通解:an(h)=C1⋅1n+C2⋅2n=C1+C2⋅2na_n^{(h)} = C_1 \cdot 1^n + C_2 \cdot 2^n = C_1 + C_2 \cdot 2^n

步骤2:求特解

由于 f(n)=4f(n) = 4 是常数,且 r=1r = 1 是特征根(单根),设特解:

an(p)=A⋅na_n^{(p)} = A \cdot n

代入原递推式:

An=3A(n−1)−2A(n−2)+4An = 3A(n-1) - 2A(n-2) + 4

An=3An−3A−2An+4A+4An = 3An - 3A - 2An + 4A + 4

An=An+A+4An = An + A + 4

比较系数:0=A+4⇒A=−40 = A + 4 \Rightarrow A = -4

所以特解为 an(p)=−4na_n^{(p)} = -4n

步骤3:求通解并确定常数

an=C1+C2⋅2n−4na_n = C_1 + C_2 \cdot 2^n - 4n

利用初始条件:

  • a0=1a_0 = 1:C1+C2=1C_1 + C_2 = 1
  • a1=3a_1 = 3:C1+2C2−4=3⇒C1+2C2=7C_1 + 2C_2 - 4 = 3 \Rightarrow C_1 + 2C_2 = 7

解得:C2=6,C1=−5C_2 = 6, C_1 = -5

最终解:

an=−5+6⋅2n−4n=6⋅2n−4n−5a_n = -5 + 6 \cdot 2^n - 4n = 6 \cdot 2^n - 4n - 5


3 生成函数解递推

生成函数是求解递推关系的强大工具,特别适用于复杂的递推关系。


基本步骤:

步骤1:设生成函数

设数列 {an}\{a_n\} 的普通生成函数为:

G(x)=∑n=0∞anxnG(x) = \sum_{n=0}^{\infty} a_n x^n

步骤2:利用递推关系建立方程

将递推关系两边乘以 xnx^n 并求和,通过代数变形得到关于 G(x)G(x) 的方程。

步骤3:求解生成函数

解出 G(x)G(x) 的封闭形式。

步骤4:展开生成函数

将 G(x)G(x) 展开为幂级数,xnx^n 的系数即为 ana_n。


例子:用生成函数解Fibonacci数列

递推关系:Fn=Fn−1+Fn−2F_n = F_{n-1} + F_{n-2},F0=0,F1=1F_0 = 0, F_1 = 1

设生成函数:

G(x)=∑n=0∞Fnxn=F0+F1x+F2x2+⋯G(x) = \sum_{n=0}^{\infty} F_n x^n = F_0 + F_1 x + F_2 x^2 + \cdots

利用递推关系(对 n≥2n \geq 2):

∑n=2∞Fnxn=∑n=2∞Fn−1xn+∑n=2∞Fn−2xn\sum_{n=2}^{\infty} F_n x^n = \sum_{n=2}^{\infty} F_{n-1} x^n + \sum_{n=2}^{\infty} F_{n-2} x^n

左边:G(x)−F0−F1x=G(x)−xG(x) - F_0 - F_1 x = G(x) - x

右边第一项:x∑n=2∞Fn−1xn−1=x∑m=1∞Fmxm=x(G(x)−F0)=xG(x)x \sum_{n=2}^{\infty} F_{n-1} x^{n-1} = x \sum_{m=1}^{\infty} F_m x^m = x(G(x) - F_0) = xG(x)

右边第二项:x2∑n=2∞Fn−2xn−2=x2G(x)x^2 \sum_{n=2}^{\infty} F_{n-2} x^{n-2} = x^2 G(x)

因此:

G(x)−x=xG(x)+x2G(x)G(x) - x = xG(x) + x^2 G(x)

G(x)=x1−x−x2G(x) = \frac{x}{1 - x - x^2}

对分母因式分解:1−x−x2=(1−ϕx)(1−ψx)1 - x - x^2 = (1 - \phi x)(1 - \psi x),其中 ϕ=1+52,ψ=1−52\phi = \frac{1+\sqrt{5}}{2}, \psi = \frac{1-\sqrt{5}}{2}

部分分式分解:

x1−x−x2=A1−ϕx+B1−ψx\frac{x}{1 - x - x^2} = \frac{A}{1 - \phi x} + \frac{B}{1 - \psi x}

解得:A=15,B=−15A = \frac{1}{\sqrt{5}}, B = -\frac{1}{\sqrt{5}}

因此:

G(x)=15⋅11−ϕx−15⋅11−ψxG(x) = \frac{1}{\sqrt{5}} \cdot \frac{1}{1 - \phi x} - \frac{1}{\sqrt{5}} \cdot \frac{1}{1 - \psi x}

利用 11−rx=∑n=0∞rnxn\frac{1}{1 - rx} = \sum_{n=0}^{\infty} r^n x^n,得到:

G(x)=∑n=0∞15(ϕn−ψn)xnG(x) = \sum_{n=0}^{\infty} \frac{1}{\sqrt{5}}(\phi^n - \psi^n) x^n

对比系数,得到Binet公式:

Fn=15[(1+52)n−(1−52)n]F_n = \frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^n - \left(\frac{1-\sqrt{5}}{2}\right)^n\right]


非齐次递推的生成函数法

对于非齐次递推 an=c1an−1+⋯+ckan−k+f(n)a_n = c_1 a_{n-1} + \cdots + c_k a_{n-k} + f(n),方法类似:

  1. 设 G(x)=∑anxnG(x) = \sum a_n x^n,F(x)=∑f(n)xnF(x) = \sum f(n) x^n
  2. 建立方程并求解 G(x)G(x)
  3. G(x)G(x) 通常形如:G(x)=P(x)+F(x)Q(x)G(x) = \frac{P(x) + F(x)}{Q(x)},其中 Q(x)Q(x) 由特征多项式决定

总结:

方法适用场景优点
特征方程法常系数线性递推直接、系统
生成函数法各种递推(含非齐次、变系数)通用性强,可处理复杂情况
待定系数法特定形式的非齐次项计算简单

生成函数法的优势在于它能统一处理齐次和非齐次递推,且易于处理复杂的初始条件和递推形式。

Comments