线性递推:重根、生成函数与加权几何级数求和

Published

January 24, 2026

线性递推出现在任何下一个值依赖于前面值的场景中——种群模型、复利、计算机算法和信号处理都依赖于它们。斐波那契数列是一个著名的例子,本课中的技巧可以让你以封闭形式求解任何二阶线性递推。

本课涵盖的主题

  • 通过特征方程求解二阶线性递推
  • 重根情况:为什么单个指数项不够
  • 自由度与拟合初始条件
  • 逐项消去求和以恢复通解公式
  • 生成函数与幂级数展开
  • 加权几何级数求和:\(\sum (n+1) r^n\)
  • 负整数幂的二项展开
  • 与帕斯卡三角和 \(\frac{1}{1-x}\) 的高次幂的联系

课程视频

课程关键帧

帧 1:特征方程与重根设置

帧 2:逐项消去求和推导

帧 3:重根情况的通解公式

帧 4:生成函数与二项展开

背景介绍:二阶线性递推

二阶线性递推是用前两项定义每一项的规则:

\[f(n+1) = p \cdot f(n) + q \cdot f(n-1)\]

以及两个初始条件 \(f(0)\)\(f(1)\)

这个递推是线性的,因为 \(f(n)\)\(f(n-1)\) 只出现一次幂——没有 \(f(n)^2\)\(f(n) \cdot f(n-1)\) 这样的项。这正是特征方程法能够奏效的原因。

特征方程法

Important核心要点
  1. 特征方程:\(f(n+1) = p\,f(n) + q\,f(n-1)\) 替换为 \(x^2 = px + q\),即 \(x^2 - px - q = 0\)
  2. 不同根 \(x_1 \neq x_2\):通解为 \(f(n) = A\,x_1^n + B\,x_2^n\)
  3. 重根 \(x_1 = x_2 = r\):通解为 \(f(n) = (A + Bn)\,r^n\)
  4. 两个自由度\(A\)\(B\))总是需要的,以拟合两个初始条件 \(f(0)\)\(f(1)\)
  5. 生成函数提供了另一种方法:将整个数列编码为幂级数并使用部分分式分解。

第 1 步:从递推到特征方程

考虑课堂中的示例:

\[f(n+1) = 4\,f(n) - 4\,f(n-1)\]

我们猜测形如 \(f(n) = x^n\) 的解。代入:

\[x^{n+1} = 4x^n - 4x^{n-1}\]

两边除以 \(x^{n-1}\)(假设 \(x \neq 0\)):

\[x^2 - 4x + 4 = 0\]

指数解对于线性递推是自然的,就像 \(e^{rx}\) 对于线性微分方程是自然的一样。递推关系说”下一项是前面各项的固定线性组合”,而几何数列 \(x^n\) 恰好是相邻项之比为常数的数列。

第 2 步:求解特征方程

\[x^2 - 4x + 4 = (x - 2)^2 = 0\]

这给出一个重根 \(x_1 = x_2 = 2\)

第 3 步:为什么一个指数项不够

如果我们尝试用 \(f(n) = A \cdot 2^n\) 作为通解,我们只有一个自由参数 \(A\)。但我们需要满足两个初始条件:

  • \(f(0) = A \cdot 2^0 = A\)
  • \(f(1) = A \cdot 2^1 = 2A\)

一旦选定 \(f(0)\)\(f(1)\) 就被迫等于 \(2 \cdot f(0)\)。但递推关系允许任意一对 \((f(0), f(1))\)!例如,\(f(0) = 1\)\(f(1) = 4\) 就无法仅用 \(f(n) = A \cdot 2^n\) 来满足。

我们需要一个第二个独立参数来匹配两个初始条件。

通过逐项消去推导重根公式

这是本课的核心。我们将二阶递推化简为一阶递推,然后逐项消去。

化简为几何数列

定义 \(g(n) = f(n+1) - 2\,f(n)\)。则由 \(f(n+1) = 4f(n) - 4f(n-1)\)

\[g(n) = f(n+1) - 2f(n) = 4f(n) - 4f(n-1) - 2f(n) = 2f(n) - 4f(n-1) = 2\bigl(f(n) - 2f(n-1)\bigr) = 2\,g(n-1)\]

