常系数线性递推解通项公式的通法(高考数学)

常系数线性递推解通项公式的通法(高考数学)

核心出装

如果数列可以写成矩阵递推的形式,那么找到该矩阵的所有特征值,设特征多项式为 \(\prod_{i=1}^d(\lambda-\lambda_i)^{m_i}\), 则数列的通项公式为 \(\sum_{i=1}^dP_i(n)\lambda_i^n\),其中 \(P_i(n)\) 是不超过 \((m_i-1)\) 次的多项式。

优势和劣势

优势:

  • 同时可以用于求前缀和,就是添加一个 \(1\) 的特征值。

  • 同时可以用于将数列点乘一个等比数列,就是将所有特征值乘上公比。

  • 验证题目给出的通项公式是否正确,只需要验证前若干项(通常为矩阵阶数项,或者说是未知数数量、特征多项式最高次数,这些都一样,没有什么特殊的情况)是否匹配(当然还要验证特征值是否正确!)。尤其是前缀和的情况,\(n=0\) 一般情况下可以代入计算作为验证。

劣势:

  • 不可避免的需要求出一部分初值,还要解一个大方程组。如果有别的简单方法,很可能计算量会偏大。
  • 非线性的递推关系无法解决。
    • 例如 \(a_n=na_{n-1}\) 绝对无法解决。
    • 但是例如 \(a_n=(a_{n-1})^2\)​ 这显然可以对两边取对数解决。这两种非线性是有差异的。
    • 但是例如 \(S_n=\frac{n+1}{2}a_n, a_1=1\) 这个使用 \(S_n-S_{n-1}=a_n\) 可以减出结果,\(a_n=n\)。这显然是特意凑好的!这类题目往往有巧妙的代数变形,可以尝试直接化简。
  • 大部分题目的递推关系无法直接得出,需要一些观察(换元、裂项)才可能转化为线性递推。
  • 部分题目将数列分离奇偶项后,可能有更好的性质。
  • 部分题目进行三角函数换元,可能有更好的性质。

思考:作为高考数学,题目一定会有一种正统解法,其涉及到的知识点不可能超过课本,最多只能到“特征根方程”。如果发现题目不是线性递推,可能说明这个题目有很简单的形式,试试直接化简,有时也能直接做出来。

如果特征值解出来没有实根怎么办

也许特征值不需要解出具体数值,后面用韦达定理化简(类似隐零点的解决方法)。真的出现非实根 \(\lambda = r e^{\pm i\theta}\) 时,通项可化为 \(r^n(A\cos n\theta+B\sin n\theta)\),仍是实数。高考中若出现这种情况,通常可转化为周期数列或有界振荡,此时打表找规律也是一种可行策略。

以下是 DeepSeek 的回答:这个问题问得非常到位!这恰恰是很多学生第一次接触特征根法时最困惑的地方:明明解方程解出了虚数 \(i\),为什么最后答案里却没有 \(i\),反而变成实实在在的三角函数(实数)了?

别担心,这背后的逻辑其实很简单,就是虚数部分在计算过程中互相抵消了。

我分三步给你讲明白:

第一步:为什么会产生共轭复根?

对于实系数的递推数列(比如 \(a_n = p a_{n-1} + q a_{n-2}\),其中 \(p,q\) 都是实数),如果判别式小于 0,特征根一定是一对共轭复数。就像照镜子一样:

\[\lambda_1 = r(\cos\theta + i\sin\theta), \quad \lambda_2 = r(\cos\theta - i\sin\theta) \]

