
常微分方程(十七):物理与工程应用
ODE 在物理和工程中的真实应用:非线性单摆、RLC 电路与谐振、开普勒轨道与守恒律、多自由度结构振动与调谐质量阻尼器、流体从 Poiseuille 流到旋涡脱落——五个经典案例配完整 Python 仿真。
微分方程绝非纯数学游戏——它正是理解物理世界的语言。 从天体运行到电路响应,从单摆摆动到桥缆后方的涡脱落,每一个动力系统都在用常微分方程(ODE)“说话”。
本章精心选取了五个经典应用场景。每个例子都将充分调用我们在第 1–16 章构建的整套 ODE 工具箱:相平面、特征值、拉普拉斯变换、模态分析、守恒律、数值积分与控制理论。这些并非玩具模型,而是真实存在的物理系统,其表述经过精炼,以便清晰展现内在结构。
总结#
- 非线性单摆:小角度线性化 vs. 完整方程、周期与振幅的关系、分界线(separatrix)
- RLC 电路:三种阻尼状态、谐振现象、Q 因子与调谐
- 开普勒轨道:万有引力、偏心率、能量与角动量守恒、Bertrand 定理
- 多自由度结构振动:模态分析、共振、调谐质量阻尼器(Tacoma 大桥的教训)
- 流体力学:Poiseuille 流、雷诺数、涡脱落、Stokes 沉降
前置知识#
非线性单摆 —— 非线性 ODE 的“Hello World”#
$$\ddot\theta + \frac{g}{L}\sin\theta = 0.$$当 $\theta$ 很小时,可用 $\sin\theta \approx \theta$ 近似,得到简谐振动,其周期 $T_0 = 2\pi\sqrt{L/g}$ 与振幅无关。这种等时性正是伽利略当年巧妙利用的“奇迹”。
$$T(\theta_0) = \frac{4}{\omega_0}\,K\!\bigl(\sin(\theta_0/2)\bigr), \qquad \omega_0 = \sqrt{g/L}.$$
| |
为何重要? 单摆是最简单的非平凡保守型非线性系统,其相图已囊括第 7–8 章的所有核心概念:稳定与不稳定平衡点、分界线、周期-能量关系、可积性。从分子振动、约瑟夫森结到等离子体波,几乎所有其他振荡系统都沿用了这一骨架。
RLC 电路 —— 同一方程,换作铜线实现#

这与机械系统中的质量-弹簧-阻尼模型 $m\ddot x + c\dot x + kx = F(t)$ 形式完全相同,因此我们对阻尼比和固有频率的所有直觉均可直接迁移。
$$H(s) = \frac{1/L}{s^2 + (R/L)\,s + 1/(LC)},$$其阶跃响应同样分为三种情形(见第 16 章 ):欠阻尼、临界阻尼与过阻尼。

值得注意的是,无阻尼振子在共振频率下受迫振动时,振幅会随时间线性增长。1940 年 Tacoma Narrows 大桥的倒塌正是这一现象的历史注脚(详见第 4 节 )。
行星轨道 —— 牛顿与开普勒的交汇#
$$\ddot{\mathbf r} \;=\; -\frac{GM\,\mathbf r}{|\mathbf r|^3}.$$该系统存在两个守恒量:总能量 $E = \tfrac12|\mathbf v|^2 - GM/|\mathbf r|$ 与角动量 $\mathbf L = \mathbf r \times \mathbf v$ 。仅凭这两个守恒量,即可推导出开普勒三大定律,而无需显式求解 ODE。
| |

