第二章 常系数线性差分方程:从齐次解到全解
各位同学,咱们今天聊聊差分方程怎么解。说实话,我刚接触这部分时也觉得有点绕,但后来发现,它跟咱们高中解微分方程的思路其实一脉相承。你想想看,微分方程是连续系统的“语言”,差分方程就是离散系统的“语言”。搞懂了它,状态空间转换那都不是事儿。
2.1 齐次解求解:先看“自由响应”
什么叫齐次解?说白了,就是系统在没有外部输入时,自己“自由振荡”出来的响应。我习惯叫它“系统的本性”。
一个典型的常系数线性差分方程长这样:
y[n] + a₁y[n-1] + a₂y[n-2] + ... + aₖy[n-k] = b₀x[n] + b₁x[n-1] + ...
齐次方程就是右边等于0:
y[n] + a₁y[n-1] + a₂y[n-2] + ... + aₖy[n-k] = 0
嗯,这里要注意:齐次解只取决于系统本身的结构,跟输入信号无关。我在做数字滤波器设计时,经常先看齐次解来判断系统是否稳定——如果齐次解发散,那这滤波器基本不能用。
2.2 特征方程与特征根:核心工具
怎么求齐次解?我们假设解的形式是 y[n] = λⁿ。代入齐次方程后,你会得到一个关于λ的多项式方程:
λᵏ + a₁λᵏ⁻¹ + a₂λᵏ⁻² + ... + aₖ = 0
这就是特征方程。它的根就叫特征根。
我个人习惯把特征根分成三种情况来处理:
| 特征根情况 | 齐次解形式 | 我遇到的实际例子 |
|---|---|---|
| 单实根 λ | C · λⁿ | 一阶RC电路的离散化 |
| 重根 λ(m重) | (C₀ + C₁n + ... + Cₘ₋₁nᵐ⁻¹) · λⁿ | 某些数字振荡器 |
| 共轭复根 re^±jθ | rⁿ · [Acos(nθ) + Bsin(nθ)] | 谐振回路、带通滤波器 |
关键点:特征根的模长决定了系统的稳定性。|λ| < 1 则稳定,|λ| > 1 则发散。我曾经调试一个音频回声消除算法,发现输出越来越大,一查特征根模长1.02——好家伙,系统在自激振荡!
2.3 特解求解方法:强迫响应
齐次解搞定了,接下来看特解。特解对应的是系统在外部输入下的“强迫响应”。
求特解没有万能公式,但有个实用套路——试凑法。说白了,就是根据输入信号的形式,猜一个特解的形式,然后代入方程解系数。
我整理了一个常用对照表:
| 输入信号 x[n] | 特解假设形式 | 备注 |
|---|---|---|
| 常数 C | 常数 A | 直流输入 |
| nᵐ(多项式) | A₀ + A₁n + ... + Aₘnᵐ | 斜坡、抛物线等 |
| rⁿ(指数) | A · rⁿ | 注意r不能是特征根 |
| cos(ωn) 或 sin(ωn) | Acos(ωn) + Bsin(ωn) | 正弦稳态响应 |
避坑指南:如果输入信号的形式恰好跟某个特征根“撞车”了,比如输入是 rⁿ 而 r 正好是特征根,那特解要乘上 n 或 n²(取决于重根次数)。我曾经在这个坑里栽过跟头——一个二阶系统输入是指数信号,我直接套公式,结果解出来系数无穷大,折腾了半天才发现是共振了。
2.4 全解构成:齐次解 + 特解
全解就是齐次解和特解加起来:
y[n] = y_h[n] + y_p[n]
其中 y_h[n] 是齐次解(带待定系数),y_p[n] 是特解(系数已确定)。
那待定系数怎么定?靠初始条件。比如你知道 y[0]、y[1] 的值,代入全解就能解出齐次解里的系数。
举个例子,大家感受一下:
差分方程:y[n] - 0.5y[n-1] = x[n]
输入信号:x[n] = 2ⁿ (n≥0)
初始条件:y[-1] = 0
第一步:齐次解
特征方程:λ - 0.5 = 0 → λ = 0.5
y_h[n] = C · (0.5)ⁿ
第二步:特解
输入是 2ⁿ,2不是特征根,假设 y_p[n] = A · 2ⁿ
代入方程:A·2ⁿ - 0.5·A·2ⁿ⁻¹ = 2ⁿ
解得:A = 4/3
y_p[n] = (4/3) · 2ⁿ
第三步:全解
y[n] = C·(0.5)ⁿ + (4/3)·2ⁿ
第四步:用初始条件定系数
y[-1] = 0 → C·2 + (4/3)·0.5 = 0 → C = -1/3
最终:y[n] = (-1/3)·(0.5)ⁿ + (4/3)·2ⁿ
我的小技巧:实际编程时,我一般先用齐次解判断系统稳定性,再用特解看稳态响应。如果齐次解衰减很快,那瞬态过程很短,可以直接用特解近似全解。这在实时信号处理中特别有用——能省不少计算量。
2.5 知识体系总览
下面这张图是我自己画的,把本章的核心逻辑串起来了。你顺着箭头看,就能明白差分方程求解的完整流程。
你看,整个流程其实就三步:先求齐次解(看系统本性),再求特解(看输入影响),最后用初始条件定系数。我在实际项目中,经常用这个流程来验证数字控制器的设计——如果全解不满足性能指标,回头调整系统参数或者输入信号,直到满意为止。
好了,这一章就到这里。记住:差分方程求解不是死记硬背,而是理解系统“自由”和“强迫”两种行为的叠加。搞懂了这一点,后面的状态空间转换你会觉得豁然开朗。
公众号:蓝海资料掘金营,微信deep3321