跳到正文
格致开物MATHWIKI

相平面

AIContentBot留言 | 贡献2026年9月21日 (一) 07:47的版本 (扩充动态系统建模:原创案例、逐步推导与透明SVG;串联离散、连续、空间、时滞及随机学习路线)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

相平面(phase plane)把一个二维系统在同一时刻的两个状态量作为横、纵坐标。随着时间变化,状态点描出一条有方向的轨迹。它适合回答“系统会靠近平衡、绕着平衡运动,还是远离平衡”等问题;若要知道某个状态在第几秒出现,还要结合时间曲线。

两条时间曲线怎样变成一条轨迹

先看一个没有单位的简单系统: dudt=v,dvdt=u,u(0)=1,v(0)=0. 这里 u,v 是两个状态量,t 是时间参数。代入可核对它的解: u(t)=cost,v(t)=sint. 在普通函数图中,要分别画 (t,u(t))(t,v(t))。相平面改为画 (u(t),v(t)):同一时刻从两条时间曲线各取一个纵坐标,将这两个数配成一点。

例如 t=0 时状态为 A=(1,0)t=π/2 时为 B=(0,1)t=π 时为 C=(1,0)t=3π/2 时为 D=(0,1)。时间继续增加,点从 D 回到 A,沿单位圆顺时针运动。

上部是余弦和负正弦时间曲线,下部把相同时刻的两数配为单位圆上的四个状态点,箭头顺时针
同一组解的两种画法。字母 A、B、C、D 对应同一批时刻;相图的横轴已经变成 u。

图中的圆没有表示“两个量都一直增加”。从 ABu 从 1 降到 0,v 从 0 降到 −1;从 BCu 继续下降,而 v 开始上升。相图把两种变化放在同一个位置关系中。

不求显式解,也能读出运动方向

一般的二维自治系统写成 u=F(u,v),v=G(u,v). “自治”指右侧没有显式出现时间:知道现在的 (u,v),就知道这一刻的变化率。每个状态点上放置向量 (F(u,v),G(u,v)),便得到方向场。真正的解轨迹在每一点与这个向量相切。绘图时常把箭头统一缩短,因此箭头朝向可用于读方向,画出的长度未必代表实际速度。Lebl《Notes on Diffy Qs》§3.5

在刚才的系统中,(F,G)=(v,u)。点 (1,0) 上的方向为 (0,1),所以轨迹先向下;点 (0,1) 上的方向为 (1,0),所以轨迹向左。只要检查四个象限中的正负号,就能补齐整圈的方向。

把一个分量变化率为零的点连起来,得到零增长线(nullcline)。这个例子中:

  • u=0 对应 v=0。这条线上横向分量为零,除原点外,轨迹的切向是竖直的。
  • v=0 对应 u=0。这条线上纵向分量为零,除原点外,轨迹的切向是水平的。

两条零增长线相交于 (0,0),此处两个分量都不再变化,是平衡点。零增长线上的其他点通常会移动,因而不能把整条线都当作平衡状态。

平面方向场在横轴上竖直、纵轴上水平,三个同心圆轨迹顺时针围绕原点
先看每个箭头的两个分量,再沿着相切方向连接轨迹。金色横轴是 u 的零增长线,粉色纵轴是 v 的零增长线。

有时也把轨迹写成斜率方程。沿解应用链式法则,在 F(u,v)0 的位置有 dvdu=dv/dtdu/dt=G(u,v)F(u,v). 本例成为 dv/du=u/v。在 v=0,u0 处,分母为零,恰好对应竖直切线;原来的时间方程仍然有意义。还要注意,斜率只确定切线而不区分前进与后退,运动箭头仍须由 (F,G) 决定。

圆为什么不会慢慢缩小

从几张离散截图看见“像圆”的形状,还不足以排除缓慢向内或向外的螺旋。这里可以直接求一个始终不变的量: ddt(u2+v2)=2uu+2vv=2uv+2v(u)=0. 所以每条解上的 u2+v2 等于初值 u(0)2+v(0)2。非零初值对应半径固定的圆,原点初值对应不动的点。距离原点原来有多远,以后就有多远。

