求解递推式与数列求和方法汇总
1. 求和因子法 (Summation Factor)
① 一阶线性递推
若递推式形如:
\[a_n \bar{T}_n = b_n \bar{T}_{n-1} + C_n
\]
要求 \(\bar{T}_n\) 的封闭形式,可采用求和因子 (summation factor)。
用 \(S_n\) 乘上两边:
\[S_n a_n \bar{T}_n = S_n b_n \bar{T}_{n-1} + S_n C_n
\]
取 \(S_n\) 满足:
\[S_n b_n = S_{n-1} a_{n-1}
\]
则转化为:
\[S_n a_n \bar{T}_n = S_{n-1} a_{n-1} \bar{T}_{n-1} + S_n C_n
\]
记 \(F_n = S_n a_n \bar{T}_n\),则有:
\[F_n = F_{n-1} + S_n C_n
\]
从而有:
\[F_n = S_0 a_0 \bar{T}_0 + \sum_{k=1}^n S_k C_k
\]
即:
\[\bar{T}_n = \frac{1}{S_n a_n} \left( S_0 a_0 \bar{T}_0 + \sum_{k=1}^n S_k C_k \right)
\]
下面来求解 \(S_n\):
由 \(S_n = \frac{S_{n-1} a_{n-1}}{b_n}\),于是有:
\[S_n = k \cdot \frac{\prod_{i=1}^{n-1} a_{i-1}}{\prod_{i=2}^{n} b_i}, \quad k \text{为不等于0的常数}
\]
eg1: 求解“快速排序”次数 \(C_n\)
\[\begin{cases}
C_0 = C_1 = 0 & \text{①} \\
C_n = n+1 + \frac{2}{n} \sum_{k=0}^{n-1} C_k & \text{②}
\end{cases}
\]
其中 \(C_n\) 为“快速排序”平均比较次数。
先将 ② 中 \(n\) 乘开:
\[nC_n = n^2 + n + 2\sum_{k=0}^{n-1} C_k
\]
向前差分得:
\[nC_n - (n-1)C_{n-1} = 2n + 2C_{n-1}
\]
\[\Rightarrow nC_n = (n+1)C_{n-1} + 2n \quad (n>2)
\]
构造求和因子:
\[S_n = \frac{\prod_{k=2}^n k}{\prod_{k=2}^n (k+1)} = \frac{2}{(n+1)n}
\]
故 \(C_n\) 的通项公式推导(利用求和因子法结果):
\[C_n = \frac{n+1}{2} \left( 2C_1 \cdot \frac{1}{2} + \sum_{k=2}^n \frac{4}{k+1} \right) - \frac{2}{3}(n+1)
\]
\[= 2(n+1) \sum_{k=2}^n \frac{1}{k+1} - \frac{2}{3}(n+1) \quad (n>1)
\]
Tip: \(-\frac{2}{3}(n+1)\) 是由 \(n=2\) 时特别讨论得到的修正项。
用调和级数 \(H_n\) 表示:
即
\[C_n = 2(n+1)H_n - \frac{8}{3}n - \frac{2}{3}
\]
其中 \(H_n = \sum_{k=1}^n \frac{1}{k}\)
2. 扰动法 (Perturbation Method)
格式:
\[S_n + a_{n+1} = S_{n+1} = a_0 + \sum_{k=1}^{n+1} a_k
\]
Tip: 移项得到 \(S_{n+1} - S_n = a_{n+1}\),即 \(S_n\) 的向前差分。
eg2: 求几何级数 \(G_n = \sum_{k=0}^n ax^k\) 的封闭形式。
\[G_n + ax^{n+1} = G_{n+1} = ax^0 + \sum_{k=0}^n ax^{k+1} = a + xG_n
\]
提有 \(G_n\):
\[G_n(1-x) = a - ax^{n+1}
\]
\[G_n = \frac{a - ax^{n+1}}{1-x}
\]
3. 归纳法
如对 \(\sum_{k=0}^n k^2\) 求和:
若猜测出答案为 \(\frac{n(n+\frac{1}{2})(n+1)}{3}\),对其归纳:
设 \(S_n = \sum_{k=0}^n k^2\),验证 \(S_{n+1}\) 满足通项。
\[S_n = S_{n-1} + n^2
\]
\[\iff 3S_n = (n^3 - \frac{3}{2}n^2 + \frac{1}{2}n) + 3n^2 = n(n+\frac{1}{2})(n+1)
\]
故上式成立。
4. 待定系数法
已知 \(S_n = \sum_{i=0}^n i^2\)。
知 \(S_n\) 一定为三次多项式。
不妨设 \(S_n = \alpha n^3 + \beta n^2 + \gamma n + \lambda\)。
带入前四项求解方程组即可定出系数。
5. 利用积分 (近似与误差分析)
已知 \(S_n = \sum_{k=0}^n k^2\)。
知 \(\int_0^n x^2 dx = \frac{n^3}{3}\)。
记误差数列 \(E_n = S_n - \frac{1}{3}n^3\):
\[E_n = S_{n-1} + n^2 - \frac{1}{3}n^3
\]
\[= (E_{n-1} + \frac{1}{3}(n-1)^3) + n^2 - \frac{1}{3}n^3
\]
\[= E_{n-1} + n - \frac{1}{3}
\]
故 \(E_n\) 满足递推 \(E_n = E_{n-1} + n - \frac{1}{3}\)。
\[E_n - E_0 = \sum_{i=1}^n i - \sum_{i=1}^n \frac{1}{3} = \frac{n(n+1)}{2} - \frac{1}{3}(n)
\]
(注:笔记中此处略有简略,核心思想是将高阶求和降阶)
\(\therefore S_n = E_n + \frac{1}{3}n^3 = \frac{n(n+1)(2n+1)}{6}\)
6. 特征方程法
定义移位算子 \(E\) (\(Ea_n = a_{n+1}\))。
如对于递推式:
\[a_n = c_1 a_{n-1} + c_2 a_{n-2}
\]
可改写为 \(a_n (E^2 - c_1 E - c_2) = 0\) (注:此处笔记写法略有不严谨,标准写法应为算子作用于序列)。
令 \(P(x) = x^2 - c_1 x - c_2\)。
得 \(P(E)a_n = 0\)。
我们称 \(P(E)\) 为该递推式的零化多项式。
由于 \(E(r^n) = r \cdot r^n = r^{n+1}\),
所以 \(\forall P\),都有 \(P(E)(r^n) = P(r) \cdot r^n\)。
故要使 \(P(E)(r^n) = 0\),则需 \(P(r) = 0\)。
故 \(a_n\) 可以表示为 \(r^n\) 的线性组合。
也可以从矩阵视角理解:
\[\begin{pmatrix} a_n \\ a_{n-1} \end{pmatrix} =
\underbrace{\begin{pmatrix} c_1 & c_2 \\ 1 & 0 \end{pmatrix}}_{M}
\begin{pmatrix} a_{n-1} \\ a_{n-2} \end{pmatrix}
\]
故求通项即求 \(M^n\),即解 \(\det(M - \lambda I) = 0\)。
\[\begin{vmatrix} c_1 - \lambda & c_2 \\ 1 & -\lambda \end{vmatrix} = \lambda^2 - c_1 \lambda - c_2 = 0
\]
若 \(M\) 有两个不同特征值 \(\lambda_1, \lambda_2\),
则 \(M = P \cdot \text{diag}(\lambda_1, \lambda_2) \cdot P^{-1}\)。
其中 \(\text{diag}(\lambda_1, \lambda_2)\) 表示对角矩阵,
\(P, P^{-1}\) 分别表示特征向量矩阵和其逆。
故 \(a_n\) 可表示为 \(\lambda_1^n\) 和 \(\lambda_2^n\) 的线性组合。
若 \(M\) 有重根:
则 \(M\) 中含一个 \(m \times m\) 的 Jordan 块:
\[J_2(\lambda) = \begin{pmatrix} \lambda & 1 \\ 0 & \lambda \end{pmatrix} = \lambda I + N
\]
其中 \(N^m = 0\)。
由二项式定理知:
\[J_2(\lambda)^n = (\lambda I + N)^n = \sum_{j=0}^n \binom{n}{j} \lambda^{n-j} N^j
\]
\(\binom{n}{j}\) 是关于 \(n\) 的 \(j\) 次多项式。
故 \(J_2(\lambda)^n\) 的每个非零元素都形如 \(p(n)\lambda^n\)。
故可以写为:
\[a_n = (A_0 + A_1 n)\lambda^n
\]
7. 生成函数法 (Generating Functions)
对于无限数列 \(\{a_n\}\),其生成函数定义为:
\[G(x) = \sum_{i=0}^{\infty} a_i x^i
\]
若对于有限数列,记其最后一项之后的项全为0,即可转换为无限数列。
如求 \(a_n - c_1 a_{n-1} - c_2 a_{n-2} = 0\) 的通项:
记生成函数 \(G(x) = \sum_{i=0}^{\infty} a_i x^i\) ①
则:
\[c_1 x G(x) = \sum_{i=0}^{\infty} c_1 a_i x^{i+1} = \sum_{j=1}^{\infty} c_1 a_{j-1} x^j \quad \text{②}
\]
\[c_2 x^2 G(x) = \sum_{i=0}^{\infty} c_2 a_i x^{i+2} = \sum_{j=2}^{\infty} c_2 a_{j-2} x^j \quad \text{③}
\]
① - ② - ③,得:
\[G(x)(1 - c_1 x - c_2 x^2) = a_0 + (a_1 - c_1 a_0)x
\]
故:
\[G(x) = \frac{a_0 + (a_1 - c_1 a_0)x}{1 - c_1 x - c_2 x^2}
\]
设分母分解因式为 \((1-r_1 x)(1-r_2 x)\),接下来讨论 3 种情况:
① \(r_1 \neq r_2\)
分解为:
\[G(x) = \frac{C_1}{1-r_1 x} + \frac{C_2}{1-r_2 x}
\]
由级数公式 \(\frac{1}{1-rx} = \sum r^n x^n\) 知:
\[G(x) = \sum (C_1 r_1^n + C_2 r_2^n) x^n
\]
故 \(a_n = C_1 r_1^n + C_2 r_2^n\)。
② \(r_1 = r_2 = r\)
分解为:
\[G(x) = \frac{C_1}{1-rx} + \frac{C_2}{(1-rx)^2}
\]
由级数公式 \(\frac{1}{(1-rx)^2} = \sum (n+1)r^n x^n\):
\[G(x) = \sum [C_1 r^n + C_2 (n+1)r^n] x^n
\]
故 \(a_n = C_1 r^n + C_2 (n+1)r^n\)。
③ 共轭复根
设根为 \(\alpha \pm i\beta\)。
分解为:
\[\frac{C}{1-(\alpha+i\beta)x} + \frac{\overline{C}}{1-(\alpha-i\beta)x}
\]
用 Euler 公式合并为:
\[a_n = \rho^n (K_1 \cos n\theta + K_2 \sin n\theta)
\]