4. 参数敏感性分析的数学基础

在ODE模型中,参数并不是孤立的常数,它们通过微分方程的解耦合在一起。当我们问“某个参数变化1%时,状态轨迹会变化多少”时,实际上是在讨论解对参数的局部响应关系。本节从灵敏度函数的定义出发,逐步建立一阶灵敏度、归一化灵敏度、灵敏度矩阵,并厘清它与雅可比矩阵的本质区别与联系。

一、灵敏度函数:把“参数扰动”变成可计算的量

考虑含参数向量 p = (p₁, p₂, …, p_m) 的初值问题:

dx/dt = f(x, p, t),   x(t₀) = x₀(p)

其解记为 x(t; p)。对第 j 个参数 p_j,定义一阶灵敏度函数为解对该参数的偏导数:

S_j(t) = ∂x(t; p) / ∂p_j

它表示在参数空间中沿 p_j 方向做无穷小扰动时,状态轨迹的绝对变化率。若 x 是 n 维状态,则 S_j(t) 也是 n 维向量,逐分量描述每个状态变量对该参数的敏感程度。灵敏度函数不是凭空定义的,它满足一个可数值求解的变分方程:对原方程两边关于 p_j 求导,得

dS_j/dt = (∂f/∂x)·S_j + ∂f/∂p_j,   S_j(t₀) = ∂x₀/∂p_j

其中 ∂f/∂x 是系统在当前轨迹处的雅可比矩阵,∂f/∂p_j 是方程右端对参数的偏导。这意味着:只要在求解原ODE的同时,把 S_j 作为附加状态一起积分,就能得到整条灵敏度轨迹。这是灵敏度分析在工程上可落地的基础。

二、归一化灵敏度:消除量纲,才能横向比较

绝对灵敏度 S_j 的数值受参数单位和状态量纲影响。例如参数以“秒”计与以“毫秒”计,灵敏度数值会相差千倍,但物理意义相同。为此引入归一化(相对)灵敏度:

S̃_j(t) = (∂x/x) / (∂p_j/p_j) = (p_j / x) · ∂x/∂p_j

它回答的是“参数变化1%时,状态变化百分之几”,是无量纲量,因而可以在不同参数、不同状态分量之间直接排序。工程上常取时间上的某种范数(如峰值、积分均值或终端值)作为标量指标,形成参数重要性排序表。需要注意:当 x 接近零时归一化会放大数值,此时应回到绝对灵敏度或改用半相对形式 p_j·∂x/∂p_j。

三、灵敏度矩阵与雅可比矩阵:形似而神不同

把 n 个状态对 m 个参数的全部一阶灵敏度排成矩阵,得到 n×m 的灵敏度矩阵:

     ⎡ ∂x₁/∂p₁  ∂x₁/∂p₂  …  ∂x₁/∂p_m ⎤
S =  ⎢ ∂x₂/∂p₁  ∂x₂/∂p₂  …  ∂x₂/∂p_m ⎥
     ⎣   …        …       …    …       ⎦

它的第 j 列就是 S_j(t),第 i 行描述第 i 个状态对所有参数的敏感分布。而雅可比矩阵 J = ∂f/∂x 是 n×n 方阵,描述的是状态对状态的局部耦合,出现在变分方程右端,决定灵敏度如何沿时间传播。二者维度不同、自变量不同、物理含义不同:雅可比刻画“当前状态如何影响状态变化率”,灵敏度矩阵刻画“参数如何影响整条解轨迹”。但它们在计算上紧密耦合——没有 J,就无法积分出 S;而 S 的列数由参数个数决定,与 J 的阶数无关。下图展示这一关系。

ODE 系统 dx/dt = f(x, p, t) 状态 x ∈ ℝⁿ,参数 p ∈ ℝᵐ 雅可比矩阵 J J = ∂f/∂x (n×n) 状态↔状态 局部耦合 参数偏导 ∂f/∂p (n×m) 参数对变化率的直接作用 灵敏度矩阵 S S = ∂x/∂p (n×m) 参数↔整条解轨迹 线性化 直接求偏导 传播项 驱动项 dS/dt = J·S + ∂f/∂p,S(t₀)=∂x₀/∂p

图中可见:灵敏度矩阵的每一列由“雅可比传播项”和“参数驱动项”共同决定。雅可比决定扰动在状态间的放大或衰减,参数偏导决定扰动从哪里注入。二者缺一不可,但绝不能混为一谈。

四、一个可手算的教学示例

设一阶线性模型 dx/dt = -a·x + b·u,x(0)=x₀,参数为 a 与 b,u 为常数输入。此时 J = ∂f/∂x = -a,∂f/∂a = -x,∂f/∂b = u。灵敏度满足:

dS_a/dt = -a·S_a - x,   S_a(0)=0
dS_b/dt = -a·S_b + u,   S_b(0)=0

取 a=0.5, b=2, u=1, x₀=0,解析解为 x(t)=2(1-e^{-0.5t})。可解得 S_b(t)=2(1-e^{-0.5t})/1·… 的对应形式,而 S_a(t) 因含 -x 驱动项而呈先增后稳的形态。若在 t=4 处比较归一化灵敏度,会发现 b 的相对影响明显大于 a——这正是参数排序的依据。上述数值为教学示例设定,实际模型需按真实参数积分变分方程获得。

实践建议:在代码中把 S 与 x 拼成一个增广状态向量,交给同一求解器积分;雅可比可用解析式或自动微分获得,避免有限差分带来的步长误差。

五、使用时的三个关键约定

  • 参照系一致:灵敏度定义为“参数增大时状态增大为正”,若某工具采用相反符号约定,必须在全文统一说明。
  • 局部性:一阶灵敏度只在标称参数附近有效,参数大幅变化时需用二阶项或全局方法校核。
  • 时间指标选择:整条轨迹的灵敏度需压缩为标量(终端值、峰值、L2范数)才能排序,指标不同结论可能不同,应结合分析目的选取。

掌握这组数学工具后,参数变化影响分析就从“试几个值看看”升级为“有方向、有量级、可排序”的系统分析:灵敏度函数给出逐时刻响应,归一化灵敏度给出可比的重要性,灵敏度矩阵组织全部参数关系,而雅可比矩阵则是这一切能够被数值传播的内在机制。