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

线性常微分方程组与矩阵指数

把若干个相互耦合的方程摞成一个向量方程 dx/dt = A x,于单个方程上建起的整套机器便披着矩阵回来了。特征值取代了根,矩阵指数 e^{At} 取代了 e^{rt},而仅凭一个 2x2 矩阵,你一眼就能看出这股流是结点、是鞍点、是螺线,还是中心。

从一摞方程到一个向量方程

至此,本级里每一个方程都只有一个未知函数。可世界很少一次只递给你一个。两个互相交换盐水的水箱、两个用弹簧相连的质量块、捕食者与猎物、一个双回路电路里的电流——其中每一个里,都有几个量一同变化,而每一个的变化率都依赖于其余所有的量。这种耦合正是要害所在:不连同其余一起解,你就解不出任何一个。一个线性常微分方程组把这件事诚实地打包起来。把未知量写成一个向量 x(t) = [x_1(t); x_2(t); ...; x_n(t)],运动法则便成为 dx/dt = A x,其中 A 是一个 n 乘 n 的常系数矩阵。我们只谈常数 A,这一情形既可解又无处不在。

有两个事实,让这不止是整洁的记号。其一,单个高阶方程其实是乔装的方程组。取阻尼振子 u'' + b u' + k u = 0。把速度命名为 v = u',于是 u' = v 且 v' = -k u - b v;写成向量形式,令 x = [u; v],你便得到 dx/dt = A x,其中 A = [0, 1; -k, -b]。每一个 n 阶线性方程都这样地、通过把导数引作新变量,摊平成一个规模为 n 的一阶方程组。方程组并不是一个另立门户、更难啃的题目——它正是整套线性常微分方程理论最终所用的天然语言。

其二,本级第一篇里的整套结构性理论原封不动地存活了下来,只是换上了向量的装束。方程组 dx/dt = A x 是齐次且线性的,所以叠加原理依旧成立:把两个解向量相加、缩放,你仍待在解集之内。一个 n 维方程组的解构成一个 n 维向量空间,我们需要 n 个独立的解向量去张成它。把 x(t) 不要想成一组数字,而想成一个移动的点——在 n 维状态空间里描出的一个粒子,而 A x 正是那个速度的向量场,在每个位置上告诉这个点该往哪儿去。解这个方程组,就是找出那个点如何流动。

特征值法:猜一个沿直线的解

我们怎么撬开 dx/dt = A x?把当初解开单个方程的那个念头偷过来。对一个标量方程 x' = a x,答案是 x = e^{at}:一个指数函数,因为对它求导只不过是乘以 a。试试向量的类比物——猜想这个方程组有一个永远保持同一方向、只随时间放大或缩小的解:x(t) = e^{lambda t} v,其中 v 是一个固定的非零向量,lambda 是一个数。求导:dx/dt = lambda e^{lambda t} v。代入方程:lambda e^{lambda t} v = A (e^{lambda t} v) = e^{lambda t} A v。约去那个永不为零的标量 e^{lambda t},微积分便彻底消失,只剩一个纯代数问题:A v = lambda v。

那个方程 A v = lambda v,正是线性代数里的特征值问题。一个其方向被 A 保持不变的向量 v——A 只把它按因子 lambda 伸缩——叫做特征向量,而 lambda 是它的特征值。这就是特征值法:A 的每一对特征对 (lambda, v) 都递给你一个沿直线的解 e^{lambda t} v,一条永远沿着过 v 的那条直线行进的轨迹,lambda > 0 时膨胀,lambda < 0 时朝原点坍缩。特征向量正是那些特殊的方向,沿着它们,相互纠缠的耦合方程便解开,化为简单、独立的指数增长——它们是方程组的天然坐标轴。