Bertrand 定理 是一个令人惊叹的数学事实:在所有球对称势场中,仅有两种($\propto 1/r$ 和 $\propto r^2$ )能使任意束缚轨道闭合。这正是太阳系能拥有稳定、闭合行星轨道的根本原因——数学先行,天文验证。
结构振动 —— 楼宇、桥梁与调谐质量阻尼器#
$$ M\ddot{\mathbf x} + C\dot{\mathbf x} + K\mathbf x = \mathbf F(t), \qquad M = \begin{pmatrix} m_1 & 0 \\ 0 & m_2 \end{pmatrix}, \; K = \begin{pmatrix} k_1+k_2 & -k_2 \\ -k_2 & k_2 \end{pmatrix}. $$模态分析: 求解广义特征值问题 $K\,\boldsymbol\phi = \omega^2 M\,\boldsymbol\phi$ ,可得固有频率 $\omega_i$ 与模态形状 $\boldsymbol\phi_i$ 。将位移展开为 $\mathbf x = \sum_i q_i(t)\,\boldsymbol\phi_i$ ,原耦合系统即被解耦为 $n$ 个独立的单自由度振子——多自由度问题由此简化为多个标量问题。

这一模式具有普适性:无论是小提琴弦、飞机机翼、涡轮叶片还是千禧桥,处理流程始终如一:构建 $M, C, K$ → 求解特征问题 → 模态解耦 → 在必要处添加阻尼。
流体力学 —— 从稳态管流到涡脱落#
稳态管流(Poiseuille 流动)#
$$\frac{1}{r}\frac{d}{dr}\!\Bigl(r\,\frac{du}{dr}\Bigr) = -\frac{1}{\mu}\frac{dp}{dz},$$边界条件为管壁无滑移 $u(R) = 0$ 且轴心速度有限。其解为抛物线速度剖面 $u(r) = u_{\max}(1 - r^2/R^2)$ ,体积流量为 $Q = \pi R^4 \Delta p / (8\mu L)$ ,即 Hagen-Poiseuille 定律。流量对半径的四次方依赖解释了为何动脉扩张能显著降低血压:半径加倍,流量提升 16 倍。
雷诺数与层流向湍流的转捩#
无量纲雷诺数 $\mathrm{Re} = \rho U L / \mu$ 表征惯性力与粘性力之比。当 $\mathrm{Re} \lesssim 2300$ 时,流动为层流,$Q \propto \Delta p$ 成立;超过此阈值,湍流涡旋耗散能量,相同压差下流量反而减少。
涡脱落(Strouhal 数)#
钝体绕流后方会交替脱落旋涡,其脱落频率 $f$ 满足 Strouhal 数 $\mathrm{St} = f D / U$ 在较宽雷诺数范围内近似恒定(约 0.21)。一旦该频率与结构某阶模态匹配,便会引发类似 Tacoma 大桥的共振。
小球沉降(Stokes 阻力)#
$$m\dot v = (\rho_p - \rho_f) V g - 6\pi\mu R\,v,$$这是一个一阶线性 ODE,终端速度为 $v_t = (\rho_p - \rho_f) V g / (6\pi\mu R)$ ,时间常数 $\tau = m/(6\pi\mu R)$ 。

