数值 IV · 数值积分与 ODE 数值解
收官页处理两个"解析解常常不存在"的战场:定积分(原函数写不出是常态——数分 III 的坦白)与常微分方程(能解析解的是博物馆展品——ODE 页的坦白)。ODE 数值解一节有一条你已经走过的暗线:扩散模型的采样器下拉框(euler/heun/……)就是本节的方法名录。
1. 数值积分(求积公式)
思想:\(\int_a^b f \approx \sum w_i f(x_i)\)——插值型求积 = 对被积函数插值再精确积分(上一页的直接应用)。代数精度 = 能精确积分的多项式最高次数(衡量公式好坏的标尺)。
两个基本公式与复合版(\(h\) = 小区间宽):
| 公式 | 形式 | 代数精度 | 复合误差阶 |
|---|---|---|---|
| 梯形 | \(\frac{h}{2}(f_0 + f_1)\) | 1 | \(O(h^2)\) |
| Simpson | \(\frac{h}{6}(f_0 + 4f_{1/2} + f_1)\) | 3(白赚一阶:对称抵消) | \(O(h^4)\) |
复合 Simpson 是手算与轻量代码的性价比之王(步长减半误差除 16)。
Romberg 加速(Richardson 外推):已知梯形误差 \(\approx c h^2 + O(h^4)\),用两个步长的结果解出并消去 \(c h^2\) 项:\(T^* = \frac{4T(h/2) - T(h)}{3}\)(恰得 Simpson!)——递推下去逐阶消误差。"知道误差的形状,就能把它外推掉"——这个思想通用(数值微分、ODE 步长控制同款)。
Gauss 求积:节点也拿来优化——\(n\) 个节点达到 \(2n-1\) 次代数精度(理论最优),节点 = Legendre 正交多项式的零点。高精度少节点的场合(谱方法、物理仿真)的标配;知其结构即可。
高维的诅咒与出路:网格法代价 \(O(N^d)\) 随维数指数爆炸 ⇒ 高维积分交给 Monte Carlo(误差 \(O(1/\sqrt n)\) 与维数无关——概率 V 的 CLT 误差条在此成为唯一可行方案;贝叶斯计算、金融定价、图形渲染全靠它)。
2. ODE 数值解:初值问题 \(y' = f(t, y),\ y(t_0) = y_0\)
Euler 法(切线小步走,数分 II 线性化第三次上岗):
局部截断误差 \(O(h^2)\)、整体误差 \(O(h)\)(一阶)——粗但结构是一切方法的母体。
改进思路:在一步内多测几次斜率再加权——Runge–Kutta 家族:
- 改进 Euler / Heun(二阶):先 Euler 预测终点,再用两端斜率平均校正——\(O(h^2)\),每步 2 次 \(f\) 求值;
- 经典 RK4(四阶):四次斜率采样 \(k_1..k_4\) 加权 \(\frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4)\)——\(O(h^4)\),"精度性价比"的历史标杆,手算/教学/中等精度实务的默认选择;
- 自适应步长(RK45 等):两个阶数的差估计误差,动态调 \(h\)——
scipy.solve_ivp的默认内核。
稳定性与刚性(本节最重要的观念):对试验方程 \(y' = \lambda y\ (\lambda < 0\),真解衰减),显式 Euler 要求 \(|1 + h\lambda| < 1\) 即 \(h < \frac{2}{|\lambda|}\)——步长有硬上限,超了数值解爆炸(优化 II 学习率上限 \(2/L\) 是同一个不等式!)。系统里快慢时间尺度并存(刚性方程)时,快模态的步长限制拖死整个计算 ⇒ 换隐式方法:隐式 Euler \(y_{n+1} = y_n + h f(t_{n+1}, y_{n+1})\)(每步解方程——上两页的求根/线性方程组在此当零件),无条件稳定(A-稳定),步长只受精度不受稳定性限制。显式便宜怕刚性,隐式贵但吃刚性——选型的全部纲领。
🔗 AI 衔接(收网):comfy 课 03 讲说"采样器 = 概率流 ODE 的数值积分器"——现在你有了全部零件:euler 就是本节 Euler 法、heun 就是改进 Euler、dpm++ 是利用方程半线性结构的定制积分器、"20–30 步够用"是高阶方法误差阶的直接推论、karras 日程是自适应步长思想的离线版。Neural ODE 则反过来把 RK 求解器当网络层反传。数学的复利在此结算。
3. 典型例题
例 1(Simpson 手算) \(\int_0^1 e^{-x^2}dx\)(无初等原函数——数分 III 的名例):\(h = 0.5\) 复合 Simpson:\(\frac{0.25}{3}[f(0) + 4f(0.25) + 2f(0.5) + 4f(0.75) + f(1)] \approx 0.74683\)(真值 0.746824——五个点四位准,\(O(h^4)\) 的威力)。
例 2(Euler vs RK4) \(y' = y,\ y(0) = 1\),求 \(y(1) = e\),\(h = 0.25\):Euler 给 \((1.25)^4 = 2.441\)(差 10%);RK4 给 \(2.7183\)(差 \(<10^{-4}\))。同样 4 步,四个数量级的差距——阶数就是生产力。
例 3(稳定性红线) \(y' = -100y,\ y(0)=1\):显式 Euler 要求 \(h < 0.02\),取 \(h = 0.03\) 则 \(y_n = (-2)^n\) 震荡爆炸(真解 \(e^{-100t}\) 温顺趋零);隐式 Euler \(y_{n+1} = \frac{y_n}{1 + 100h}\) 任意步长单调衰减 ✓。数值爆炸 ≠ 方程有问题,先查步长与稳定域。\(\blacksquare\)
数值分析四页完工——误差、方程组、逼近、积分与 ODE,"让数学在机器上落地"的四大件齐了。应用计算线只剩数学建模一门占位。