所以 \(g(n) = 2\,g(n-1)\),这意味着 \(\{g(n)\}\) 是公比为 \(2\)几何数列

\[g(n) = g(0) \cdot 2^n, \quad \text{其中 } g(0) = f(1) - 2f(0)\]

逐项消去求和

写出每个下标的方程,每次乘以适当的 2 的幂次:

方程 左边 右边
\(n=0\) \(f(1) - 2f(0)\) \(2^0 \cdot g(0)\)
\(n=1\)(乘 2) \(2f(2) - 2^2 f(1)\) \(2^1 \cdot g(0)\)
\(n=2\)(乘 \(2^2\) \(2^2 f(3) - 2^3 f(2)\) \(2^2 \cdot g(0)\)
\(\vdots\) \(\vdots\) \(\vdots\)
\(n=k\)(乘 \(2^k\) \(2^k f(k+1) - 2^{k+1} f(k)\) \(2^k \cdot g(0)\)

\(k = 0\)\(k = n\) 的所有方程相加:左边逐项消去,右边求和得到 \(n+1\) 个等幂次项。

消去 \(n+1\) 个方程后,我们得到:

\[f(n+1) - 2^{n+1} f(0) = (n+1) \cdot 2^n \cdot g(0)\]

求解 \(f(n+1)\) 并重新标号:

\[\boxed{f(n) = \bigl(A + Bn\bigr) \cdot 2^n}\]

其中 \(A = f(0)\)\(B = g(0) = f(1) - 2f(0)\)

探索重根递推——改变 \(f(0)\)\(f(1)\)

几何级数回顾

等差数列: 相邻项的差 \(d\) 为常数。 \[a_n = a_0 + nd\]

等比数列: 相邻项的比 \(k\) 为常数。 \[g_n = g_0 \cdot k^n\]

各项形如:\(g_0,\; g_0 k,\; g_0 k^2,\; g_0 k^3, \ldots\)

等比级数的和(无穷情况下需 \(|k| < 1\)):

\[\sum_{n=0}^{\infty} k^n = \frac{1}{1-k}, \qquad |k| < 1\]

有限和的情况:

\[\sum_{n=0}^{N} k^n = \frac{1 - k^{N+1}}{1 - k}\]

加权几何级数求和

本课推导的一个关键结果将生成函数与递推解联系起来。

Important关键公式

\[\frac{1}{(1-x)^2} = \sum_{n=0}^{\infty} (n+1)\,x^n, \qquad |x| < 1\]

即:\(1 + 2x + 3x^2 + 4x^3 + \cdots = \dfrac{1}{(1-x)^2}\)

我们使用广义二项式定理:对于任意实数 \(\alpha\)\(|u| < 1\)

\[(1 + u)^\alpha = \sum_{k=0}^{\infty} \binom{\alpha}{k} u^k\]

其中广义二项式系数为:

\[\binom{\alpha}{k} = \frac{\alpha(\alpha-1)(\alpha-2)\cdots(\alpha-k+1)}{k!}\]

第 1 步。 写出 \(\frac{1}{(1-u)^2} = (1 + (-u))^{-2}\)

第 2 步。\(\alpha = -2\) 应用展开:

\[(1-u)^{-2} = \sum_{k=0}^{\infty} \binom{-2}{k} (-u)^k\]

第 3 步。 计算 \(\binom{-2}{k}\)

\[\binom{-2}{k} = \frac{(-2)(-3)(-4)\cdots(-2-k+1)}{k!} = \frac{(-1)^k \cdot (k+1)!}{k!} = (-1)^k(k+1)\]

分子有 \(k\) 个因子:\((-2)(-3)\cdots(-(k+1))\)。提取 \((-1)^k\) 得到 \(2 \cdot 3 \cdots (k+1) = (k+1)!\)

第 4 步。 乘以 \((-u)^k = (-1)^k u^k\)

\[\binom{-2}{k}(-u)^k = (-1)^k(k+1) \cdot (-1)^k u^k = (k+1)\,u^k\]

\((-1)^k\) 因子相消,给出全部正系数。

结果:

\[\frac{1}{(1-u)^2} = \sum_{k=0}^{\infty}(k+1)\,u^k = 1 + 2u + 3u^2 + 4u^3 + \cdots \qquad \blacksquare\]

计算示例

我们要求 \(\sum_{k=1}^{\infty} k \cdot \left(\frac{1}{3}\right)^k\) 的值。

第 1 步。 提取因子 \(\frac{1}{3}\)

\[\sum_{k=1}^{\infty} k \left(\frac{1}{3}\right)^k = \frac{1}{3}\sum_{k=1}^{\infty} k \left(\frac{1}{3}\right)^{k-1} = \frac{1}{3}\sum_{j=0}^{\infty} (j+1) \left(\frac{1}{3}\right)^{j}\]

第 2 步。\(x = \frac{1}{3}\) 应用我们的公式:

\[= \frac{1}{3} \cdot \frac{1}{\left(1 - \frac{1}{3}\right)^2} = \frac{1}{3} \cdot \frac{1}{\left(\frac{2}{3}\right)^2} = \frac{1}{3} \cdot \frac{9}{4} = \frac{3}{4}\]

生成函数与部分分式分解

数列 \(\{f(n)\}\)生成函数是幂级数:

\[G(x) = \sum_{n=0}^{\infty} f(n)\,x^n\]

对于具有特征根 \(\lambda_1, \lambda_2\) 的线性递推,生成函数的形式为:

\[G(x) = \frac{P(x)}{(1 - \lambda_1 x)(1 - \lambda_2 x)}\]

其中 \(P(x)\) 是由初始条件确定的多项式。

不同根\(\lambda_1 \neq \lambda_2\)):使用部分分式分解:

\[\frac{P(x)}{(1-\lambda_1 x)(1-\lambda_2 x)} = \frac{A}{1-\lambda_1 x} + \frac{B}{1-\lambda_2 x}\]

每一项展开为几何级数,得到 \(f(n) = A\lambda_1^n + B\lambda_2^n\)

重根\(\lambda_1 = \lambda_2 = \lambda\)):生成函数的形式为:

