2. 初值问题的数学表述与适定性
在动力系统求解中,我们面对的往往不是一个孤立的微分方程,而是“方程 + 初始条件”的组合。只有给定系统在某一时刻的状态,才能确定它此后如何演化。这一节要把这个直觉转化为严格的数学表述,并回答两个关键问题:这样的问题在什么条件下有解?解是否唯一?初始数据的微小扰动会不会被无限放大?
一、常微分方程初值问题的标准形式
设未知函数为向量值函数 x(t) ∈ ℝⁿ,自变量 t 通常表示时间。一阶常微分方程组的标准形式写作
dx/dt = f(t, x), x(t₀) = x₀
其中 f: D → ℝⁿ 定义在区域 D ⊂ ℝ × ℝⁿ 上,(t₀, x₀) ∈ D 称为初始点,x₀ 称为初值。所谓“解”,是指定义在包含 t₀ 的某区间 I 上的可微函数 x(t),满足 x(t₀)=x₀,且对一切 t∈I 有 x′(t)=f(t,x(t))。
高阶方程可以化为一阶方程组。例如单摆方程 θ″ + (g/L)sinθ = 0,令 x₁=θ、x₂=θ′,得到
dx₁/dt = x₂
dx₂/dt = -(g/L)·sin(x₁)
初始条件:x₁(t₀)=θ₀, x₂(t₀)=ω₀
这一步很重要:数值求解器通常只接受一阶方程组形式,因此建模后的第一件事就是完成这种“降阶”改写,并明确状态向量的每个分量对应什么物理量。
二、存在唯一性:从 Peano 到 Picard–Lindelöf
仅有连续性不足以保证唯一。经典反例是
dx/dt = |x|^(1/2), x(0) = 0
它有无穷多个解:x(t)≡0,以及 x(t)=(t−c)²/4 在 t≥c 上拼接的分段解。原因在于右端函数在 x=0 处虽然连续,但变化率无界,解可以在该点“分岔”。
Peano 定理只要求 f 连续,就能保证局部解存在,但不保证唯一。Picard–Lindelöf 定理在此基础上增加 Lipschitz 条件,同时得到存在性与唯一性。其构造性证明使用 Picard 迭代:
x₀(t) ≡ x₀
x_{k+1}(t) = x₀ + ∫_{t₀}^{t} f(s, x_k(s)) ds
在 Lipschitz 条件下,该迭代序列在足够短的区间上一致收敛到唯一解。这个迭代不仅是证明工具,也是理解“解由初值连续决定”的直观来源。
三、Lipschitz 条件的含义与检验
称 f 关于 x 满足 Lipschitz 条件,若存在常数 L≥0,使得对区域内任意 (t,x)、(t,y) 有
‖f(t, x) − f(t, y)‖ ≤ L·‖x − y‖
L 称为 Lipschitz 常数。它刻画的是右端函数对状态的敏感度上界:状态差多少,导数差最多被放大 L 倍。若 f 对 x 连续可微,则可用雅可比矩阵的范数上界估计 L,即 L = sup‖∂f/∂x‖。例如 f(t,x)=−5x+sin t,则 ∂f/∂x=−5,L=5,全局 Lipschitz。
需要注意,Lipschitz 是比连续强、比可微弱的条件。f(x)=|x| 满足 Lipschitz(L=1)但不可微;f(x)=x² 在 ℝ 上不满足全局 Lipschitz,但在任意有界区间 [−M,M] 上满足局部 Lipschitz(L=2M)。这解释了为什么许多非线性系统只能保证局部解,解可能在有限时间内爆破,例如 ẋ=x²、x(0)=1 的解 x=1/(1−t) 在 t→1 时发散。
四、适定性:存在、唯一、稳定三要素
Hadamard 意义下的适定性要求初值问题同时满足三条:解存在;解唯一;解连续依赖于初始数据。第三条常被忽视,却对工程实践至关重要。若初值有测量误差 δ,我们希望解在有限时间内的偏差被某个与 δ 同阶的量控制,而不是任意放大。
在 Lipschitz 条件下,可以给出定量估计。设 x(t)、y(t) 分别是初值 x₀、y₀ 对应的解,则
‖x(t) − y(t)‖ ≤ e^{L|t−t₀|} · ‖x₀ − y₀‖
这就是 Gronwall 不等式的直接推论。它说明误差上界随时间指数增长,增长速率由 Lipschitz 常数 L 决定。L 越大,问题越“敏感”。例如 L=5、t−t₀=2 时,放大因子 e^{10}≈22026,初值 10⁻³ 的误差可能被放大到约 22,这在数值求解时必须通过减小步长或提高精度来应对。
五、从判据到实践:一个可操作的检验示例
考虑阻尼振子 ẍ + 2ζωₙẋ + ωₙ²x = 0,取 ωₙ=2、ζ=0.3,初值 x(0)=1、ẋ(0)=0。降阶后 f 为线性函数,雅可比矩阵为
A = [[0, 1], [−ωₙ², −2ζωₙ]] = [[0, 1], [−4, −1.2]]
其谱范数上界可取 ‖A‖∞ = max(1, 5.2) = 5.2,故 L=5.2,问题全局 Lipschitz,因而适定。若把初值改为 x(0)=1+10⁻⁶,理论上 t=1 时解的偏差不超过 e^{5.2}×10⁻⁶≈1.8×10⁻⁴。实际数值验证时,可用同一求解器分别以两组初值积分到 t=1,比较状态差是否落在该上界内;若明显超出,应检查步长、容差或右端函数实现是否有误。
反过来,若右端含分段或开关项,例如 f(x)=−sign(x),在 x=0 处不满足 Lipschitz,滑模解可能不唯一,此时需要引入 Filippov 意义下的解或补充物理约束,而不能直接套用经典唯一性定理。理解这些边界,正是把数学判据转化为可靠求解实践的关键。