(这里 \(r\) 是模长,\(\theta\) 是辐角,\(i=\sqrt{-1}\)

第二步:通项公式里本来就带着虚数 \(i\)

按照特征根法的规则,通项公式本来应该是:

\[a_n = C_1 \cdot \lambda_1^n + C_2 \cdot \lambda_2^n \]

由于 \(\lambda_1\)\(\lambda_2\) 含有虚数 \(i\),那系数 \(C_1, C_2\) 为了匹配初始值(比如 \(a_0, a_1\)),通常也会是虚数

比如解方程组求 \(C_1, C_2\) 时,你可能会算出 \(C_1 = \frac{1}{2} + \frac{1}{2}i\)\(C_2 = \frac{1}{2} - \frac{1}{2}i\)

第三步:虚数互相抵消,变成实数(核心魔术)

根据棣莫弗公式(就是复数乘方的展开):

\[(\cos\theta + i\sin\theta)^n = \cos n\theta + i\sin n\theta \]

我们把 \(\lambda_1^n\)\(\lambda_2^n\) 代入通项,并把复系数 \(C_1, C_2\) 也放进去:

\(C_1 = \frac{A}{2} - \frac{B}{2}i\)\(C_2 = \frac{A}{2} + \frac{B}{2}i\)(这是为了凑成下面的形式)。

代入后:

\[a_n = r^n \left[ \frac{A - Bi}{2}(\cos n\theta + i\sin n\theta) + \frac{A + Bi}{2}(\cos n\theta - i\sin n\theta) \right] \]

你动手乘一下展开

  • 实部相乘:会得到 \(\frac{A}{2}\cos n\theta + \frac{A}{2}\cos n\theta = A\cos n\theta\)
  • 虚部相乘:含有 \(i\) 的项(\(B i \cdot i\sin n\theta\) 会变成 \(-B\sin n\theta\))和另一项的虚部(\(-B i \cdot -i\sin n\theta\) 也会变成 \(-B\sin n\theta\)),两边的虚数符号正好完全抵消

最后剩下的就是:

\[a_n = r^n (A\cos n\theta + B\sin n\theta) \]

这个结果里没有任何 \(i\),全是实数! 也就是说,虚数 \(i\) 只是在推导过程中“打了个酱油”,帮你把式子凑出来,最后它自己就消失了。

举个具体的高考题例子

假设递推是 \(a_n = 2a_{n-1} - 2a_{n-2}\),且 \(a_0=2, a_1=2\)

  1. 特征方程 \(x^2 - 2x + 2 = 0\),解得 \(\lambda = 1 \pm i\)
  2. 写成三角形式:\(\sqrt{2}(\cos \frac{\pi}{4} \pm i\sin \frac{\pi}{4})\)(这里 \(r=\sqrt{2}, \theta=45^\circ\))。
  3. 按上述公式套,最后算出来 \(a_n = 2^{\frac{n}{2}+1} \cos \frac{n\pi}{4}\)

你代入 \(n=0,1,2,3\) 试试:

  • \(n=0\)\(2^1 \cdot 1 = 2\)(正确)
  • \(n=1\)\(2^{1.5} \cdot \frac{\sqrt{2}}{2} = 2\)(正确)
  • \(n=2\)\(2^2 \cdot \cos 90^\circ = 0\)(原递推:\(a_2=2a_1-2a_0=4-4=0\),正确)

全程没有任何虚数出现在最终答案里。

回到你文章里的那句话

我在原文中建议补充这句话的意思是:当你在草稿纸上解出复根时,不要以为自己算错了。你不需要在试卷的最终答题卡上写虚数 \(i\),你只需要把它转化成上面那个带 \(\cos\)\(\sin\)实数通项公式即可,这也是高考允许的最终形式。

所以放心,虽然中间走了“复数”这条弯路,但终点一定是坚实的实数地面。😊

工具:二阶方程特征多项式

\(A=\begin{pmatrix}a&b\\c&d\end{pmatrix}\),根据定义

\[f(\lambda)=\det(\lambda I-A)=\left|\begin{matrix}\lambda-a&-b\\-c&\lambda-d\end{matrix}\right| \]

不难写出

\[f(\lambda)=\lambda^2-(a+d)\lambda+ad-bc \]

这也可以写成

\[f(\lambda)=\lambda^2-(\operatorname{tr} A)\lambda+\det A \]

其中 \(\operatorname{tr} A\)\(A\),等于主对角线的元素

注意!上三角矩阵和下三角矩阵的特征值就是主对角线的所有数。

一些矩阵递推的知识补充

  • 矩阵 \(A\) 的某一行某一列的元素其实可以写成 \((0, \cdots, 0, 1, 0, \cdots, 0) \ A\ (0, \cdots, 0, 1, 0, \cdots, 0)^T\),得到的结果是 \(1\times 1\) 的矩阵,也就是一个数。这启示我们,从矩阵中取数这个操作也是线性的,不影响任何东西。

例 1:\(p_n=ap_{n-1}+b\)

正统解法(正常能作为标准答案的解法)

假设有一个 \(x\),使得 \(p_n-x=a(p_{n-1}-x)\),那么 \(\{p_n-x\}\) 就是一个等比数列,可以写出通项公式。计算得到 \(x=\frac{b}{1-a}\) 因此需要特判 \(a=1\) 的情况,此时为等差数列。\(b=0\) 时数列退化成等比数列,更简单。最终计算如下:

\[p_n = \frac{b}{1-a} + \left(p_0 - \frac{b}{1-a}\right) a^n \]

实际上,这也是不动点法,见例 3。

本文的解法

转移矩阵 \(\begin{pmatrix}a&b\\0&1\end{pmatrix}\),初始值 \(\begin{pmatrix}p_0\\1\end{pmatrix}\),计算特征值为 \(\{a,1\}\)。当 \(a\neq 1\),设 \(p_n=ca^n+d\),代入 \(p_0, p_1\) 解方程组即可。当 \(a=1\),设 \(p_n=(cn+d)1^n\),后面的解法一样。

验证

最后的答案确实是 \(\begin{pmatrix}a&b\\0&1\end{pmatrix}\) 的特征值(\(\{a,1\}\))的幂的线性组合。我们提出的想法是如此无敌,当 \(a=1\) 时,相当于是重根的情况,答案是 \(\{n,1\}\) 的线性组合,这就是等差数列;当 \(b=0\) 时答案还是 \(\{a^n,1\}\) 的线性组合,这就是等比数列,只不过退化成 \(a^n\) 的倍数了。

例 2:\(p_n=ap_{n-1}+bq_{n-1},q_n=cp_{n-1}+dq_{n-1}\)

\[\begin{cases} p_n=ap_{n-1}+bq_{n-1}\\ q_n=cp_{n-1}+dq_{n-1} \end{cases} \]

正统解法

由第一个式子 \(bq_{n-1}=p_n-ap_{n-1}\),代入到第二个式子中:

\[\frac{p_{n+1}-ap_n}{b}=cp_{n-1}+d\frac{p_{n}-ap_{n-1}}{b} \]

化简得到关于 \(p_{n+1},p_n,p_{n-1}\) 的方程,使用特征方程求解即可。

特征方程

有数列 \(p_n=ap_{n-1}+bp_{n-2}\),然后还知道初始值 \(p_1,p_2\),想求数列的通项公式。

\(x^2=ax+b\) 称作该递推式的特征方程,可以解这个方程得到两个根 \(x_1,x_2\)。如果 \(x_1\neq x_2\),则存在系数 \(A,B\) 使得 \(p_n=Ax_1^n+Bx_2^n\);否则存在系数 \(A,B\) 使得 \(p_n=(A+Bn)x^n\)

特征方程推导

\(x^2=ax+b\) 推出 \(x^n=ax^{n-1}+bx^{n-2}\),那么 \(p_n=x^n\) 就是这个递推式的一个解。但由于有初始值,所以需要根据初始值将 \(x_1^n,x_2^n\) 进行线性组合。如果是重根的情况,则无法进行这样的操作。我们声称 \(p_n=nx^n\) 也是这个递推式的一个解,因为代入递推式得到 \(nx^n=(n-1)ax^{n-1}+(n-2)bx^{n-2}\),又因为 \(x_0\) 是重根,特征多项式可写为 \((x-x_0)^2\),即 \(x^2-2x_0x+x_0^2 = x^2-ax-b\),比较系数得 \(a=2x_0,\; b=-x_0^2\)。然后再代入化简,确实是恒等式。因此将 \(nx^n\)\(x^n\) 一起进行线性组合就能得到原数列。

本文的解法

显然最后的答案是 \(\begin{pmatrix}a&b\\c&d\end{pmatrix}\) 的特征值的幂的线性组合,没有任何悬念。算完特征值以后解方程就是了。

例 3:\(p_n=\frac{ap_{n-1}+b}{cp_{n-1}+d}\)

本文的解法

假设没有除以零的问题。令 \(p_n=\frac{A_n}{B_n}\),则

\[\frac{A_n}{B_n}=p_n=\frac{a\frac{A_{n-1}}{B_{n-1}}+b}{c\frac{A_{n-1}}{B_{n-1}}+d}=\frac{aA_{n-1}+bB_{n-1}}{cA_{n-1}+dB_{n-1}} \]

我们可以直接令

\[\begin{cases} A_n=aA_{n-1}+bB_{n-1}\\ B_n=cA_{n-1}+dB_{n-1}\\ \end{cases} \]

并取初始值 \(A_0=p_0,\; B_0=1\),即可保证 \(p_n=A_n/B_n\) 对所有 \(n\) 成立。

继续计算,由递推方程组可得,\(A_n\)\(B_n\) 均满足同一个二阶线性递推,其特征方程正是矩阵 \(M = \begin{pmatrix} a & b \\ c & d \end{pmatrix}\) 的特征方程:

\[\lambda^2 - (a+d)\lambda + (ad-bc) = 0 \]

因此 \(A_n, B_n\) 的通项都是两个特征根 \(\lambda_1, \lambda_2\) 的线性组合,从而 \(p_n = A_n/B_n\) 只依赖于比值 \(q = \lambda_1 / \lambda_2\)\(n\) 次幂,与不动点法结果一致。答案的形式为 \(\dfrac{rq^n+s}{tq^n+u}\)

正统解法

正统解法是不动点法(由于与本文主题无关,故不介绍其原理,可以看看 递推数列——不动点法 - 知乎)。解方程

\[x=\frac{ax+b}{cx+d} \]

\(c=0\) 时,这是例 1。当 \(c\neq 0\) 时,这是一个二次方程,有两个根。如果 \(x_1\neq x_2\),则 \(\left\{\dfrac{p_n-x_1}{p_n-x_2}\right\}\) 为等比数列。否则,\(\left\{\dfrac{1}{p_n-x}\right\}\) 是等比数列。然后可以计算。

具体计算

\[cx^2+(d-a)x-b=0 \]

两个根不同时

\[\dfrac{p_n-x_1}{p_n-x_2}=\dfrac{\frac{ap_{n-1}+b}{cp_{n-1}+d}-x_1}{\frac{ap_{n-1}+b}{cp_{n-1}+d}-x_2}=\dfrac{ap_{n-1}+b-x_1(cp_{n-1}+d)}{ap_{n-1}+b-x_2(cp_{n-1}+d)}=\dfrac{(a-cx_1)p_{n-1}+b-dx_1}{(a-cx_2)p_{n-1}+b-dx_2} \]

通过原方程,可以将下式化为:

\[(a-cx_1)x_1=cx_1^2-ax_1=b-dx_1 \]

\(x_2\) 同理,因此可以确定

\[\dfrac{p_n-x_1}{p_n-x_2}=\dfrac{a-cx_1}{a-cx_2}\cdot\dfrac{p_{n-1}-x_1}{p_{n-1}-x_2} \]

\(q=\frac{a-cx_1}{a-cx_2}\)\(r=\frac{p_0-x_1}{p_0-x_2}\),则。

\[\dfrac{p_n-x_1}{p_n-x_2}=r\cdot q^n\implies p_n-x_1=rq^np_n-rq^nx_2\implies p_n=\frac{x_1-rq^nx_2}{1-rq^n} \]

两个根相同时

设重根为 \(x_0\)

  1. 先利用重根条件化简
    重根时,不动点方程满足:

    \[a - d = 2c x_0, \quad b = -c x_0^2 \]

    (这是由韦达定理或求根公式直接得到的)

  2. 计算 \(p_n - x_0\)

    \[p_n - x_0 = \frac{a p_{n-1} + b}{c p_{n-1} + d} - x_0 = \frac{(a - c x_0)p_{n-1} + (b - d x_0)}{c p_{n-1} + d} \]

    \(b = -c x_0^2\)\(a - c x_0 = c x_0 + d\)(由 \(a-d=2cx_0\) 变形得到)代入:

    \[p_n - x_0 = \frac{(c x_0 + d)(p_{n-1} - x_0)}{c p_{n-1} + d} \]

  3. 取倒数并作差

    \[\frac{1}{p_n - x_0} = \frac{c p_{n-1} + d}{(c x_0 + d)(p_{n-1} - x_0)} \]

    那么:

    \[\frac{1}{p_n - x_0} - \frac{1}{p_{n-1} - x_0} = \frac{c p_{n-1} + d - (c x_0 + d)}{(c x_0 + d)(p_{n-1} - x_0)} = \frac{c (p_{n-1} - x_0)}{(c x_0 + d)(p_{n-1} - x_0)} = \frac{c}{c x_0 + d} \]

    这是一个与 \(n\) 无关的常数,因此是等差数列,公差即为 \(k = \frac{c}{c x_0 + d}\)

所以此时数列 \(\left\{\dfrac{1}{p_n - x_0}\right\}\)等差数列,公差为:

\[k = \frac{c}{c x_0 + d} \]

因此可以直接写出:

\[\frac{1}{p_n - x_0} = \frac{1}{p_0 - x_0} + n \cdot \frac{c}{c x_0 + d} \]

反解出通项:

\[\boxed{p_n = x_0 + \frac{1}{\frac{1}{p_0 - x_0} + \frac{c n}{c x_0 + d}}} \]

重根的情况和特征根方程重根情况是一样的

重根的情况和特征根方程重根情况是一样的,计算结果就不展示了。此时答案都是关于 \(n\) 的一次分式,虽然看起来很诡异。特征根方法可以约去特征根的幂,根本不用算。

没有实根时

这不是你算错了,可能是该数列为周期数列。打表找规律即可。

例 4:求 \(\sum_{i=0}^{n-1}(ai+b)q^{n-i-1}\)

本文的解法

转移矩阵 \(\begin{pmatrix}q&1&0\\0&1&a\\0&0&1\end{pmatrix}\),初始值 \(\begin{pmatrix}0\\b\\1\end{pmatrix}\)(这里可以发现,初始值、边界等根本不重要,矩阵具体怎么填也不重要,只关注特征值)。

具体解释:这是新制造了三个数列,第三行是 \(C_n=1\);第二行是 \(B_n=B_{n-1}+aC_{n-1}, B_0=b\),也就是 \(B_n=an+b\);第一行是 \(S_n=qS_{n-1}+B_{n-1}\),这一步比较震撼,但是可以理解成所有的 \(B_{i-1}\) 乘上 \(q^{n-i}\) 后再求和:那么 \(S_n\) 就为所求。

特征值显然是 \(\{q,1,1\}\),答案形式是 \(aq^n+bn+c\)

例 5:求前缀和 \(p_n=(an+b)q^n\)

正统解法

请见 求和问题基础 | whk wiki

本文的解法

转移矩阵 \(\begin{pmatrix}1/q&1&0\\0&1&a\\0&0&1\end{pmatrix}\),初始值 \(\begin{pmatrix}0\\b\\1\end{pmatrix}\),答案最后乘 \(q^n\)(相当于将该问题转化为例 4;具体一些细节不重要,只有特征值是重要的)。特征值显然是 \(\{1/q,1,1\}\),乘一个 \(q\) 变成 \(\{1, q, q\}\),答案形式是 \((an+b)q^n+c\)。显然两种解法的结果是一样的。记得特判 \(q=1\),此时结果是 \(an^2+bn+c\),符合预期。

posted @ 2026-06-17 17:23  caijianhong  阅读(68)  评论(0)    收藏  举报