0. 这份讲义讲什么:两个案例,一条建模方法论
这是上海第二工业大学王静老师的数学建模指导讲义,题目叫《从现象到结构——波动案例中的数学建模心得》。它回答一个看似简单的问题:
同样是一段局部隆起(水面波包),为什么有时整体移动,有时变宽,有时越来越陡?
讲义没有罗列模型清单,而是用两个连续的案例(线性输运、非线性波)完整走一遍建模流程:观察 → 假设 → 方程 → 求解 → 验证 → 反思 → 升级模型。它的价值不在教你几个方程,而在示范"方程是怎么从物理观察里长出来的"——这正是研究生数学建模最缺的基本功。
1. 共同语言:三个基础概念
两个案例共享同一套"词汇",先建立清楚:
- 状态量 u(x, t):x 是水平位置,t 是时间。u 可以表示相对静水面的高度,也可以换成其他传播量(温度、浓度、流量……)。建模型的第一步永远是问:"我的 u 是什么?"
- 波形(固定时间看):在同一时刻观察不同位置,得到一条空间曲线 u(x, t₀)——相当于给整个水槽拍一张快照。
- 测点记录(固定位置看):把仪器固定在 x=0,记录它随时间的升降 u(0, t)——相当于在一个点上录视频。
蓝线(空间分布)和红点(时间记录)是同一件事的两个视角,后面推导偏导数符号关系时全靠它们互相对照。
观察对象设定:长而浅的水槽中产生一段小幅度水面隆起。案例一假定它保持形状匀速传播,预测何时到达下一个测点;案例二则处理观测到的形状变化(变宽或前坡变陡),追问模型遗漏了什么。
2. 案例一:线性输运方程——"波形匀速平移"的数学化
2.1 直观定义:平移解
假设波形保持形状、以固定速度 c 向右移动(c > 0),那么解的形式必然是:
$$u(x, t) = f(x - ct)$$
f 表示初始形状;减去 ct 的含义是"把整条曲线向右移动 ct":t 增大时,x 必须跟着增大才能取到同一个函数值。时间变化只改变曲线的位置,不改变高度和宽度——这类解就叫"平移解"。
2.2 从假设到方程:一次教科书级的推导
建模的核心动作是把"匀速且不变形"这个物理假设翻译成数学关系:
第一步(假设):在短时间 Δt 内,波形向右移动 cΔt,高度暂时不变。原来在 x 处的函数值,稍后出现在 x + cΔt——"跟着同一处波形走"读数应该不变:
$$u(x + c\Delta t,\ t + \Delta t) = u(x, t)$$
第二步(一阶展开):在 (x, t) 附近作泰勒展开:
$$u(x, t) + c\Delta t\, u_x + \Delta t\, u_t + O(\Delta t^2) = u(x, t)$$
第三步(取极限):相减、除以 Δt、令 Δt → 0,得到线性输运方程:
$$u_t + c\,u_x = 0$$
符号含义:u_t 是固定位置的变化率(红点升降快慢),u_x 是同一时刻的空间斜率(蓝线坡度),c 是给定传播速度。成立条件:u 足够光滑、c 为常数、忽略变形机制。
这条推导值得背下来——"短时间传播假设 → 泰勒展开 → 偏微分方程"是所有演化方程建模的标准起手式。
2.3 初值问题与解的验证
方程 u_t + cu_x = 0 只回答"怎样演化";要预测具体状态,还必须给初始条件 u(x, 0) = f(x)——"从什么开始"。方程 + 初值合称初值问题:
$$u_t + c u_x = 0, \qquad u(x, 0) = f(x)$$
验证解:把候选解 u(x, t) = f(x − ct) 代回去。由链式法则:u_t = −c f′(x−ct),u_x = f′(x−ct),两者相加恰好为零;t=0 时 u(x,0)=f(x) 也满足初值。
讲义在这里给出一个极重要的方法论提醒:
解满足方程,只说明它符合模型;模型是否合适,还要回到研究对象。
"满足方程"和"符合观测"是两种不同的证据,缺一不可。高斯脉冲 f(x) = exp[−(x+2)²] 的传播解 exp[−(x+2−ct)²] 只是数学上成立的例子,实际波形是否这样走,要拿测点记录说话。
2.4 偏导数的动态图解:固定测点为何先升后降
这一节把抽象符号变成直觉。测点固定在 x = 0:
- 波峰到来之前:测点位于波形的右侧下降坡,空间斜率 u_x < 0;由 u_t = −c u_x(c>0)推出 u_t > 0——红点正在升高;
- 波峰离开之后:测点位于左侧上升坡,u_x > 0,因此 u_t < 0——红点降低;
- 峰顶通过瞬间:u_x = 0,此时 u_t = 0,红点瞬间静止。
空间斜率和时间变化符号相反,恰好"拼"出整条曲线向右移动。建议对照讲义第 9 页的动图理解——这是 u_t = −cu_x 最直观的解释。
2.5 解的结构:特征线
换一种观察方式:固定测点看到高度变化;若以速度 c 跟随同一处波形走,看到的数值保持不变。这条时空路径
$$x(t) = x_0 + ct$$
称为特征线。沿特征线求全导数:du/dt = u_t + c u_x = 0——函数值恒定。在 (x, t) 平面上特征线是一族平行直线,彼此不追赶、不相交。
特征线方法的意义:把二维的偏微分方程演化问题,转化为沿一条路径追踪函数值的一维问题。这是双曲方程的核心解题思想,案例二会看到它的"变形版本"。
2.6 案例一反思:能解释什么,解释不了什么
模型能解释:波峰位置 x峰(t) = x峰(0) + ct;相邻测点到达时间相差 Δx/c;平移时峰高和宽度不变。
需要回观测检验:不同测点的曲线平移后能否重合?若幅值明显衰减——可能遗漏耗散;若曲线变宽或变陡——传播假设不足,模型该升级了。
从"预测到达时间"扩展到"解释形状变化",就自然进入案例二。这种"模型失效 → 补充物理机制 → 升级模型"的推进方式,本身就是建模比赛论文最漂亮的叙事结构。
3. 案例二:两种形状变化机制——色散与非线性
3.1 变宽与变陡:两条独立的线索
- 变宽(色散):一个波包包含多个波长成分,它们以不同速度传播,叠加出来的形状随时间改变;
- 变陡(非线性):若局部传播速度随高度增加,波峰会追上前方的低处,前坡被压缩得越来越陡。
讲义的建议是:先分开研究两种机制,再判断它们能否在同一尺度上共同作用。这也是处理复杂问题的通用策略——先单变量分析,再考虑耦合。
3.2 波包、载波与包络
看图先行,再下定义(对照讲义第 13 页动图):
- 波包:振荡集中在有限区域内、远处振幅很小的"一小段波";
- 载波:里面快速重复的波峰波谷(图中的密集蓝线);
- 包络:外面勾出振幅大小变化的轮廓线(绿色虚线)——它不是另一条实际水面,只是振幅的轨迹。
数学近似写法:u(x, t) ≈ A(x, t) cos(k₀x − ω₀t),其中 cos 是载波,A 是包络。正因为要区分"内部波峰怎么走"和"整段波包怎么走",才需要两种速度。
3.3 描述振荡的四件套:λ、T、k、ω
- 空间中重复一次:波长 λ(相邻波峰间距);波数 k = 2π/λ(单位长度积累的相位)。λ 越短 k 越大,空间振荡越密。
- 时间中重复一次:周期 T(固定测点重复一次的时间);角频率 ω = 2π/T(单位时间积累的相位)。T 越短 ω 越大,时间振荡越快。
平面波 u = A cos(kx − ωt)。相位 kx − ωt 记录"振荡到了哪一步";相位相同的位置处在同一振荡阶段。这四个量是读色散关系的钥匙。
3.4 两种速度:相速度与群速度
对照动图里的红点与绿点:
- 相速度 cₚ:红点,跟随同一相位的波峰走。令 kx − ωt = 常数,微分得 cₚ = ω/k;
- 群速度 cᵍ:绿点,跟随窄带波包的包络中心走。在适当近似下 cᵍ = dω/dk。
红点穿过绿色包络的现象说明:内部波峰与包络的移动速度可以不同。
3.5 色散关系:连接方程与传播行为
色散关系 ω = ω(k) 回答:给定波数 k,方程允许的频率是多少?把平面波代进不同方程就能读出它:
- 代入常速输运方程 u_t + cu_x = 0 ⇒ ω = ck:所有波数速度相同(cₚ = cᵍ = c),无色散,波形整体平移——这解释了案例一为什么不变宽;
- 代入线性三阶方程 u_t + uₓₓₓ = 0 ⇒ ω = −k³:传播速度依赖波数,不同成分逐渐错开。
讲义顺带提醒符号约定:三阶模型的负号来自约定 exp[i(kx − ωt)],描述的是选定坐标下的相位传播——读文献时先看约定,别被符号吓到。
3.6 线性解的结构:波包为何展宽
初始波包可分解成许多平面波,线性演化中每个波数成分独立积累相位:
$$u(x,t) = \int \hat{u}_0(k)\, e^{i(kx - \omega(k) t)}\, dk$$
对照动图(蓝线振荡、绿线包络):随传播包络变宽、峰值降低。讲义用的是 ω = k² 的高斯波包精确解来演示色散展宽。
两个重要认知:
- 色散保持整体积分范数而改变局部峰值——峰值降低不等于能量耗散,只是能量被"摊薄"了;
- 包络是否展宽,取决于频带内群速度的变化幅度。
3.7 第二种机制:非线性让速度依赖波高
把常数 c 换成状态相关的速度 a(u),简单模型取 a(u) = 6u(高处跑得快):
$$u_t + 6u\,u_x = 0$$
对照动图:红线前坡越来越陡——波峰追赶前方较低区域,斜坡被压缩。"非线性"的严格含义:含 uu_x 的方程一般不满足叠加原理,两个解相加通常不再是解。(讲义注明:这里 u 与 t 已作尺度归一化,系数 6 是方便讨论的标准写法。)
3.8 梯度灾变:光滑解的"保质期"
沿特征路径,函数值仍保持初值,但特征线本身变了:
$$u(x,t) = f(\xi), \qquad x = \xi + 6f(\xi)\,t$$
ξ 是初始位置标签:不同标签携带不同初值,也就拥有不同传播速度——特征线可能相交(对比案例一的平行线!)。
对位置求导:
$$u_x = \frac{f'(\xi)}{1 + 6t f'(\xi)}$$
只要初始曲线存在下降坡(f′ < 0),分母就会在某个时刻趋于零:
$$T^* = \frac{-1}{6 \min f'(\xi)} > 0$$
t < T 时光滑解有效;越过 T,斜率发散("梯度灾变"),需要引入弱解与附加准则,不能再使用多值曲线。
讲义的两个精确措辞值得注意:梯度灾变指斜率发散,不是波高无限大;也不直接等同于真实水波的破碎。
3.9 尺度分析:两种机制能否同框
现在手上有两个"小效应":非线性(变陡)和色散(变宽)。它们能不能在同一模型里共存?答案是看量级:
- 非线性强度 ε = a/h:波高 a 与平均水深 h 之比,ε ≪ 1 为弱非线性;
- 长波色散强度 μ = (h/L)²:水深与典型波长 L 的平方比,μ ≪ 1 为浅水长波。
当 ε ~ μ ≪ 1(两个小效应同阶)时,应在较长的演化时间中一起保留——否则先被忽略的那个会在长时间尺度上"复仇"。这一步必须有量级依据,是建模论文中"模型适用条件"一节的标配写法。
3.10 KdV 方程:三种作用的合体
在浅水、弱非线性、单向长波近似下,三种作用(常速传播、非线性修正、弱色散)进入同一个方程:
$$\eta_t + c_0 \eta_x + \frac{3c_0}{2h}\eta\eta_x + \frac{c_0 h^2}{6}\eta_{xxx} = 0$$
其中 c₀ = √(gh)。随基准速度移动(X = x − c₀t)并缩放变量后,得到常用的标准形式:
$$u_t + 6u u_x + u_{xxx} = 0$$
三项各司其职:常速传播负责平移,非线性修正负责陡化,三阶导数负责弱色散。适用范围:忽略黏性与表面张力、水底平坦、波幅小、波长长、单向传播。
讲义的严谨提醒:简单叠加两个方程不能代替物理推导——KdV 的系数与适用范围来自系统近似,这正是"量级分析 → 保留同阶项"的方法论成果。
3.11 行波、孤立波与孤子:三个递进概念
- 行波:u(x, t) = U(x − vt)——在以速度 v 移动的坐标中轮廓 U 不变;
- 孤立波:局域行波,远离中心趋于背景值——"一座孤立的小山";
- 孤子:碰撞后恢复渐近形状和速度的特殊孤立波(允许留下位置相移)。
一个保持形状的局域波可以叫孤立波;孤子称号需要碰撞实验/分析来认证。三者是递进关系:行波 ⊃ 孤立波 ⊃ 孤子。
3.12 亲手解出 KdV 孤立波
行波约化:令 ξ = x − vt、u = U(ξ),代入 KdV 得常微分方程:
$$-vU' + 6UU' + U''' = 0$$
利用远场衰减条件(ξ→∞ 时 U→0)积分两次:
$$U'' = vU - 3U^2 \quad\Rightarrow\quad (U')^2 = vU^2 - 2U^3$$
再积分一次得到sech² 轮廓(sech z = 1/cosh z):
$$U(\xi) = \frac{v}{2}\,\mathrm{sech}^2!\left(\frac{\sqrt{v}\,(\xi - \xi_0)}{2}\right)$$
关键结论:峰高 = v/2,v 越大波越高、越窄——高度、速度与宽度绑定了。对比案例一:输运方程允许任意轮廓 f;而 KdV 的局域行波必须满足这个特定轮廓方程——这就是方程结构对解的"塑形"。
3.13 孤子碰撞:恢复形状,留下相移
对照精确二孤子动图(由 KdV 的 τ 函数计算):
- 碰撞前:高而窄的波(速度 v 大)从后面追上低而宽的波;
- 相互作用时:两个轮廓发生明显变化,不能把此时的解当作两个单孤子的简单相加——非线性叠加原理失效在这里看得见;
- 充分分离后:每个孤子的高度和速度完全恢复,只是中心位置相对"无相互作用轨迹"发生偏移——称为相移。
碰撞恢复性来自 KdV 特殊的可积结构,这也是"孤子"区别于普通孤立波的本质。
4. 建模心得总结:两个案例留下的方法论
讲义最后把两条案例线收拢成研究生做建模的检查清单:
模型选择三问:
- 明确输出:你要预测位置(案例一),还是解释形状(案例二)?输出不同,模型粒度完全不同;
- 给出依据:哪些物理假设支持你的方程?("匀速不变形"→ 输运方程;"速度依赖波高 + 弱色散"→ KdV)
- 检查尺度:哪些被忽略的项,何时不能再忽略?(ε ~ μ ≪ 1 的量级判断)
求解与验证三问:
- 解释结构:解是任意平移(输运方程的任意 f),还是受约束的行波(KdV 的 sech²)?解的结构反映方程的物理;
- 区分证据:满足方程 ≠ 符合观测——代回验证只是数学一致性,跟数据对上才算模型合适;
- 说明边界:何时失去光滑性(T* 梯度灾变)?何时近似失效(深水、大振幅)?给结论画清楚适用范围。
一句话总结:观察、假设、方程、解与验证相互联系,才能形成完整的建模过程。数模比赛里,能把这条链完整讲清楚的论文,远比堆砌复杂模型的论文得分高。
5. 延伸阅读建议
- 想深入特征线方法:任何偏微分方程教材的"一阶双曲方程"章节;
- 想深入色散关系与群速度:波动力学教材(如 Whitham《Linear and Nonlinear Waves》);
- 想深入孤子与可积系统:KdV 方程的标准文献与逆散射方法科普;
- 竞赛场景下,本讲义的"假设 → 方程 → 解 → 验证 → 反思"链条可直接套用到任意演化类赛题(交通流、传染病、污染物扩散本质上都是"波形如何演化"的变体)。