一个具体算例:单摆方程的能量守恒数值检验#
$$E(\theta, \omega) = \tfrac{1}{2} \omega^2 + (g/L)(1 - \cos\theta).$$取 $g = 9.81$ m/s²,$L = 1$ m,$\omega_0^2 = g/L = 9.81$ rad²/s²。初值 $\theta_0 = 1.5$ rad(约 86°,已远离小角度区),$\omega_0 = 0$ ,则 $E_0 = 0 + 9.81 \cdot (1 - \cos 1.5) = 9.81 \cdot 0.9293 = 9.116$ J/kg。
我用三种数值方法各跑 100 个时间单位,比较能量漂移:
| 方法 | 步长 | $E$ 漂移($t = 100$ ) | 物理解释 |
|---|---|---|---|
| 显式 Euler | $0.01$ | $+18.2\%$ | 注入能量,振幅持续放大,最终轨迹翻越分界线变成翻转 |
| RK4 | $0.01$ | $-0.04\%$ | 高阶方法吃误差,但仍是耗散性的,长期会衰减 |
| Symplectic Euler | $0.01$ | $\pm 0.5\%$ 振荡 | 能量在精确值附近振荡,无累积漂移 |
| Verlet(leapfrog) | $0.01$ | $\pm 0.05\%$ 振荡 | 二阶辛方法,振荡更小 |
最大角度对比:从 $\theta_0 = 1.5$ 出发,理论上轨迹应该恒在 $|\theta| \le 1.5$ 内振荡。RK4 在 $t = 100$ 时最大角度是 $1.4992$ (轻微衰减),Verlet 是 $1.5001$ (误差在第四位),Euler 是 $1.876$ ——已经膨胀了 25%,再跑久一点就会翻越 $\theta = \pi$ 进入旋转模式。
周期估算。完整椭圆积分给出 $T = 4 K(\sin(0.75)) / \omega_0$ 。$\sin(0.75) = 0.6816$ ,查表 $K(0.6816) \approx 1.879$ ,所以 $T = 4 \cdot 1.879 / 3.132 = 2.401$ s。线性近似 $T_0 = 2\pi / \omega_0 = 2.007$ s——大角度比线性多 19.6%,这正是文中提到的"周期依赖振幅"的具体数字。
能量等高线就是相图轨道。把 $E(\theta, \omega) = E_0$ 在 $(\theta, \omega)$ 平面画出来,得到的就是单摆的相轨迹。$E < 2 \omega_0^2$ 的等高线是闭合曲线(摆动),$E = 2 \omega_0^2$ 是分界线(separatrix),$E > 2 \omega_0^2$ 是开放曲线(翻转)。第七、八章里的相图本质上就是能量函数的等高线图——这把"几何"与"能量"在视觉上统一起来了。
直觉与陷阱:保守系统不能随便用 RK4#
很多工程师默认 “RK4 是黄金标准”——这在耗散系统里基本成立,但在保守系统里完全错误。RK4 的局部截断误差是 $O(h^5)$ ,看上去精度很高,但它不是辛积分器:每一步会偷走(或加上)$O(h^4)$ 的能量。100 万个周期累积下来——比如行星轨道仿真到 10⁹ 年——能量漂移会达到几个百分点,把椭圆轨道变成螺线。
$$ q_{n+1} = q_n + h p_n + \tfrac12 h^2 a(q_n), \quad p_{n+1} = p_n + \tfrac12 h (a(q_n) + a(q_{n+1})). $$它精确保持一个稍稍变形的"影子哈密顿量" $\tilde H$ ,所以真实 $H$ 在 $\tilde H$ 附近振荡而不漂移。这是分子动力学(每步 1 fs,跑 $10^9$ 步)和长期天体力学(NASA JPL 的太阳系积分)的标准选择。
陷阱一:刚性-保守耦合。带强弹簧的多体系统(蛋白质骨架、桥梁的高频模态)既保守又刚性。普通辛方法步长被高频限死,需要 SHAKE/RATTLE 这种带约束的辛方法,或者多时间步法(MTS)。
陷阱二:自适应步长破坏辛性。solve_ivp 默认开自适应步长以满足误差容限。这对耗散系统好,对保守系统是灾难——每次步长变化等价于一次能量"踢"。要么固定步长,要么用专门的可逆自适应方法(Hairer 提出的 reversible step-size control)。
陷阱三:积分轨道经过分界线。$E$ 接近 $2\omega_0^2$ 时,轨道在不动点 $\theta = \pi$ 附近变得任意慢,任何固定步长方法都会失精度。这种情况下需要 Levi-Civita 正则化或 KS 变换。开普勒轨道的高偏心率情形是同一个问题。
应用与反例:从单摆到现代物理#
单摆是经典力学的"细胞",它的数学结构在物理学中无处不在:
- Josephson 结:超导隧道结的电流-相位关系满足 $\ddot\phi + (1/\tau) \dot\phi + \omega_0^2 \sin\phi = I/I_c$ ——形式上和阻尼受迫单摆完全一致。SQUID 磁力计、超导量子比特的设计都基于这个方程。
- 等离子体波:朗缪尔波在大振幅下的非线性方程化简为单摆方程,分界线对应粒子被波"捕获"的临界条件。这是空间物理里"波-粒共振"的数学骨架。
- 混合相变模型:xy 模型(二维磁性自旋)的连续极限是 sine-Gordon 方程 $\partial_{tt}\phi - \partial_{xx}\phi + \sin\phi = 0$ ——空间扩展的单摆链。Kosterlitz-Thouless 相变(2016 诺贝尔物理学奖)就发生在这个方程里。
- 激光锁模:环形激光器在锁模条件下的相位动力学也是单摆型,分界线分隔"锁定"与"漂移"两种工作状态。
反例:单摆方程不是普适的非线性振子。Duffing 振子 $\ddot x + x + \alpha x^3 = 0$ 在大振幅下表现完全不同:周期随振幅减少(硬弹簧),而单摆周期随振幅增加(软回复力)。这两种 sign 决定了不同物理场景:船舶横摇是软(接近翻船时周期变长),蹦床是硬(跳得越用力反弹越快)。
更深的反例是能量在准周期与混沌之间的过渡。给单摆加一个外加驱动 $\ddot\theta + \gamma \dot\theta + \omega_0^2 \sin\theta = F \cos(\omega t)$ ,参数空间里有一片区域同时存在稳定吸引子、奇异吸引子、瞬态混沌——这就是 Moon 在 1980 年代用磁单摆做的著名实验。守恒系统的分界线在弱阻尼下变成"同宿缠结"(homoclinic tangle),混沌正是从这里诞生。这把单摆从"教科书例题"提升为"理解混沌起源的标准范例"——Smale 的马蹄铁映射就是从单摆方程的 Poincaré 截面提炼出来的。
共通的建模范式#
本章所涉各领域均遵循相同的五步建模范式:
- 写出基本定律:针对微元写出牛顿定律、基尔霍夫定律或 Navier-Stokes 方程。
- 简化为 ODE:借助对称性、量纲分析或模态投影。
- 识别平衡点并线性化:求出固有频率与阻尼比。
- 引入激励:考察共振,并决定是否添加阻尼或调整激励频率。
- 数值求解:当非线性效应显著时(如大振幅、湍流或多体耦合)。
掌握这一循环,便能贯通物理学与工程学的广阔领域。
| 领域 | 控制方程 | 关键无量纲数 |
|---|---|---|
| 力学 | $\ddot\theta + (g/L)\sin\theta = 0$ | — |
| 电学 | $L\ddot q + R\dot q + q/C = V(t)$ | $Q = (1/R)\sqrt{L/C}$ |
| 轨道力学 | $\ddot{\mathbf r} = -GM\mathbf r/ | \mathbf r |
| 结构动力学 | $M\ddot x + C\dot x + Kx = F$ | 模态阻尼 $\zeta_i$ |
| 流体(管流) | $\nabla \cdot \boldsymbol\sigma = 0$ → 径向 ODE | Re |
| 流体(尾迹) | —(经验关系) | St $\approx 0.21$ |
带单位的实战例:设计调谐 RLC 带通滤波器#
不含单位的方程属于数学,附带单位的方程才属于工程。现需设计一个中心频率 $f_0 = 1\,\text{kHz}$ 、带宽 $\Delta f = 100\,\text{Hz}$ 的串联 RLC 带通滤波器。
$$ \omega_0 = 2\pi f_0 = 6283\ \text{rad/s},\quad Q = \frac{f_0}{\Delta f} = 10. $$对于方程 $L\ddot q + R\dot q + q/C = V(t)$ ,有 $\omega_0 = 1/\sqrt{LC}$ 且 $Q = \omega_0 L / R$ 。
$$ C = \frac{1}{\omega_0^2 L} = \frac{1}{(6283)^2 \cdot 0.01} \approx 2.53\,\mu\text{F}. $$ $$ R = \frac{\omega_0 L}{Q} = \frac{6283 \cdot 0.01}{10} = 6.28\,\Omega. $$第三步:验证单位一致性: $\omega_0^2 L C = (\text{s}^{-2})(\text{H})(\text{F}) = (\text{s}^{-2})(\text{V}\cdot\text{s/A})(\text{A}\cdot\text{s/V}) = 1$ ,无量纲,正确。
第四步:解读物理意义: $Q = 10$ 意味着断开激励后,振荡幅度约经 $Q/\pi \approx 3.2$ 个周期衰减至 $1/e$ ,即持续约 3.2 ms。对应的阻尼比 $\zeta = 1/(2Q) = 0.05$ ,属明显欠阻尼。
第五步:能量视角: 共振时,电感最大储能 $\tfrac12 L I_{\max}^2$ 与电容最大储能 $\tfrac12 C V_{\max}^2$ 周期性交换,每周期约有 $\pi/Q$ 的能量耗散于电阻。Q 值越高,谐振峰越窄越尖锐。
仅凭四个数值($f_0, \Delta f, L, R$ ),我们就将抽象的二阶 ODE 转化为可实际搭建的电路。
极限情形:小参数导致方程退化#
非线性单摆 $\ddot\theta + (g/\ell)\sin\theta = 0$ 在 $|\theta| \to 0$ 时退化为简谐振子,周期 $2\pi\sqrt{\ell/g}$ 与振幅无关——这是经典的小角度近似。
但在机器学习时代,更值得关注的是反向情形:当参数趋于 0 或无穷时,方程虽在形式上简化,数值求解却往往变得更困难。
情形一:高雷诺数极限: Navier-Stokes 方程中粘性系数 $u \to 0$ 时,形式上退化为 Euler 方程,但几乎所有光滑解都会失稳为湍流。数值上,小 $u$ 导致网格 Péclet 数剧增,必须改用迎风格式或激波捕捉方法。
情形二:硬刚度极限: 弹簧常数 $k \to \infty$
时,质量块被约束于某一流形上。直接积分要求时间步长 $h \sim 1/\sqrt{k}$
,计算成本难以承受。物理上应改写为带 Lagrange 乘子的约束 ODE/DAE。scipy.integrate.solve_ivp 中的 LSODA 或 BDF 方法可处理中等刚性问题;更高刚性则需 Hairer-Wanner 类的隐式辛算法。
情形三:低马赫数极限: 可压缩流在 $M \to 0$ 时,声波与对流的时间尺度相差 $1/M$ 倍。显式格式的 CFL 条件受声速主导,99% 的计算资源被浪费。工业 CFD 中广泛采用低马赫预条件技术来规避此问题。
关键教训:参数趋于零通常不会简化数值计算,反而可能使问题更加棘手。这正是 PDE-ML 领域中 Neural Operator 方法试图绕开的核心矛盾。
数据驱动建模:SINDy 与 Koopman 方法#
第 6 节 指出,同一 ODE 框架可描述多种物理现象。但在真实工程中,面对新系统,我们往往无法推导出解析方程,此时需从数据反推模型。
$$ \dot x = \Theta(x)\,\xi,\quad \min \|\dot x - \Theta(x)\xi\|_2^2 + \lambda \|\xi\|_1. $$$\xi$
的大部分分量归零,剩余非零项即构成方程结构。使用 pysindy 对 Lorenz 系统的 1000 个采样点进行处理,只要函数库包含正确项,即可准确恢复右侧三项及其系数 $\sigma, \rho, \beta$
。
Koopman 算子方法: 将非线性映射 $x_{t+1} = F(x_t)$ 提升至观测函数空间上的线性算子 $\mathcal{K}\,g = g \circ F$ 。结合动态模态分解(DMD),可直接提取主导振荡模态与衰减率。Schmid 的 DMD with Control 已成功应用于卡门涡街的 PIV 实验数据。
如何选择?
- 数据干净、变量物理意义明确、目标是获得解析方程 → 选 SINDy。
- 数据含噪、关注预测或控制、不关心方程形式 → 选 Koopman/DMD。
- 两者兼顾 → 在 Koopman 不变子空间内应用 SINDy(Otto & Rowley, 2019)。
总结#
微分方程是物理学的通用语言。前十六章我们构建了这套语言的语法,而本章则通过五个典范模型——单摆、RLC 电路、开普勒轨道、多自由度建筑、管流——展示了如何从本科物理迈向专业工程实践。这里并未引入新数学,关键在于识别系统结构并选用恰当工具。
下一章作为系列终章,将跳出经典范畴,探讨 Neural ODE、随机与分数阶微分方程,以及 ODE 理论与现代机器学习的深层联系。
下一步#
下一章是全系列收官——前沿专题与总结。我们简要触及随机微分方程(SDE)、延迟微分方程(DDE)、分数阶微积分、神经 ODE 等当代研究方向,并回顾整个 ODE 旅程的关键脉络。
工程实践片段:从单摆到现代机器人#
ODE 在工程里的应用远不止教科书例题。说几个我自己接触过或读过的具体场景。
第一个是腿足机器人的步态控制。波士顿动力的 Atlas 在跑步时,每条腿可以建模成倒立摆——质心在脚踝上方,是一个鞍点。但人类和机器人通过周期性"踏步"把这个鞍点变成稳定极限环:每一步落地都是一次"重启",用脚的位置主动选择下一阶段的吸引域。这套理论叫 capture point control,本质就是非线性系统稳定性 + 离散事件控制的结合。Daniel Koditschek 在九十年代提出的 SLIP 模型(弹簧加载倒立摆)现在已经是腿足机器人的标准建模框架。
第二个是无人机的姿态估计。陀螺仪+加速度计融合用的扩展卡尔曼滤波器(EKF),核心是一个线性化 ODE:状态向量是四元数(姿态)和角速度,过程噪声驱动协方差矩阵的演化方程 $\dot P = AP + PA^\top + Q$ ——这是 Lyapunov 方程的连续时间版本。估计器稳定性等价于这个 Lyapunov 方程的解 $P$ 正定有界——直接套用第七章的理论。
第三个是化工过程的优化控制。蒸馏塔的几十块塔板每块写一个质量平衡和能量平衡方程,整体是个几百维的非线性 ODE。工业上用模型预测控制(MPC)的标准做法是在工作点线性化得到 $\dot{\mathbf{x}} = A\mathbf{x} + B\mathbf{u}$ ,再做 LQR 设计——这一步几乎完全建立在第六、七、十六章的内容上。
第四个是高频金融。即便股价本身是随机过程,但波动率、利率期限结构这些隐变量满足确定性 ODE(Vasicek、CIR 模型),价格 = 隐变量的某个非线性变换。Black-Scholes 方程的解析解就是一阶线性 ODE 的应用。
这四个场景跨越了机器人、航空、化工、金融,共享的数学骨架完全相同:写出 ODE → 线性化 → 看特征值 → 设计反馈或滤波器。这是我对这门课的核心定位——它不是数学专业的炫技,而是几乎所有定量学科的元语言。
最后一句话:单摆方程从伽利略的等时性观测出发,跨过几百年来到今天,已经渗透进 Josephson 结、神经元放电、激光锁模、磁单极相变。这种"古老方程的现代生命力"是我每次重读 Strogatz 的 Nonlinear Dynamics and Chaos 都会被打动的地方。
参考文献#
- Kreyszig, Advanced Engineering Mathematics, Wiley (2011).
- Taylor, Classical Mechanics, University Science Books (2005).
- Goldstein, Poole & Safko, Classical Mechanics, Pearson (2002).
- Den Hartog, Mechanical Vibrations, Dover (1985).
- Acheson, Elementary Fluid Dynamics, Oxford (1990).
ODE 入门精讲 18 篇
- 01 常微分方程(一):微分方程的起源与直觉
- 02 常微分方程(二):一阶微分方程的求解方法
- 03 常微分方程(三):高阶线性微分方程
- 04 常微分方程(四):拉普拉斯变换
- 05 常微分方程(五):级数解法与特殊函数
- 06 常微分方程(六):线性微分方程组
- 07 常微分方程(七):稳定性理论
- 08 常微分方程(八):非线性系统与相图
- 09 常微分方程(九):混沌理论与洛伦兹系统
- 10 常微分方程(十):分岔理论
- 11 常微分方程(十一):数值方法
- 12 常微分方程(十二):边值问题
- 13 常微分方程(十三):偏微分方程引论
- 14 常微分方程(十四):传染病模型与流行病学
- 15 常微分方程(十五):种群动力学
- 16 常微分方程(十六):控制理论基础
- 17 常微分方程(十七):物理与工程应用 当前
- 18 常微分方程(十八):前沿专题与系列总结