\[\frac{A}{1-\lambda x} + \frac{B}{(1-\lambda x)^2}\]

第一项给出 \(A\lambda^n\)。第二项根据我们的关键公式给出 \(B(n+1)\lambda^n\)。合并得到:\(f(n) = (A + B(n+1))\lambda^n\),重新定义常数后等价于 \((A' + B'n)\lambda^n\)

探索部分分式分解——观察两部分如何组合:

高次幂与帕斯卡三角

这个模式可以扩展!使用相同的二项展开技巧:

\[\frac{1}{(1-x)^m} = \sum_{n=0}^{\infty} \binom{n+m-1}{m-1} x^n\]

幂次 系数 名称
\((1-x)^{-1}\) \(1, 1, 1, 1, \ldots\) 常数(帕斯卡第 0 列)
\((1-x)^{-2}\) \(1, 2, 3, 4, \ldots\) 自然数(帕斯卡第 1 列)
\((1-x)^{-3}\) \(1, 3, 6, 10, \ldots\) 三角数(帕斯卡第 2 列)
\((1-x)^{-4}\) \(1, 4, 10, 20, \ldots\) 四面体数(帕斯卡第 3 列)

每一列给出帕斯卡三角的对角线!这是因为 \(\binom{n+m-1}{m-1}\) 恰好挑出了那些元素。

速查表

概念 公式 / 规则
特征方程 \(f(n+1) = pf(n) + qf(n-1) \implies x^2 - px - q = 0\)
不同根 \(x_1 \neq x_2\) \(f(n) = Ax_1^n + Bx_2^n\)
重根 \(r\) \(f(n) = (A + Bn)\,r^n\)
等比级数 \(\sum_{n=0}^{\infty} x^n = \frac{1}{1-x}\)\(|x|<1\)
加权几何级数 \(\sum_{n=0}^{\infty} (n+1)x^n = \frac{1}{(1-x)^2}\)
一般负整数幂 \(\frac{1}{(1-x)^m} = \sum_{n=0}^{\infty}\binom{n+m-1}{m-1}x^n\)
广义二项式系数 \(\binom{\alpha}{k} = \frac{\alpha(\alpha-1)\cdots(\alpha-k+1)}{k!}\)
自由度 \(k\) 阶递推需要 \(k\) 个参数来匹配 \(k\) 个初始条件