要找特征值,把 A v = lambda v 改写成 (A - lambda I) v = 0,其中 I 是单位矩阵。一个非零向量 v 能满足它,唯有当矩阵 A - lambda I 把它碾成零——而这恰好发生在该矩阵奇异之时,即 det(A - lambda I) = 0。这个行列式是关于 lambda 的一个多项式,即特征多项式,其根就是特征值。请留意这美妙的回响:对单个阻尼振子,你曾解一个关于指数 r 的特征方程;在这里,正是同一类多项式,如今由一个行列式生出,递给你那些指数 lambda。那个单一方程,向来不过是这件事的 1 乘 1(或友矩阵)的影子。

Solve  dx/dt = A x   with   A = [ 1,  1 ;  4,  1 ]

Characteristic polynomial:
  det(A - lambda I) = | 1-lambda    1     |
                      |   4      1-lambda |
   = (1-lambda)^2 - 4 = lambda^2 - 2 lambda - 3 = (lambda-3)(lambda+1)
   =>  lambda = 3,  lambda = -1

Eigenvectors:
  lambda = 3 :  (A-3I)v=0  -> -2 v1 + v2 = 0  -> v = [1; 2]
  lambda = -1:  (A+I)v=0   ->  2 v1 + v2 = 0  -> v = [1; -2]

General solution (superpose the two straight-line solutions):
  x(t) = c1 e^{3t} [1; 2]  +  c2 e^{-1 t} [1; -2]
2x2 方程组上的特征值法:一个行列式给出指数,回代给出方向,叠加拼出通解。这里 lambda = 3 与 lambda = -1 符号相反——这正是鞍点的标志,最后一节会讲清。

基本矩阵:把解捆成一束

对一个 n 维方程组,你凑齐 n 个独立的解向量 x_1(t), ..., x_n(t),通解便是它们的叠加 x(t) = c_1 x_1(t) + ... + c_n x_n(t)。把这些捆成一个对象是值得的。把这 n 个解向量竖起来,作为一个矩阵的各列:Phi(t) = [x_1(t) | x_2(t) | ... | x_n(t)]。这就是基本矩阵,它是你在第一篇里遇到的基础解系在方程组层面的版本。有了它,通解便塌缩成单单一个矩阵乘向量的积,x(t) = Phi(t) c,其中 c 是那一列任意常数。

因为每一列都满足方程组,整个矩阵也满足方程组:dPhi/dt = A Phi,如今是一个矩阵微分方程。检验各列是否真正独立的判据,理所当然地,又是一个行列式——det Phi(t),它在这里所扮演的角色,恰恰就是朗斯基行列式对单个方程所扮演的。若 det Phi 在某一时刻不为零,它便在每一时刻都不为零,各列构成一组基。这正是你先前见过的那种阿贝尔式的「全有或全无」行为,被抬升到了向量上。一个非奇异的基本矩阵,就是你那张证书,证明这 n 条轨迹确实张成了整个解空间。

矩阵指数 e^{At}

现在,来谈那个为整门学问加冕的念头。标量方程 x' = a x 有干净的闭式 x(t) = e^{at} x_0。方程组 dx/dt = A x 会不会也有一个同样干净的闭式 x(t) = e^{At} x_0,让矩阵 A 坐在数 a 曾坐的位置上?唯一的障碍是含义:一个矩阵的指数究竟能是什么?我们并不是真的把 e 升到矩阵次幂。我们改而借用指数那个从不提及根、也从不重复地把 e 相乘的定义——它的泰勒级数 e^z = 1 + z + z^2/2! + z^3/3! + ...——把一个矩阵喂进去。把矩阵指数定义为 e^{At} = I + At + (At)^2/2! + (At)^3/3! + ...,是完全说得通的:每一项都是矩阵,你把矩阵相加,而这个级数可证明对任何方阵 A 都收敛。

