跳到主要内容

稳定性分析与相图分析

一、直观理解:小扰动后会不会回来​

稳定性分析回答的是:系统若处在某个“静止状态”(平衡点),受到一点小扰动后,会回到原处、附近徘徊,还是越偏越远。

可以把平衡点想象成山谷和山顶上的小球:

  • 放在谷底,轻推一下会滚回来——稳定;
  • 放在山顶,轻推就会滑下——不稳定;
  • 放在碗沿上水平滑动、既不靠近也不远离——介于二者之间的临界情形。

相图则把“状态本身”当作坐标轴。对二维系统 (x,y)(x,y),横轴是 xx、纵轴是 yy,每条曲线是某组初值随时间走出的轨迹。时间不再显式画在图上,但箭头方向表示时间前进。一张相图能同时展示:

  • 有哪些平衡点;
  • 附近轨迹是螺旋靠近、节点靠近,还是鞍点分离;
  • 是否存在极限环(持续振荡的闭轨);
  • 不同初值最终会落入哪些吸引域。

在数学建模中,稳定性与相图往往比“再画一条时间曲线”更有决策价值:它说明长期结构,而不是某一参数下的单次模拟。

二、适用场景与优缺点​

类型说明
适用场景需要判断系统长期是否趋于稳态、灭绝、爆发或周期振荡;比较不同政策/参数下平衡点是否改变类型;解释捕食—被捕食、SIR、资源竞争等二维系统的定性行为;为数值仿真选择合理时间尺度与初值范围。
核心优点不依赖某一条特定时间序列即可得到结构性结论;Jacobian 线性化计算成本低;相图对二维系统非常直观;可与 Lyapunov 函数、数值轨迹相互印证。
局限与缺点线性化只保证局部结论;高维系统相图难画;非双曲平衡点(特征值实部为 0)需更高阶工具;数值相图受步长与积分时间影响,可能把慢漂移误判为极限环。

使用前应先确认:

  1. 状态变量与方程右端 ff 已明确,且量纲一致;
  2. 关心的是自治系统,或已通过扩展状态写成自治形式;
  3. 平衡点求解可靠(解析或数值求根并回代检验);
  4. 若做政策比较,参数变化路径要说明,不能只看一个点。

三、核心原理:平衡点、Jacobian 与相平面​

考虑自治系统

x′=f(x),x∈Rn.\mathbf{x}'=f(\mathbf{x}),\qquad \mathbf{x}\in\mathbb{R}^n.

1. 平衡点​

满足 f(x∗)=0f(\mathbf{x}^*)=\mathbf{0} 的点称为平衡点(定常解)。在平衡点处系统“看起来静止”,但稳定性取决于扰动后的行为。

2. 线性化​

在 x∗\mathbf{x}^* 附近令 x=x∗+u\mathbf{x}=\mathbf{x}^*+\mathbf{u},当 ff 足够光滑时,

u′≈Ju,J=Df(x∗)=∂f∂x∣x∗.\mathbf{u}'\approx J\mathbf{u},\qquad J=Df(\mathbf{x}^*)=\left.\frac{\partial f}{\partial \mathbf{x}}\right|_{\mathbf{x}^*}.

JJ 的特征值决定局部定性行为(双曲平衡点情形):

特征值特征(二维)相图类型稳定性
两负实特征值稳定节点渐近稳定
两正实特征值不稳定节点不稳定
异号实特征值鞍点不稳定
共轭复根,实部为负稳定焦点(螺旋汇入)渐近稳定
共轭复根,实部为正不稳定焦点不稳定
纯虚根中心(线性层面)临界,需非线性项判定

更一般地:若全部特征值实部严格小于 0,则局部渐近稳定;若存在实部大于 0 的特征值,则不稳定。

3. 相图的几何要素​

  • 向量场:每点画出 f(x)f(\mathbf{x}) 方向(quiver);
  • 零倾线:x′=0x'=0 与 y′=0y'=0 的曲线,交点即平衡点;
  • 轨线:数值积分得到的状态轨迹;
  • 分界线:鞍点稳定/不稳定流形,常分隔不同吸引域。

4. 全局工具(需要时)​

  • Lyapunov 函数:构造 V>0V>0、V′≤0V'\le 0 可证明稳定或吸引,不限于局部;
  • Dulac / Poincaré–Bendixson:二维系统中用于排除或证明周期轨;
  • 分支:参数变化时平衡点数目或类型突变(跨临界、Hopf 等)。

四、关键决策:从计算到表述​

  1. 先求全体平衡点,再逐个分类
    遗漏鞍点或边界平衡(如种群为 0)会导致相图解释不完整。

  2. 区分局部与全局
    “局部渐近稳定”不等于“从任意初值都能到达”。报告中应写清吸引域是否已知。

  3. 非双曲情形不要硬套特征值表
    有零实部特征值时,线性化 inconclusive,需中心流形、Lyapunov 或数值精细积分。

  4. 相图时间长度要足够
    过短会看不出慢螺旋;过长且步长粗可能数值耗散伪造“收敛”。

  5. 与机制语言对齐
    例如 SIR 中无病平衡点稳定 ⇔R0<1\Leftrightarrow R_0<1,应把数学判据翻译回流行病学指标。

