二阶常系数线性微分方程:特征方程与待定系数法完全指南
先说明一下这题目我在给学生辅导时被问过无数次。刚开始他们以为只是《高等数学》里一个章节学完应付考试就完事。直到后来学《大学物理》里的弹簧振子、《电路分析》里的RLC回路、《自动控制原理》里的系统响应发现全是同一个方程反复出现才意识到当年这一章没白学。这篇东西不打算按照课本那套先给定义、再给定理、最后给例题的路子来写那些教材上都有。我想拆的是另一层东西这个方程到底在描述什么、特征方程法为什么可以这样干、待定系数法到底在猜什么以及真正的解题流程里哪些环节最容易翻车。适合正在学这部分内容、准备考研数学、或者学过但一直处于会背不会用状态的朋友。1. 弹簧振子与电路这个方程究竟从哪来的1.1 一个质量块就能推出整个标准形式先看一个最简单的力学模型。一个质量为 (m) 的物体挂在弹簧上下面再接一个阻尼器就是那种关门用的液压杆然后用力 (F(t)) 去拉它。写牛顿第二定律 (ma F) 的时候要小心这里的力有四个外力、弹簧回复力、阻尼力。整理完之后位移 (x(t)) 满足的方程长这样[ mx cx kx F(t) ]两边除以 (m)令 (p \frac{c}{m})、(q \frac{k}{m})、(f(t) \frac{F(t)}{m})就得到了二阶常系数线性微分方程的标准形式[ x px qx f(t) ]所以那个看起来挺抽象的 (y py qy f(x))背后就是一个实实在在的振动系统。(p) 对应阻尼的强弱(q) 对应弹簧的硬度(f(x)) 是外部激励。这就是为什么学过这部分的人后面看任何一本振动相关的书都会觉得眼熟——所有线性振动方程都是这个壳子。1.2 叠加原理为什么解可以拼出来方程左边 (y py qy) 本质上是对函数 (y) 做了一次线性变换就像把向量乘上一个矩阵记为 (L[y])。线性变换有个特点(L[ay_1 by_2] aL[y_1] bL[y_2])。把等式拆开来看对于方程 (L[y] f)先找一个能满足 (L[y_p] f) 的特解(y_p) ——它负责对上右边的激励再解齐次方程 (L[y_h] 0)得到通解(y_h) ——它负责提供自由度让最后的结果能配上初始条件。两者一加(L[y_p y_h] L[y_p] L[y_h] f 0 f)所以通解就是[ y y_h y_p ]这个道理可以类比成一次旅行(y_p) 是固定路线(y_h) 是你可以在路线附近随意晃悠的余量。问题就拆成了两半先找齐次通解再想办法找一个特解。这在后面会一直用到。2. 齐次方程通解特征方程法不是魔法而是结构化猜测2.1 为什么敢直接设 (y e^{rx})齐次方程是 (y py qy 0)。最关键的一步就是设 (y e^{rx})很多人不理解怎么凭空想到指数函数因为这是唯一一个求导之后长不变的函数。(e^{rx}) 求一次导变成 (re^{rx})求两次导变成 (r^2e^{rx})每一次求导都只是提出来一个因子函数本身形状不变。把它代入方程[ r^2e^{rx} p re^{rx} q e^{rx} 0 ]提出公共因子 (e^{rx})恒不为零放心约掉[ r^2 pr q 0 ]这里的思路本质是降维把找函数这种无穷维空间里的问题转化成了找数字 (r)这种一个二次方程就能搞定的事。这个代数方程就叫特征方程。微分方程和代数方程的关联就锚定在这一步上。2.2 三种根的情形以及重根为什么要乘 (x)特征方程是二次的根有三种情况。逐一来看情形一两个不同实根 (r_1 \ne r_2)这时有 (y_1 e^{r_1x}) 和 (y_2 e^{r_2x}) 两个线性无关的解通解直接是 [ y C_1e^{r_1x} C_2e^{r_2x} ]情形二重根 (r_1 r_2 r)这时只能得到一个解 (e^{rx})。需要第二个线性无关的解课本上用的方法是降阶法。设 (y_2 u(x)e^{rx})代入原方程最终得到 (u 0)于是取 (u x)。所以重根时通解是 [ y (C_1 C_2x)e^{rx} ] 那个多出来的 (x) 不是编造的而是为了补一个线性无关的解。一个直观的理解方式当两个根无限靠近时(\frac{e^{r_2x} - e^{r_1x}}{r_2 - r_1}) 的极限恰好是 (xe^{rx})——重根可以看成两个本来不同的指数解合并后留下的痕迹。情形三共轭复根 (r \alpha \pm \beta i)先用复指数写成 (y e^{\alpha x}(C_1e^{i\beta x} C_2e^{-i\beta x}))再用欧拉公式 (e^{i\theta} \cos\theta i\sin\theta) 把复指数化成三角函数。因为求的是实值函数重新组合常数之后得到 [ y e^{\alpha x}\left(C_1\cos\beta x C_2\sin\beta x\right) ] 核心要点是复数解只是中间工具最后结果一定落在实数上。2.3 两个完整的例子例1(y - 3y 2y 0) 特征方程 (r^2 - 3r 2 (r-1)(r-2) 0)得 (r_11,, r_22)。所以 [ y C_1e^{x} C_2e^{2x} ] 这个例子简单但注意观察(p-3 0)特征根一正一负对应物理上既有发散趋势又有衰减趋势的组合。例2(y 4y 0) 特征方程 (r^2 4 0)(r \pm 2i)。这是纯虚根(\alpha0, \beta2)。通解 [ y C_1\cos 2x C_2\sin 2x ] 这个形式从物理意义上是无阻尼的自由振动频率由 (q 4) 决定即 (\omega \sqrt{q})。很多初学者会把根是虚数和解是虚数搞混——根是虚的但解是实的只是以三角函数的形式出现。3. 非齐次方程的特解待定系数法到底在猜什么3.1 右端函数决定特解形式齐次部分学会之后剩下的核心任务就是找特解 (y_p)。最常用的方法是待定系数法解题逻辑是右端 (f(x)) 是某个类型的函数特解也取同类型的函数只是系数未知代进去解方程把系数定出来。右端常见的就那么几类每一种都有对应的特解形式右端 (f(x)) 的类型特解的基本形式(n) 次多项式 (P_n(x))(x^k \cdot Q_n(x))(Q_n)也是 (n) 次多项式(ae^{\lambda x})(x^k \cdot Ae^{\lambda x})(a\cos\beta x b\sin\beta x)(x^k \cdot (A\cos\beta x B\sin\beta x))多项式与指数/三角的乘积对应乘积形式次数取高的那个这里的 (k) 是关键当特解的基本形式和齐次解撞车时就乘上一个 (x) 来避开如果还撞就再乘一个最多乘到 (x^2)。3.2 为什么要乘 (x^k)避开与齐次解的共振这个细节特别容易出错。举个例子解方程 [ y - 3y 2y e^{2x} ]前一步已经知道齐次通解是 (y_h C_1e^x C_2e^{2x})。如果右端是 (e^{2x})按照同类型猜测特解应该设 (y_p Ae^{2x})。但代入左边会发现 [ (A\cdot4 e^{2x}) - 3(2Ae^{2x}) 2(Ae^{2x}) (4 - 6 2)Ae^{2x} 0 ] 左边恒等于零根本定不出 (A)。原因就是 (e^{2x}) 本身就是齐次方程的解代进去当然得零。这时必须设 [ y_p Ax e^{2x} ] 代入计算 [ y_p A(2x1)e^{2x}, \quad y_p A(4x4)e^{2x} ] 代入原方程 [ A[(4x4) - 3(2x1) 2x]e^{2x} A(4x4-6x-32x)e^{2x} A e^{2x} ] 于是 (A 1)特解 (y_p xe^{2x})。加上齐次通解最终 [ y C_1e^x C_2e^{2x} xe^{2x} ]在所有复合的数学过程中这大概是最容易出错的一步了。课本上有个漂亮的说法叫共振——当外力的频率刚好等于系统固有频率时响应会随时间线性增长乘的那个 (x) 就是这种增长的数学体现。理解到这里撞车就乘 (x)就不再是死记的规则了。3.3 一个混合类型的完整计算再看个稍复杂的例子感受一下多个类型并存时的完整流程。求解 [ y y x^2 \sin x ]第一步解齐次(r^2 1 0)(r \pm i)所以 [ y_h C_1\cos x C_2\sin x ]第二步分别看右端的两项。(x^2) 对应特解设 (y_{p1} ax^2 bx c)。(\sin x) 对应设 (y_{p2} A\cos x B\sin x)。注意 (\sin x) 已经出现在齐次解里撞车了所以需要乘 (x)变成 [ y_{p2} x(A\cos x B\sin x) ]先求 (y_{p1})。(y_{p1} 2ax b)(y_{p1} 2a)。代入 (y y) [ 2a ax^2 bx c x^2 ] 对比系数(a1)(b0)(2a c 0 \Rightarrow c-2)。故 (y_{p1} x^2 - 2)。再求 (y_{p2})。设 (y_{p2} x(A\cos x B\sin x))求导 [ y_{p2} (A\cos x B\sin x) x(-A\sin x B\cos x) ] [ y_{p2} (-A\sin x B\cos x) (-A\sin x B\cos x) x(-A\cos x - B\sin x) 2B\cos x - 2A\sin x - x(A\cos x B\sin x) ] 加回 (y_{p2})含 (x) 的项正好抵消 [ y_{p2} y_{p2} 2B\cos x - 2A\sin x ] 右边要等于 (\sin x)所以 (A -\frac12)(B 0)。于是 [ y_{p2} -\frac12 x\cos x ]合起来通解 [ y C_1\cos x C_2\sin x x^2 - 2 - \frac12 x\cos x ]从这个完整过程能看出一个操作要点碰到右端是多段叠加时分别设特解、分别代、分别定系数最后合起来就行。因为叠加原理保证了这样做的合法性。4. 换个视角微分算子法怎么把微分方程变成代数运算4.1 算子 (D) 的基本规则如果只掌握待定系数法应付考试其实够了。但很多人在学完这部分再去接触算子法时会觉得特别惊奇——因为它把微分方程变成了分式的处理。这里介绍一下核心思想对加深理解很有帮助。记 (D \frac{d}{dx})那么 (y Dy)(y D^2y)。原方程可以写成 [ (D^2 pD q)y f ] 形式上可以写成 [ y \frac{1}{D^2 pD q} f ] 除以一个算子这种说法并不严格但运算规则可以验证。两个最基本的公式(\frac{1}{D-a}e^{ax} xe^{ax})。这是因为 ((D-a)[xe^{ax}] e^{ax})。更一般地((D-a)^{-1}) 作用于一个函数是在解一个一阶线性方程。4.2 用算子法快速处理之前的例子以 (y - 3y 2y e^{2x}) 为例。算子形式 [ (D-1)(D-2)y e^{2x} ] 所以 [ y \frac{1}{(D-1)(D-2)}e^{2x} ] 先作用 ((D-2)^{-1})由于 (D-2) 作用在 (e^{2x}) 上得零要小心这时不能用直接代入 (a)的处理。正确的处理是 [ \frac{1}{D-2}e^{2x} xe^{2x} ] 然后乘上 ((D-1)^{-1})((D-1)^{-1}(xe^{2x})) 需要算积分。最后得到特解 (y_p xe^{2x})——和待定系数法的结果一致。整个过程体现的思想是特征多项式因式分解后非线性问题被拆成一串一阶线性问题每步都只需要做一次积分。算子法的价值在于当右端函数是 (e^{ax})、(\sin)、多项式这些好函数时它可以系统化地机械执行不需要猜测特解的形式尤其适合右端较复杂的情形。不过建议先把待定系数法练熟再学算子法——前者帮助理解原理后者提升计算效率。4.3 拉普拉斯变换同一个思想在更大舞台上的延伸如果从拉普拉斯变换的角度看方程里每一项的求导都会变成乘以 (s)[ \mathcal{L}{y} sY - y(0), \quad \mathcal{L}{y} s^2Y - sy(0) - y(0) ]代入之后整个微分方程变成了一个关于 (Y(s)) 的代数方程解出 (Y(s)) 再反变换回去就行。这和算子法的精神是一致的用代数运算代替微分运算。区别只是拉普拉斯变换对初值问题的处理更自然而算子在求特解时更直接。这部分用来扩展视野。如果目前只求考试过关掌握特征方程加待定系数法就够了如果后面要学信号与系统、自动控制拉普拉斯才是主角趁早认识它没有坏处。5. 标准解题流程与最容易踩的坑5.1 一套可以抄作业的流程整合前面的内容遇到一道二阶常系数线性微分方程题按这个顺序操作不会乱把方程化成标准形式 (y py qy f(x))确认 (p, q) 是常数。先写特征方程 (r^2 pr q 0)解出两根写出齐次通解 (y_h)。三种情形对应三种形式不确定就对照本文 2.2 节的表。看右端 (f(x)) 的类型按 3.1 节的表设出特解形式。写完之后跟 (y_h) 对比如果撞车就乘 (x)必要时乘 (x^2)。把设好的特解代入原方程对比系数解出未知常数。写出通解 (y y_h y_p)。如果给了初值条件 (y(0)) 和 (y(0))最后再把常数 (C_1, C_2) 定出来。注意第6步的顺序问题代入初值这一步必须放在通解写完之后做不能提前用初值替换齐次解里的常数更不能用初值去给特解定系数。5.2 高频错误的真实案例分析我在辅导时发现错误往往集中在几个固定的地方。整理成表格方便自查错误行为后果纠正方式特征方程写成 (r^2 - pr q 0)两根全错整体崩盘直接对照标准式 (y py qy0)对应 (r^2prq0)重根时忘了乘 (x)少一个线性无关解见到判别式等于零立刻写出 ((C_1C_2x)e^{rx})特解形式没有和齐次解对比代入后左边恒为零解不出系数设完特解后先跟 (y_h) 比对撞车就乘 (x)求特解时误把 (C_1, C_2) 也当成待定系数计算混乱求错特解里的系数只负责匹配 (f(x))与齐次常数无关初值代入时用了错误的 (y(0)) 表达式常数定错(y) 由通解整体求导得出不是只对特解求导上面这套错误清单是我在实际作业批改中反复见到的。最坑的是第三种设特解时不检查是否和齐次解撞车结果化到左边恒等于零卡在原地。遇到这种情况别怀疑自己代数算错先怀疑特解形式撞车了乘个 (x) 重算一遍通常就通了。6. 数学解背后的物理图景三种运动形态6.1 判别式决定运动模式回到开头那个弹簧振子模型 (x px qx 0)物理量变成了有明确意义的参数(p) 是阻尼系数(q) 是固有频率的平方。特征根有三种情况恰好对应三种运动形态(p^2 - 4q 0)两个负实根。阻尼很大系统被黏住慢慢回到平衡位置叫过阻尼。(p^2 - 4q 0)重根。系统在临界点附近以最快速度回到平衡位置而不振荡叫临界阻尼。很多工程系统的阻尼就是调到这个状态。(p^2 - 4q 0)共轭复根且实部为负。系统一边振荡一边衰减叫欠阻尼。把解的公式和物理对应起来你会发现以前背的三种通解形式根本不是孤立的数学技巧而是对三类物理行为的数学描述。这层理解一旦建立再看到 (y e^{\alpha x}(C_1\cos\beta x C_2\sin\beta x))你会立刻意识到这是衰减振荡——实部 (\alpha) 决定衰减快慢虚部 (\beta) 决定振动频率。6.2 共振的本质特解里乘出来的那个 (x)非齐次方程 (x px qx F_0\cos\omega t) 描述的是系统外加了一个周期激励。当外加频率 (\omega) 恰好等于系统固有频率时会出现共振现象。从数学角度看这时激励对应的特解形式撞上了齐次解需要乘 (x)产生了随时间增大的项——振幅越来越大。这跟第3部分撞车就乘 (x)是同一件事。理解了这层关系乘 (x)就不再是待定系数法里的一条奇怪规则而是共振现象的代数化表达。我总觉得把数学公式和物理现象一一对应起来学记起来清晰得多也不容易混淆。最后分享一点个人体会带过几届学生之后我的感受是二阶常系数线性微分方程是整个微分方程求解体系里性价比最高的一章。它的方法高度程序化只要理解特征方程和叠加原理这两根支柱就能覆盖绝大部分题型。更重要的是它是后面学习拉普拉斯变换、传递函数、系统稳定性等一大堆工程数学知识的起点。建议学的时候不要贪多把齐次通解三种情形、非齐次待定系数法包括乘 (x^k) 的规则练熟就足够应付需求了。至于算子法学有余力再掌握理解和计算能力都能上一个台阶。学完这部分之后再回去看看《大学物理》里的振动章节会有一种恍然大悟的感觉——原来当年物理课上那些记住就行的结论都是这个微分方程的自然推论。