比如一个振子,给定初始位置和速度以后,它会一直振荡,慢慢停下来,还是越振越大?一个非线性系统有多个平衡点时,哪些初值会走向这里,哪些又会跑向哪里?有没有一条闭合轨道,会把周围的运动都吸引过来?
这些问题未必需要先求出解析解。
相图(phase portrait)做的事情,就是把微分方程的演化规律直接画出来。
这篇文章就沿着这张“地图”往下看:为什么二阶方程要变成二维系统,方向场怎样决定轨道,Jacobian(雅可比)矩阵的特征值为什么能区分鞍点、结点和螺旋,简谐振子的闭轨为什么不是极限环,以及数值画出的“闭轨道”为什么有时会'骗人'。 最后还会看到,相图并不只属于二维常微分方程。有限元离散后的热方程,本质上也是一个高维状态空间中的动力系统。
“相图”里的“相”,可以先理解成系统在某一刻呈现出的状态:摆锤偏到哪里、速度多大;电路里的电流和电压是多少;化学反应里各组分浓度处在什么水平。相图关心的,正是这些状态怎样随时间在状态空间里移动。
先拿最熟悉的简谐振子开刀: 。如果按常规画法,我们会画 :横轴是时间,纵轴是位移。
现在引入 ,原方程就变成一阶系统
一个时刻的状态不再由单独的 决定,而由 一起决定。两个质点即使位置相同,只要速度不同,后面的运动就不同。因此 才是这个系统完整的“相”。
于是,我们不再把时间放在横轴上,而是在 平面里画一个点。随着时间变化,这个点不断移动,留下的曲线就是相轨道。
对简谐振子,
因此 。相轨道是一族椭圆;当 时,就是一族圆。
同一个运动,换一张图以后,信息的组织方式完全不同。 告诉我们“某个初值对应的时间历程”;相图告诉我们“所有初值在状态空间里怎样排布”。周期振荡在时间图像里是一条正弦曲线,在相平面里则变成一条闭合轨道。
这里还藏着一个很实用的判断:状态变量必须足够多,使当前状态能够决定未来。 二阶标量方程通常需要 ; 个一阶方程对应 中的状态空间。若方程显含时间,例如 ,还可以增广一个变量 ,令 ,把非自治系统写成更高维的自治系统。
相图也会主动丢掉一部分信息。若 改成 ,其中 ,在解存在唯一的区域内,两套系统会沿着同样的轨道、朝着同样的方向运动,只是快慢不同。换句话说,相图首先保留的是轨道的几何形状与方向,而不是秒表上的时间刻度。
考虑二维自治常微分方程(ordinary differential equation, ODE)
在每个点 上,方程都给出一个速度向量
把这些向量画出来,就是方向场;从任意初值出发沿着方向场积分,得到一条相轨道。平衡点、方向场和若干代表性轨道放在一起,才构成一张完整的相图。
平衡点满足 。从 出发,速度向量为零,所以系统会一直停在那里。平衡点就是动力系统里最基本的“地标”。
再看线性系统 。它的解是 、 :沿 方向扰动指数放大,沿 方向扰动指数衰减,因此原点是一个鞍点。
当 时消去时间,有 ;而两条坐标轴是特殊轨道: 轴是稳定方向, 轴是不稳定方向。
相图还有一个看似简单、其实很强的性质:在满足初值问题唯一性的区域里,两条真正不同的相轨道不能相交。 如果两条轨道经过同一个状态,那么从这个状态继续演化的方式必须唯一,因此它们实际上属于同一条轨道,而不会在交点之后“各走各的”。
因此,相图不是随便画几条曲线,它受到微分方程本身严格的几何约束。
两个常用辅助对象是零流线(nullcline): 与 。它们把相平面切成若干区域;在每个区域里, 与 的符号往往固定,于是不用先求解,就能判断轨道大致向左、向右、向上还是向下。实际看一个二维非线性系统时,可以先找平衡点,再看 nullcline,最后才去跑数值积分。
非线性系统往往没有显式解,但这并不意味着局部完全无从下手。设 且 ,在平衡点附近写 。Taylor 展开给出
其中 是 Jacobian(雅可比)矩阵:
于是,一个非线性系统在平衡点附近,先被压成了一个线性系统。这里熟悉的线性代数会重新出现:特征向量给出特殊方向,特征值控制沿这些方向的增长、衰减和旋转。
记 、 。二维情形的特征值满足 ,因此判别式是 。
这里要特别注意最后两类情形。通常来说,只要特征值的实部都不为零,线性化就能比较可靠地描述平衡点附近的基本几何类型;但出现纯虚特征值或零特征值时,高阶非线性项可能改变局部行为。
所以,“算 Jacobian、看特征值”是一套很强的局部工具,但它有清楚的适用范围。这里真正容易出问题的,不是特征值算错,而是把局部线性结论直接拿去判断整个相图。 从这个角度看,相图和线性代数密切相关。线性系统的相图,几乎就是特征分解的几何版本。
这里有一个很容易混淆的概念。
简谐振子的相图里到处都是闭合椭圆,每一条轨道都对应周期运动。但这些闭轨道不是极限环,因为任意一条椭圆旁边都还有别的闭合椭圆,它们并不孤立。
极限环(limit cycle)要求闭轨道在附近是孤立的。附近轨道可以向它靠近,也可以从它离开,但不能再密密麻麻排着一族邻近闭轨道。
van der Pol 振子正好能把这个区别讲清楚:
写成一阶系统就是 、 。它只有一个平衡点 ,线性化矩阵为
特征方程为 。当 时,特征值实部为正,因此原点局部不稳定。
但系统又不会简单地把所有轨道一直向外推。方程中的 会随着 的大小改变作用方向:当 时,它表现出类似“反阻尼”的作用,小振幅倾向于被放大;当 时作用反过来,大振幅受到抑制。
也就是说,这个系统一方面会把太小的振动往外推,另一方面又会把太大的振动往回压。正是这种机制,使很多不同初值最后都靠近同一条稳定的周期轨道。
对 ,van der Pol 系统确实存在唯一的稳定极限环。这个严格结论可以由经典的 Liénard 理论得到,这里先看清它为什么会出现。
van der Pol 的 nullcline 也很直接: ,而
这和简谐振子完全不同。简谐振子是“初始能量不同,就留在不同闭轨道上”;van der Pol 振子则会把许多不同初值吸到同一条孤立闭轨道上。
用 MATLAB 的 ode45 或 Python 的 solve_ivp 画几条轨道并不难。麻烦在于:数值画出来像闭轨道,不等于数学上真的存在周期轨道。
最常见的问题有三个:时间步长或容差太松,数值方法 会引入额外耗散或数值增益;积分时间太短,缓慢螺旋可能看起来已经闭合;只试一个初值,也很难判断看到的是孤立极限环,还是一族中性稳定的闭轨道。
一个简单的数值自检办法是改变步长、容差和初值,看看相图的主要几何结构是否基本不变。若要进一步检查周期轨道,可以选一条横截线做 Poincaré 截面:每当轨道以同一方向穿过截面时记录一个交点。若返回点 逐渐收敛到同一个 ,就说明这条周期运动具有稳定吸引附近轨道的特征。
二维系统还有一个很特别的地方:它的长期行为受到很强的几何限制。简单地说,如果轨道一直被困在一个有界区域里,又没有趋向某个平衡点,那么周期轨道往往会成为最重要的长期行为之一。
到了三维以后,这种简洁图景就不再成立,复杂吸引子甚至混沌都可能出现。 所以二维相图之所以好用,不只是因为“画得出来”,还因为二维空间本身给了我们很多额外结构。
相图最容易画的是二维 ODE,但这种思路其实并不局限于二维。
例如齐次 Dirichlet 边界条件下的热方程 。做有限元(finite element method, FEM)半离散以后得到
也就是 。若离散后有 个自由度,状态 就在 中运动。我们已经没法把整个相图画在纸上,但动力系统的语言仍然适用。
定义离散能量 。利用 ,
对齐次 Dirichlet 热方程的标准有限元离散,刚度矩阵 是正定的,所以只要 ,能量就会持续下降,轨道不断向零稳态靠近。
再看广义特征值问题 。每一个特征向量 都对应一个衰减模态 。较大的 衰减更快,较小的 衰减更慢;长期以后,快模态先消失,剩下的运动会越来越受慢模态控制。
二维相图里“不同方向收缩得快慢不同”,到了偏微分方程(partial differential equation, PDE)离散以后,就是不同特征模态具有不同衰减率。继续把网格加密,状态空间维数越来越高;在连续层面, 本身就是函数空间中的一个点。
这也解释了为什么“相空间”这个词远不只属于二维画图。平衡点对应稳态解,周期轨道对应周期解,稳定流形和不稳定流形描述特殊演化方向,Lyapunov 泛函刻画沿轨道单调变化的量,吸引子则记录长期动力学。
读到这里你或许明白了,如果一个微分方程暂时写不出解析解,我们也可以先问几件更朴素的事:平衡点在哪里?附近往里走还是往外走?有没有守恒量或单调量?轨道会不会被困在某个有界区域?这些问题一旦有了答案,方程的整体形状通常已经清楚不少。
你对相图还有哪些更深的理解?欢迎在评论区补充!