而它确实满足你所企盼的一切。把这个级数对 t 逐项求导——在其收敛半径内这是合法的,与寻常幂级数一模一样——你便得到 d/dt[e^{At}] = A + A^2 t + A^3 t^2/2! + ... = A e^{At}。于是 x(t) = e^{At} x_0 满足 dx/dt = A x,且在 t = 0 时等于 e^{0} x_0 = I x_0 = x_0。因此矩阵指数一举给出了任意起点 x_0 的初值问题的精确解。它也正是那个被归一化、使其在 t = 0 等于单位阵的特殊基本矩阵:e^{At} = Phi(t) Phi(0)^{-1}。仅仅一个对象,便把每一个初始条件向时间前方推送。

相平面:一眼读出流的样子

对一个 2x2 方程组,最美的回报是几何上的。把时间轴撇开,直接在 (x_1, x_2) 平面里画出轨迹——这就是相平面——每一条曲线都是一个解所扫出的路径,配上小箭头标明流动的方向。因为 A x 不随时间变(该方程组是自治的),这幅图是一个固定的向量场,而原点——A x = 0 之处——是那唯一的平衡点。令人惊叹的事实是:一个 2x2 矩阵的两个特征值,完全决定了这整幅画像的形状。它们的符号与它们是否为实数,把每一种线性流分门别类,归入一张简短的、有名有姓的图样清单——即相平面分类

凭感觉把这些情形走一遍。两个同号的实特征值给出一个结点:若两者皆负,每条轨迹都向内流,原点是一个稳定的汇,所有路径都排向中心;若两者皆正,则是一个源,一切向外飞散。两个异号的实特征值给出一个鞍点——正是我们上面算过的那个 2x2 的情形,lambda = 3 与 lambda = -1:轨迹沿着负特征值的特征向量奔涌而入,转向,再沿着正的那个射出,描出一条条经过一个不稳定交汇处的、形如双曲线的路径。复特征值 lambda = alpha +/- i beta 则带来旋转,因为 cos 与 sin 藏在 e^{(alpha + i beta)t} 之内:实部 alpha 定半径,虚部 beta 定旋转。若 alpha 不为零,你得到一个螺线——轨迹绕着原点盘旋,同时收缩(alpha < 0,稳定螺线)或扩张(alpha > 0,不稳定螺线),这是一个阻尼或受驱振荡盘旋着衰落或上扬的通用画像。若 alpha 恰为零,纯虚特征值,你得到一个中心:闭合的椭圆轨道永远绕着原点转,既不增长也不衰减——无阻尼振荡,能量完美守恒,正是无摩擦单摆或理想 LC 电路在相平面里的面孔。自始至终,特征值实部的符号,正是关于稳定性的判决:负实部把你拉回家,正实部把你推开。

  1. 由 det(A - lambda I) = 0 算出两个特征值——等价地,由 A = [a, b; c, d] 的迹 tau = a + d 与行列式 Delta = ad - bc 算出,因为 lambda 满足 lambda^2 - tau lambda + Delta = 0。
  2. 实数且同号 -> 结点(皆负为汇,皆正为源)。实数且异号 -> 鞍点(恒不稳定)。
  3. 复数且实部非零 -> 螺线(实部 < 0 稳定,> 0 不稳定)。纯虚 -> 中心(闭合轨道,临界稳定)。
  4. 从实部读出稳定性:两个实部都为负,意味着每条轨迹都回到原点;只要有一个实部为正,它终将逃逸。

把诚实的边界放在眼前。这份清晰的图集,只对常系数线性方程组才是精确的;一个真实的非线性系统,有它自己的、也许狂野的几何。回去的桥,是你日后会遇到的线性化:在一个非线性场的平衡点附近,你用它的偏导数矩阵——即雅可比矩阵,一个径直来自多元微积分的念头——去近似它,而那个局部矩阵的特征值,通常能预言邻近的画像。是通常,而非总是:那些临界情形(一个中心、一个重特征值、一个零特征值)是微妙的,在那里,你丢弃的那些非线性项可以决定真正的行为。但在这些诚实的限度之内,你如今握有一项非凡的本领——从一个矩阵上读出两个特征值,你便能勾出整个系统的命运,而无须解出哪怕一条轨迹。