长期行为由不动点决定
到目前为止,我们画的是 x 如何随时间变化,把图像画在时间轴上。可要理解振动与流动,还有一幅更强大的图:把时间抹掉,转而画状态本身。摆动重物的状态,光靠位置 x 是不够的——同样的位置,它是正飞快地经过、还是即将停下,意味完全不同。于是把位置 x 和速度 x' 捆成一对,把 (x, x') 看作平面上的一个点。这就是相平面。时间一流逝,这个点便在平面上描出曲线而移动,而系统的微分方程在每个点都用一支箭头规定那个点下一步往哪儿去。这里发生了一件魔法般的事。只要知道箭头变为零的那些特殊点——不动点——的种类,你就能判断系统最终去往何方:是安定、发散,还是永远打转。而决定这些种类的,正是我们在线性代数里见过的特征值。这一讲里,整条 C 线借特征值汇到了一处。
先理解相平面这个舞台。横轴是位置 x,纵轴是速度 x'。某一时刻系统的状态,由这平面上的一个点——状态点——完全确定。按播放。做衰减振动的系统,其状态点一边移动一边描出曲线。重物被推到一侧时(x 大、速度为零),点落在横轴的最右端;重物快速穿回中央时(x 为零、速度大),点升上纵轴。位置和速度就这样轮流交接,点绕着原点一圈圈地转。因为有阻尼,能量漏掉,于是描出一条越卷越向里的螺旋,最终被吸进原点,也就是静止状态。在时间轴图上起起伏伏的曲线,在这里成了一条干净的、向内卷的螺旋。抹掉时间,换来的是运动的整体形状一目了然。
状态点往哪儿去,由谁来定?由系统的方程。还记得 C1 的方向场吧:那里给每个点一个斜率。在相平面上,我们更进一步,给每个点一整支箭头——也就是状态从那个点朝哪个方向、以多快移动。联立方程 x'=y, y'=−x−0.4y 把整个平面铺满箭头。这就是向量场。把起点拖到任意地方。状态点跟着所在处的箭头走,到下一个点又跟着那里的箭头走。这样忠实地沿箭头一步步走,就描出一条轨迹。就像把一片叶子落到河里,它顺着水流漂走,状态点也顺着向量场流动。无论从哪个点出发,抵达那个点的流向就定下了它下一步去哪儿。C1 的一维流动,在这里长成了二维流动。
在整个向量场里,恰好有一种点是特别的:箭头长度为零的点,不动点。那里状态哪儿也不动,一旦放上去就永远不变——平衡态。可同样是不动点,性格却天差地别。拿摆来看。乖乖向下垂着的位置是不动点;放在那儿它就静止,轻轻一碰也只是在附近绕,不离开那一带。这叫中心,是稳定不动点。可把摆倒立起来的位置也是不动点。完美竖直,理论上它就不动;但只推它一根头发丝那么点,它就轰然倒下、跑得老远。这叫鞍点,是不稳定不动点。用按钮把这两个不动点点出来。系统的命运,取决于起点落在哪个不动点的势力范围里,以及那个不动点是哪一种。
不动点附近的流动形状,恰好归成几类。用标签一个个看。稳定结点把每支箭头都笔直地吸进不动点;碰它一下,它二话不说回到原位。稳定螺旋一边转圈一边卷进去;回是回来了,却是边晃边回——这正是 C2 里见过的衰减振动。鞍点沿一个方向吸入、沿另一个方向甩出;几乎所有起点最终都跑得老远,是不稳定点。中心既不吸入也不推出,永远绕着同一条轨道转——无阻尼振动。不稳定螺旋则相反,一边转圈一边越甩越往外。这几种,就是二维线性系统所能呈现的全部行为。再复杂的系统,在不动点附近也表现得像这本图鉴里的一种。那么,哪个系统属于哪一型,由什么来定呢?
终于,一切汇到了一处。决定不动点类型的,是在那一点把系统线性化的矩阵——雅可比矩阵——的特征值。在线性代数里,特征值是变换沿哪个方向拉伸多少。在这里,它决定在不动点附近,状态点沿哪个方向、以多快被甩开或吸入。特征值是二次式 λ²−τλ+Δ=0 的根,其中 τ 是矩阵的迹,Δ 是行列式。在 (τ, Δ) 平面上拖动点。整幅相图随之改变。若两个特征值都是负实数(Δ>0、τ<0、判别式为正),每个方向都收缩——稳定结点。若特征值是复数(判别式为负),A2、C2 的旋转便介入,成为螺旋;实部为负是稳定螺旋,为正是不稳定螺旋。实部为零的纯虚特征值给出中心,永恒的振荡。若特征值符号相异(Δ<0),一个方向吸入、一个方向甩出——鞍点。C2 的特征根,其实就是这雅可比特征值的一维版本,而 A2 的复指数正是螺旋的真身。线性代数的特征值、复数的旋转、微分方程的稳定性,全在这一幅图里相遇。