JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

线性常微分方程的结构

在解任何一个线性方程之前,你其实已经能看见它的整副骨架。一个算子、一条叠加原理,整个解空间便扣合成一种优美而刚硬的形状——齐次加特解,搭在一组用一个行列式就能检验的基础解系之上。

为什么「线性」是那道大分界线

翻开几乎任何一本物理或工程教材,你会一遍遍看到同样的方程:弹簧上的质量块、电路里的电流、振动的弦、冷却的物体、受载的梁。它们共有的不是题材,而是形状——它们全都是线性微分方程。在一阶级里,你把线性与非线性之分当作一个分类标签遇见。现在我们要把这个标签兑现成真金白银,因为对线性方程来说,回报极其丰厚:有一整套理论,能在你算出任何一个解之前,就告诉你每一个解的*形状*。

回想一下确切的形式。一个 n 阶常微分方程是线性的,是指它能写成 a_n(x) y^{(n)} + ... + a_1(x) y' + a_0(x) y = g(x),其中每个系数 a_k(x) 和右端 g(x) 都只依赖 x——绝不依赖 y。未知量 y 及其导数都只以一次幂出现,彼此从不相乘,也从不被裹进正弦或平方里。只要你一瞥见 y^2,或 y 乘 y',或 sin(y),我们即将搭建的整套结构就会坍塌,因为非线性方程根本不肯配合。本级里的一切,都住在这个线性模板之内。

把方程打包成一个算子

下面这一步,能把一长串铺开的公式,变成你可以干净利落地思考的东西。把所有作用在 y 上的部分,收进一个符号 L,即线性微分算子。定义 L = a_n(x) d^n/dx^n + ... + a_1(x) d/dx + a_0(x)。它是一台机器:喂给它一个函数 y,它就还给你另一个函数 L[y] = a_n(x) y^{(n)} + ... + a_0(x) y。有了这套记号,整个方程缩成两个字符外加一项驱动:L[y] = g(x)。左边是系统;右边的 g(x) 是在驱动它的东西——一记推力、一个电压、一个热源。

何必费这个事?因为 L 拥有那条为它命名的性质:线性。对任意两个函数 y_1、y_2 和任意常数 c_1、c_2,都有 L[c_1 y_1 + c_2 y_2] = c_1 L[y_1] + c_2 L[y_2]。算子径直穿过求和与缩放。这不是记号上的巧合——它恰恰就是你在第一卷里已经信赖的两个运算所具有的同一性质:求导是线性的,(c_1 f + c_2 g)' = c_1 f' + c_2 g',而定积分也是线性的。L 只由求导和乘以 x 的函数搭成,于是它继承了它们的线性。这一条代数事实,就是整套理论生长出来的种子。

叠加:线性的馈赠

现在看看线性能做什么。设 g(x) = 0,于是方程是 L[y] = 0——我们称它为齐次方程,没有驱动力的系统,任它自己振响。若 y_1 与 y_2 都是解,即 L[y_1] = 0 且 L[y_2] = 0,那么对任意常数都有 L[c_1 y_1 + c_2 y_2] = c_1 L[y_1] + c_2 L[y_2] = c_1 · 0 + c_2 · 0 = 0。它们的组合也是一个解。这就是叠加原理,意义深远:齐次线性方程的解可以随意相加、缩放,而你始终待在解集之内。这些解构成一个向量空间

从物理上想象一下。拨一根吉他弦,它可以以基音振动,或第一泛音,或第二泛音——而弦的真实运动,不过是所有这些振动模式的某种加权和,全都同时进行。叠加就是这样一句数学陈述:各模式彼此互不干涉,每一个都像别的不存在那样演化,总和就是它们之和。往池塘里丢两块石头,涟漪交错穿过,干净利落,高度对高度地相加。那种干净的相加,就是线性被看见的样子,也正因如此,我们才能把一个难题分解成简单的几块,逐块求解,再把答案加回去。

齐次加特解:那个主分解

现在把驱动力请回来,g(x) 不为零,我们面对的是完整的非齐次方程 L[y] = g。下面是这门学问最重要的一条结构性事实。假设你不知怎么找到了完整方程的某一个解 y_p,即 L[y_p] = g——称它为一个特解。设 y 是任何另一个解,L[y] = g。相减:L[y - y_p] = L[y] - L[y_p] = g - g = 0。于是差 y - y_p 满足齐次方程。因此,完整方程的每一个解,都是一个固定的特解,加上齐次方程的某个解。