五、MATLAB 示例​

下面以线性系统与非线性阻尼摆为例:先用特征值判断,再画向量场与轨线。

%% 1) 线性系统:x' = A x
% 例:稳定焦点
A = [ -0.5, -1;
1, -0.3];

lam = eig(A);
disp("特征值:");
disp(lam);
disp("最大实部:");
disp(max(real(lam)));

% 向量场
[x1, x2] = meshgrid(linspace(-2, 2, 21));
u = A(1,1)*x1 + A(1,2)*x2;
v = A(2,1)*x1 + A(2,2)*x2;

figure;
quiver(x1, x2, u, v, 1.2);
hold on;
axis equal; grid on;
xlabel("x_1"); ylabel("x_2");
title("线性系统相平面向量场");

% 几条数值轨线
fA = @(t, x) A * x;
tspan = [0 30];
ics = [1.5 1.2; -1.5 1; 1 -1.5; -1 -1];
for k = 1:size(ics, 1)
[~, Y] = ode45(fA, tspan, ics(k, :)');
plot(Y(:,1), Y(:,2), "LineWidth", 1.2);
plot(ics(k,1), ics(k,2), "ko", "MarkerFaceColor", "k");
end
plot(0, 0, "r*", "MarkerSize", 12);

%% 2) 非线性例子:阻尼摆 theta'' + b theta' + sin(theta) = 0
% 写成一阶系统:y1 = theta, y2 = omega
b = 0.3;
fPend = @(t, y) [ y(2);
-b*y(2) - sin(y(1)) ];

% 平衡点附近线性化:在 (0,0)
% J = [0 1; -cos(0) -b] = [0 1; -1 -b]
J0 = [0 1; -1 -b];
disp("阻尼摆在 (0,0) 的特征值:");
disp(eig(J0));

figure;
hold on; grid on; axis equal;
xlabel("\theta"); ylabel("\omega");
title("阻尼摆相图(数值轨线)");

theta0 = [-2*pi, -pi, -1, 0.5, pi, 2*pi];
omega0 = [ 0, 1.5, 2, -2, 0, -1];
for k = 1:numel(theta0)
[~, Y] = ode45(fPend, [0 40], [theta0(k); omega0(k)]);
plot(Y(:,1), Y(:,2), "LineWidth", 1.1);
end
% 标出若干平衡点 k*pi
for k = -2:2
plot(k*pi, 0, "r*", "MarkerSize", 10);
end
xlim([-2.5*pi, 2.5*pi]);

对一般非线性 ff,可用符号或数值差分构造 Jacobian:

% 数值 Jacobian(中心差分)
f = @(x) [ x(1) - x(1)*x(2);
x(1)*x(2) - x(2) ]; % 简化 LV 右端示例
xstar = [1; 1];
epsJ = 1e-6;
n = numel(xstar);
J = zeros(n);
f0 = f(xstar);
for j = 1:n
e = zeros(n,1); e(j) = 1;
J(:, j) = (f(xstar + epsJ*e) - f(xstar - epsJ*e)) / (2*epsJ);
end
disp(J);
disp(eig(J));

六、如何解释结果​

完整报告通常包括:

  1. 方程与假设(是否自治、变量含义);
  2. 全部平衡点及其实际含义(如“无病平衡”“共存平衡”);
  3. 各点 Jacobian 特征值或迹—行列式判据;
  4. 相图:向量场 + 代表性轨线 + 平衡点标注;
  5. 局部稳定性结论,以及是否有全局吸引的证据;
  6. 参数变化时类型是否改变(若做情景分析);
  7. 与时间序列仿真的对照:稳定焦点应对应衰减振荡等。

解释时避免把“图上看着转圈”直接说成极限环:可能是中心附近的慢螺旋,也可能是数值误差。应结合散度、Poincaré 截面或长时间能量/振幅是否恒定来判断。

七、常见误区​

1. 把局部稳定写成“系统一定稳定”​

局部结论只在平衡点邻域成立。大扰动仍可能逃逸到其他吸引子或无穷远。

2. 只算一个“看起来合理”的平衡点​

边界平衡(变量为 0)和多稳态是竞争、传染病模型的关键部分,必须全部列出。

3. 特征值实部接近 0 时仍下硬结论​

接近虚轴时,数值误差与高阶项可能改变判断,应做参数扰动与非线性分析。

4. 相图坐标混用未无量纲变量​

数量级相差过大时,轨线会挤成一条线,难以观察结构;宜先无量纲化或分别缩放。

5. 用过粗步长的 Euler 画相图​

低阶方法的数值耗散可能把中心变成螺旋。定性相图优先 ode45 并收紧容差。

八、小结​

稳定性分析与相图分析的核心思想可以概括为:

先找到系统可能停留的平衡状态,再用线性化判断小扰动后的命运,并用相平面几何展示全局结构。

它特别适合回答“长期会怎样”和“参数阈值是否改变定性行为”。使用时务必区分局部与全局、双曲与非双曲,并把数学分类翻译回建模对象的语言。数值相图是辅助,不是取代严格判据的借口;二者互相印证,结论才站得住。