这也解释两个稳定性词语的区别:原点是稳定的,因为足够小的初始距离永远保持很小;它不是渐近稳定的,因为任何非零初始距离都不会趋于零。本例的原点称为中心。相邻圆都是周期轨道,没有哪一条圆单独吸引旁边的轨迹,因此这些圆也不是孤立的极限环平衡点与稳定性给出了“始终接近”和“最后靠近”的定量定义。

改变时间尺度还能说明相图省略了什么。把方程改为 u=2v,v=2u,仍然得到同样的顺时针圆;但一个周期从 2π 变成 π。只有轨迹的形状与箭头方向,并不能读出走完一圈用了多久。

三种不同的靠近或远离方式

把原方程的变化机制改一下,相图就会不同。下面每个例子都能显式求解,因此可以用公式检验图形。

结点:两个分量分别衰减

考虑 u=u,v=2v。记初值为 u0=u(0),v0=v(0)。由一阶线性微分方程的解法, u(t)=u0et,v(t)=v0e2t. 两个分量都趋于零,纵向分量衰减更快。若 u00,消去时间:由 et=u/u0v=v0u02u2. 轨迹沿相应抛物线的一支进入原点,u 的符号不变;若 u0=0,则沿纵轴进入。这个原点是渐近稳定的结点。注意公式描述的是给定初值所在的那一支,不是说一条解会在两支之间跳转。

鞍点:一个方向靠近,另一个方向离开

考虑 u=u,v=v。解为 u(t)=u0et,v(t)=v0et. 若恰好 u0=0,轨迹沿纵轴趋于原点;但只要 u00,横向距离最终就会增大。乘积 uv=u0v0 保持不变,其他轨迹沿双曲线运动。即使一部分初值会靠近原点,也无法保证所有足够小的扰动都保持接近,所以鞍点不稳定。

焦点:一边旋转,一边衰减

再考虑 u=u+v,v=uv. 直接代回方程可检验 u=et(u0cost+v0sint),v=et(v0costu0sint). 括号中的旋转与开篇相同,外面的 et 则使距离缩小。更直接地, ddt(u2+v2)=2(u2+v2), 于是距离等于初始距离乘 et。轨迹顺时针螺旋进入原点;这种渐近稳定的平衡点称为稳定焦点。

三个上下排列的相图依次显示结点曲线进入原点、鞍点沿一个轴进入另一个轴离开、焦点螺旋进入原点
图中的箭头均表示时间增加。是否旋转、是否靠近,以及是否所有邻近方向都靠近,要分别判断。

这些例子只展示最基本的三种形态,并不是二维系统全部情况的清单。一般非线性系统在平衡点附近,常先用线性化与雅可比矩阵提取主要变化;若线性化出现零实部特征值,高阶项可能决定结果,不能单凭一张线性相图下结论。

轨迹会不会交叉

F,G 在所考察开区域中连续,并对状态局部满足 Lipschitz 条件;连续可微是一个常用的充分条件。这时经过给定状态的局部解唯一。假如两条自治系统轨迹在某点相交,把两条解的时间都平移到到达该点的时刻,它们就有相同的方程和相同的初值,之后与之前的局部轨迹必须重合。因此不同轨道不能像两条道路那样在同一点分岔。

周期解回到原点位并不违反唯一性:返回后会重复原来的运动,它始终是同一条轨道。另一个容易混淆的情况是:两条 u(t) 时间曲线可以相交,因为那一刻的 v 可能不同,完整状态并未相同。

对于显式含时间的系统 u=F(t,u,v),v=G(t,u,v),不同时刻处于同一个 (u,v) 时,外部作用可能不同,投影到二维平面的轨迹就可能交叉。要恢复自治描述,可以把时间也作为状态,增加 t=1,但状态空间随之成为三维。

学习弹簧振子模型时,可把位移和速度当作两个坐标;学习捕食者-猎物模型时,则把两种种群数量当作坐标。坐标的物理意义不同,读相图的方法相同:先找状态与方向,再找不变量或稳定性依据,最后用时间曲线补足运动快慢。

参考资料