写成一句口号:y = y_h + y_p,即齐次加特解分解。L[y] = g 的通解,等于 L[y] = 0 的解 y_h(携带全部自由常数)加上 L[y] = g 的任何一个特解 y_p。这就把整桩活儿劈成两个相互独立的部分,后面几篇指南会用截然不同的工具分别去攻。齐次部分 y_h 刻画系统自身的行为——它天然的振响、它的衰减——而特解部分 y_p 刻画它对 g 的受迫响应,也就是它被驱动项推搡的方式。

一个日常画面就把它定住了。和着你手的节奏推秋千上的孩子:长期来看,运动会稳定到你推动的节拍上——那个稳定的受迫运动就是 y_p。但秋千是如何从静止过渡到那个节拍的,开头那阵渐渐消退的摇晃,就是 y_h。完整的运动是二者之和。工程师们成天这么说:总响应等于瞬态(齐次)加稳态(特解)。数学和物理说的是同一句话,而正是这个分解,使得「先解齐次方程,再找任一特解,然后相加」成为本级里每一个线性常微分方程的通用配方。

数解的个数:无关性与朗斯基行列式

齐次解构成一个向量空间——可它有多大?对一个 n 阶线性方程,答案恰好是 n:L[y] = 0 的解空间维数为 n。这与你上一级见过的一个事实深深呼应——n 阶方程需要 n 个初始条件;在这里,同一个 n 又作为你必须找到的独立解的个数重新现身。要把整个空间搭起来,你需要一组基:n 个真正彼此不同的解,没有哪一个只是别的回声。准确的说法是线性无关——除非每个 c_k 都为零,否则任何非平凡的组合 c_1 y_1 + ... + c_n y_n 都不可能是零函数。

可函数是滑溜的——你究竟该怎么去检验无关性?盯着 y_1 = e^x 和 y_2 = e^{2x},你感觉它们不一样,但你想要一个判据。答案是一个由这些函数及其导数搭成的行列式,即朗斯基行列式 W。对两个函数 W(x) = y_1 y_2' - y_2 y_1',正是矩阵 [y_1, y_2; y_1', y_2'] 的行列式;对 n 个函数,你堆叠 n 行逐次的导数。规则很干净:若 y_1, ..., y_n 是同一个 n 阶线性齐次方程的解,那么它们线性无关,当且仅当它们的朗斯基行列式不为零。一个非零的数,在某一个方便的点上算出来,就证明了你这组候选解确实张成了整个空间。

Test y1 = e^x and y2 = e^{2x}  (both solve y'' - 3y' + 2y = 0)

      | y1    y2   |   | e^x    e^{2x}  |
  W = |            | = |                |
      | y1'   y2'  |   | e^x    2 e^{2x} |

    = e^x * 2 e^{2x}  -  e^{2x} * e^x
    = 2 e^{3x} - e^{3x}
    = e^{3x}        nonzero for every x  =>  independent.
两个解的朗斯基行列式,逐步算出来:e^{3x} 永不为零,所以 e^x 与 e^{2x} 无关,二者一道构成这个二阶方程的一组基。

基础解系,以及前路的配方

把 n 阶齐次方程的 n 个能通过朗斯基检验的解凑齐,你就有了一组基础解系——整个解空间的一组基。无一例外,每一个齐次解都是这 n 个解的叠加:y_h = c_1 y_1 + c_2 y_2 + ... + c_n y_n,带 n 个任意常数 c_k。这些常数,恰恰就是你为满足 n 个初始条件而要旋的那 n 个自由旋钮。基础解系是骨架;常数是你为贴合某个具体问题而添上的血肉。

退后一步,看这整座建筑稳稳立着。要解任何一个线性常微分方程 L[y] = g,下面就是完整的纲领,它从不改变:

  1. 为齐次方程 L[y] = 0 找一组基础解系 y_1, ..., y_n——n 个独立的解,由非零的朗斯基行列式确认。对常系数方程,下一篇指南用一个代数特征方程就把这一步做完。
  2. 用叠加写出齐次通解 y_h = c_1 y_1 + ... + c_n y_n,眼下把那 n 个常数全都留作自由。
  3. 为完整方程 L[y] = g 找出任意一个特解 y_p——用待定系数法或参数变易法,那是本级后面某篇指南的工具。
  4. 把它们相加:通解是 y = y_h + y_p。直到此刻才施加初始条件,它们定死那 n 个常数,把整族解塌缩成唯一真正的答案。

这就是线性常微分方程的全部结构,而你在解任何难题之前,就已经把它握在手里了。算子 L 把方程打包;线性给出叠加;叠加使齐次解成为一个维数等于阶的向量空间;一组基础解系是你用朗斯基行列式认证的一组基;而非齐次的答案,就是把那整族齐次解平移一个特解。本级余下的每一篇指南——特征方程、振荡与共振、借由导数驱动的矩阵指数求解的方程组——都不过是在填这套纲领的第 1 步和第 3 步。骨架始终不动。