计算物理 · 课程汇报

从对流方程
到可信的数值解

以 Lorenz 系统为例

σ = 10ρ = 28β = 8/3

x₀x₀ + 10⁻⁵

t = 0.0|Δ| = 1.0e−5

目录

一段推导,四项检验

开场 · 现场演示

同一个方程,同一个初值,同一个求解器

参考解 rtol = 1e−13 所选 rtol

1e−6
—距离首次超过 1 的时刻
—求解器走的步数(t ∈ [0, 45])

唯一的旋钮是相对容差 rtol。前一段贴合,之后各自脱钩,差到吸引子的尺度。

绪论

从 Boussinesq 方程到时间积分

绪论 · 物理图景

Rayleigh–Bénard 对流

冷板 · 温度 T₀ 热板 · 温度 T₀ + ΔT 热的上升 冷的下沉 热的上升 H

底下的流体受热变轻想上浮,上面的冷流体想下沉。粘性和热扩散会抵抗这种翻动。

两股力量之比叫 Rayleigh 数:

$$\mathrm{Ra} = \frac{g\,\alpha\,\Delta T\,H^3}{\nu\,\kappa} = \frac{\text{浮力}}{\text{粘性}\times\text{热扩散}}$$
  • Ra 小于临界值 Rac:流体静止,热量只靠传导
  • Ra 大于 Rac:静止失稳,长出一排对流卷
  • 另一个无量纲数 Pr = ν/κ:动量与热量各自扩散的快慢之比

Saltzman(1962)、Lorenz(1963)只看一个方向上的二维卷。

绪论 · 出发点

Boussinesq 方程与流函数形式

Boussinesq 近似:密度只在浮力项里随温度变,其余地方当常数。

$$\begin{aligned} &\nabla\cdot\mathbf u = 0 &&\text{质量}\\ &\partial_t\mathbf u + (\mathbf u\cdot\nabla)\mathbf u = -\tfrac{1}{\rho_0}\nabla p + \nu\nabla^2\mathbf u + g\alpha T\,\hat{\mathbf z} &&\text{动量}\\ &\partial_t T + (\mathbf u\cdot\nabla)T = \kappa\nabla^2 T &&\text{热量} \end{aligned}$$
  • 只看 X–Z 平面里的二维卷:令 \(u = -\partial_Z\psi,\ w = \partial_X\psi\),质量守恒自动满足
  • 对动量方程取旋度,压力 p 消掉
  • 温度拆成两份:\(T = \underbrace{T_0 + \Delta T\,(1 - Z/H)}_{\text{静止时的传导直线}} + \theta\)

剩下两个未知场:流函数 ψ(X, Z, t) 管流动,θ(X, Z, t) 是温度偏离传导直线的那部分。流体静止时 θ ≡ 0。

$$\partial_t\nabla^2\psi = \underbrace{-J(\psi,\nabla^2\psi)}_{\text{平流}} + \underbrace{\nu\nabla^4\psi}_{\text{粘性}} + \underbrace{g\alpha\,\partial_X\theta}_{\text{浮力}}$$ $$\partial_t\theta = \underbrace{-J(\psi,\theta)}_{\text{平流}} + \underbrace{\tfrac{\Delta T}{H}\,\partial_X\psi}_{\text{搬运背景温度}} + \underbrace{\kappa\nabla^2\theta}_{\text{热扩散}}$$

\(J(a,b) = \partial_X a\,\partial_Z b - \partial_Z a\,\partial_X b\),就是 \(\mathbf u\cdot\nabla b\)。这是 Lorenz 1963 的式 (17)–(18)。未知量是两个函数,所以是无穷维的。

绪论 · 怎么放进计算机

线方法:先空间离散,再时间积分

偏微分方程第 1 步:空间离散常微分方程组第 2 步:时间推进
一般形式未知量是场,无穷维选基函数或网格,只留 N 个数\(\dot{\mathbf u} = \mathbf f(\mathbf u),\ \mathbf u\in\mathbb R^N\)\(\mathbf u_{n+1} = \Phi_h(\mathbf u_n)\)
声场 FDTD波动方程 \(p_{tt} = c^2\nabla^2 p\)差分网格,N 动辄上百万线性蛙跳格式
Lorenz二维 Boussinesq 对流3 个 Fourier 模态,N = 3非线性,3 行RK4(原理)· DOP853(实算)

Lorenz 是线方法(method of lines)最小的例子:N = 3,小到每一步都能看清。
后面四段都落在第 2 步上:每一步的误差会怎样累积。

绪论 · 第 1 步 空间离散

三模 Fourier 截断:x、y、z 是模态振幅

三个模态各自的空间形状,以及三者在 C+ 处合成的定常对流卷
lorenz63 figure fig18

把 ψ、θ 按满足边界条件的正弦展开(谱方法),Lorenz 只留三项:

$$\psi \propto x\,\sin\tfrac{\pi a X}{H}\sin\tfrac{\pi Z}{H}$$ $$\theta \propto y\,\cos\tfrac{\pi a X}{H}\sin\tfrac{\pi Z}{H} - z\,\sin\tfrac{2\pi Z}{H}$$
  • x:卷翻滚得多快,正负是转向
  • y:上升流与下沉流之间的温差
  • z:平均温度剖面弯离直线的程度,也就是对流额外运走的热:Nu = 1 + 2z/ρ

绪论 · 第 1 步 空间离散

Galerkin 投影:截断丢掉了什么

Galerkin 做法:把三项展开代入两条 PDE,乘以每个模态、在一个卷上积分,每个模态得到一条 ODE。线性项各回各的模态,要算的只有平流 J。取 H = 1,k = πa:

平流里相乘的两样乘出来的空间花样去向
卷 × 卷 \(J(\psi,\nabla^2\psi)\)0:单个模态的 \(\nabla^2\psi \propto \psi\)\(\dot x\) 方程是线性的
卷 x × 温差 y\(\tfrac{k\pi}{2}\sin 2\pi Z\),恰好是 z 的花样\(\dot z\) 里的 \(+xy\)
卷 x × 剖面 z\(k\pi\cos kX\,(\sin 3\pi Z - \sin\pi Z)\)\(\sin\pi Z\) 回到 y:\(\dot y\) 里的 \(-xz\)
\(\sin 3\pi Z\) 不在三个模态里,扔掉

截断就是扔掉 sin 3πZ 这一类高阶项。z 必须留:它是 x·y 直接生出来的。不留 z,方程只剩线性部分,ρ > 1 时振幅指数增长、停不下来。

绪论 · 得到的 ODE

Lorenz 方程逐项的物理意义

方程项物理过程
\(\dot x = \sigma(y - x)\)\(+\sigma y\)浮力:热的一侧轻、冷的一侧重,温差推着卷转
\(-\sigma x\)粘性给翻滚刹车
\(\dot y = \rho x - y - xz\)\(+\rho x\)卷把底部热流体搬上去、顶部冷流体搬下来,制造水平温差
\(-y\)热扩散把水平温差抹平
\(-xz\)剖面中段已被拉平,同样的翻滚搬来的温差打了折扣
\(\dot z = xy - \beta z\)\(+xy\)热的上升、冷的下沉,净效果是向上运热,把剖面拉弯
\(-\beta z\)热扩散把剖面拉回直线

非线性只有标色的两项,都来自流体搬运温度(平流 u·∇θ)。时间以热扩散为单位,Lorenz 的 1 个时间单位约等于 H²/κ 的 1/15。

绪论 · 参数

经典参数 σ、β、ρ 的来由

σ = 10Prandtl 数 ν/κ
β = 8/3卷的几何:4/(1+a²)
ρ = 28Ra / Rac:加热是起对流的几倍
  • β = 8/3:宽度不同的卷各有各的失稳阈值 \(\mathrm{Ra}_c(a) = \pi^4(1+a^2)^3/a^2\),在 a² = 1/2 最低(27π⁴/4 ≈ 657.5)。取最先失稳的那种卷,β = 4/(1 + ½) = 8/3,卷宽 √2 H。
  • σ = 10:和水同一量级(室温约 7)。它还得大于 β + 1 = 11/3,否则 C± 永远不会失稳,就没有后面的混沌。
  • ρ = 28:Ra 是临界值的 28 倍。ρ 超过 \(\rho_H = \sigma(\sigma+\beta+3)/(\sigma-\beta-1) = 470/19 \approx 24.74\) 时 C± 失稳;Lorenz 取了一个稍高于它的整数。

三个数都出自 Lorenz 1963 原文,此后的文献几乎都沿用,后面所有实验也都用这一组。ρ_H 在 ① 里会再出现。

绪论 · 模型的边界

三模截断的适用范围

局限三模截断只在 ρ 略大于 1 时有渐近依据。ρ = 28 时被丢掉的高阶模态早已被激发,它是一个自洽的数学对象,不再是流体模型。

后面所有结论都关于这个数学对象,不涉及流体或天气的主张。

但有几个物理系统,化简后恰好就是这组方程:

  • Malkus 水车:x 是转速,y、z 是桶中水量分布的一阶 Fourier 系数
  • 热虹吸环:竖直圆环管里的对流,x 是环流速度
  • 单模激光(Haken 1975):x 是光场,y 是极化,z 是粒子数反转

绪论 · 第 2 步 时间推进

时间积分:Euler、RK4 与自适应步长

def f(u):                # 就是那三行方程
    x, y, z = u
    return np.array([σ*(y-x), x*(ρ-z) - y, x*y - β*z])

u = u0                   # 显式 Euler:一阶
for n in range(N):
    u = u + h * f(u)

def rk4_step(u, h):      # 经典 RK4:四阶
    k1 = f(u)
    k2 = f(u + h/2 * k1)
    k3 = f(u + h/2 * k2)
    k4 = f(u + h * k3)
    return u + h/6 * (k1 + 2*k2 + 2*k3 + k4)

仓库里的 integrate.rk4_step 就是这几行(多一个时间参数)。后面的计算和现场演示都用 DOP853,只调 rtol。

积分器步长怎么定
RK4(原理)固定 h;h 减半,误差约缩小 16 倍
DOP853(实算)8 阶;每步估计局部误差,按 rtol 自动调 h
DOP853,rtol = 1e-13当作参考解
备用:RK4、RK45 与 DOP853 →

第 ① 部分

从不动点到 Lyapunov 指数

① 从不动点到 Lyapunov 指数 · 现场演示

约化 Rayleigh 数 ρ = Ra / Rac

加热强度 ρ = Ra / Rac0.5
1
开始对流
24.74
定常卷失稳
下一页的四个 ρ

① 从不动点到 Lyapunov 指数

令导数为零:静止导热与一对定常卷

ρ=0.5, 10, 24.5, 28 四格相图
lorenz63 figure fig13
$$y = x,\qquad z = \frac{x^2}{\beta},\qquad x(\rho-1-z) = 0$$
  • 原点 静止导热
  • C± 定常卷:\(x = y = \pm\sqrt{\beta(\rho-1)},\ z = \rho-1\)
    ρ = 28:(±8.49, ±8.49, 27)

原点附近扔掉二阶小量 xz、xy:

$$\lambda = -\beta,\qquad \lambda^2 + (\sigma+1)\lambda + \sigma(1-\rho) = 0$$

① 从不动点到 Lyapunov 指数

ρH = 24.74:一对复根穿过虚轴,定常卷站不住

z 的局部极大值随 ρ 的分岔图
lorenz63 figure fig03

在 C± 旁展开到一阶:\(\lambda^3 + a_2\lambda^2 + a_1\lambda + a_0 = 0\)

a₂ = σ+β+1,a₁ = β(σ+ρ),a₀ = 2σβ(ρ−1),全为正

没有正实根;要失稳,只能一对复根从 ±iω 穿过。代 λ = iω:

$$\omega^2 = a_1,\qquad a_2\,\omega^2 = a_0$$ $$\rho_H = \frac{\sigma(\sigma+\beta+3)}{\sigma-\beta-1} = \frac{470}{19} = 24.74$$

① 从不动点到 Lyapunov 指数

三维流 → 二维截面 → 一维映射

z=27 截面上的穿越点、四段回归映射与蛛网
lorenz63 figure fig14
3992T = 3000 内上行穿越 z = 27 的次数
56.7%穿越后留在同一叶
13.25|x| 门槛:内侧留叶,外侧换叶

一个点是一步。越过门槛越少,落到对面越远,于是能连换好几次。

① 从不动点到 Lyapunov 指数

在任意一点展开:Jacobian 逐行求偏导

$$\frac{\mathrm d}{\mathrm dt}\delta u = J(u)\,\delta u,\qquad J_{ij} = \frac{\partial f_i}{\partial u_j}$$ $$\begin{aligned}\dot x &= \sigma(y-x)\\ \dot y &= x(\rho-z) - y\\ \dot z &= xy - \beta z\end{aligned} \quad\Longrightarrow\quad J = \begin{pmatrix} -\sigma & \sigma & 0 \\ \rho - z & -1 & -x \\ y & x & -\beta \end{pmatrix}$$

线性项求导得常数;xz、xy 求导留下 x、y、z,J 随轨道上的点变。

  • 不动点上 J 是常数,看特征值:不动点与 Hopf 两页已经用过
  • 沿轨道 J 每一点都不同,没有固定的本征方向:局部指数、边算边正交化
  • 对角线 tr J = −(σ+1+β),与点无关:三个指数之和

① 从不动点到 Lyapunov 指数

局部 Lyapunov 指数:此刻、这个方向上拉得多快

吸引子上按窗口 0.5 的有限时间 λ₁ 着色,以及其分布
lorenz63 figure fig12(窗口 τ = 0.5)
$$\frac{\mathrm d}{\mathrm dt}\ln|\delta u| = e\cdot J(u)\,e,\qquad e = \frac{\delta u}{|\delta u|}$$

由两样东西决定:轨道走到哪(J),扰动此刻指向哪(e)。

0.907时间平均 = λ₁
4.25标准差
51%时刻在缩
  • 不是 J 的特征值:最大实部平均 1.65
  • 窗口 τ 上平均 = 有限时间指数:τ = 0.5 标准差 2.60;τ → ∞ 收拢到 λ₁

① 从不动点到 Lyapunov 指数

Lyapunov 指数:定义与 Benettin 公式

Benettin 算法三个 Lyapunov 指数的收敛曲线
lorenz63 figure fig08

定义(M′ = JM,M(0) = I):

$$\lambda = \lim_{t\to\infty}\frac1t\ln\frac{|M(t)\,\delta u_0|}{|\delta u_0|}$$

计算:

$$\begin{aligned}\lambda_k &= \lim_{n\to\infty}\frac{1}{n\,\Delta t}\sum_{j=1}^{n}\ln\bigl|R^{(j)}_{kk}\bigr| \\ &= \bigl\langle\, q_k\cdot J\,q_k \,\bigr\rangle_t\end{aligned}$$

线段按 eλ₁t,面积按 e(λ₁+λ₂)t,体积按 e(λ₁+λ₂+λ₃)t。

① 从不动点到 Lyapunov 指数

J 每点在变:Lyapunov 谱要边算边 QR 正交化

运送的正交标架、不正交化时切向量夹角塌缩、log 范数斜率对照
lorenz63 figure fig16
3×10⁻¹⁴不做 QR,t = 30 时夹角(弧度),三个都只量出 λ₁
0.92 / −0.003 / −14.58每段做 QR、累加 ln|Rkk|,三个分开

① 从不动点到 Lyapunov 指数

迹在正交换基下不变:三个指数之和 = tr J

Lorenz 与谐振子的 ln det M(t) 对比
lorenz63 figure fig05
$$\sum_{k=1}^{3} q_k\cdot J\,q_k = \operatorname{tr}(Q^{\mathsf T} J Q) = \operatorname{tr} J$$

Lorenz 的对角线 −σ、−1、−β 里没有变量:
tr J = −(σ+1+β) = −13.667

三个局部指数之和每一瞬间都是 −13.667。λ₂ = 0,于是 λ₃ = −13.67 − 0.90 = −14.57。

2.2e−9Σλᵢ − tr J
−13.6675ln det M 斜率

第 ② 部分

精度只换来对数时间

② 精度只换来对数时间 · 现场演示

从相差 ε 的两个初值出发

x₀ x₀ + ε t = 0.0|Δ| = 1e−6

10⁻⁶

换一个 ε 再跑一次,比较两次分开的时刻。

② 精度只换来对数时间

误差按 λ₁ 增长,到吸引子尺度饱和

16 个吸引子点各 4 个扰动的分离度随时间增长
lorenz63 figure fig07
$$|\Delta(t)| \approx \delta\,e^{\lambda_1 t}\quad\Rightarrow\quad T = \frac{\ln(1/\delta)}{\lambda_1}$$

吸引子上 16 个点 × 4 个随机方向,扰动 δ = 1e−9,全部用参考精度积分。

0.8750t ∈ [5, 22] 的拟合斜率,与第 ① 部分 QR 算出的 0.9038 相差 3.2%,两条路径没有共用代码
2.55δ 每缩小 10 倍,T 多 ln 10 / λ₁
40.76双精度预报极限 ln(10¹⁶) / λ₁

② 精度只换来对数时间 · 核心证据

可分辨时间对 ln(1/rtol) 是一条直线

T_div 对 ln(1/rtol) 的直线拟合
lorenz63 figure fig09
rtolTdiv
1e−45.69
1e−610.62
1e−816.11
1e−1020.71
1e−1226.88
容差收紧 8 个数量级,只多买到 21.2 个时间单位(理论 8 ln 10 / λ₁ = 20.4)。

② 精度只换来对数时间

双精度下的预报极限

t > 41 时,
算出的已不是那个初值的轨道。

从 rtol = 1e−4 收紧到 1e−12,DOP853 的步数约多 10 倍,预报时间从 5.7 涨到 26.9。再要 20 个时间单位需要再收紧 8 个数量级,而双精度已经到头了。

第 ③ 部分

单条轨道不可信,统计量可信

③ 统计量不随 rtol 变

影随:数值轨道跟着另一条真解

直觉:局部误差很小的数值轨道,虽然不是你要的那条真解,可能紧跟着另一条初值稍有不同的真解。

那么画出来的蝴蝶是真的蝴蝶,只是不是"你那只"。

对一致双曲系统,这是定理(影随引理)。

局限Lorenz 吸引子含有原点这个不动点,不是一致双曲的,严格的影随引理不适用。Tucker 2002 用计算机辅助证明它是奇异双曲吸引子,数值影随的结果多是有限时间、逐案验证的。

影随只提示方向。真正的辩护必须可测量。

③ 统计量不随 rtol 变 · 中心实验

同一组数据:左边报废,右边完好

三次计算的 x(t) 与 Lorenz 映射
lorenz63 figure fig10
10.5 / 18.3rtol = 1e−6 与 1e−9 的脱钩时刻
33.3rtol = 1e−13 也会脱钩(只差 atol)
8.6×10⁻⁵Lorenz 映射的厚度(占 z 值域)

③ 统计量不随 rtol 变

不变密度同样不动

三个容差下 z 的不变密度
lorenz63 figure fig11
0.0099三个 rtol 之间 z 密度的最大总变差距离(T = 3000)

两条结论都写成了测试:

test_statistics.py::
test_lorenz_map_is_tolerance_independent
test_invariant_density_is_tolerance_independent

③ 统计量不随 rtol 变

教科书上的蝴蝶不是幻觉

Lorenz 吸引子三维图,标出三个不动点
lorenz63 figure fig02

红点是三个不动点:原点是鞍点,C± 各自是一叶的中心。

两叶间的切换是非周期的,而切换序列正是 Lorenz 映射编码的东西。

可信的是这个形状和它的统计,不是其中任何一条轨道。

第 ④ 部分

可信的判据随系统类型变

④ 判据随系统类型变

三类系统的验证判据

系统类型可保的结构验证手段长时间单条轨道
保守(哈密顿)辛形式、不变量监视能量有界;辛 / 分裂格式可信(误差多项式增长,辛格式下线性)
耗散、非混沌收敛到吸引子是否收敛到正确的稳态或极限环可信
耗散、混沌无统计量对方法不敏感不可信(超过 1/λ₁ 量级)

混沌问题的验证协议:容差扫几个数量级、方法换几种,检查 λ₁、不变密度、Lorenz 映射是否稳定。第 ③ 部分就是在执行这套协议。

④ 判据随系统类型变

Poincaré 截面:周期、准周期、混沌

周期、有理环面、无理环面、混沌四种轨道的 Poincaré 截面
lorenz63 figure fig19
k 个点周期:近邻收拢,λ = 0, −, −
闭曲线准周期:无理转数的转动,λ = 0, 0, −
细线混沌:近邻指数散开,λ = +, 0, −

近邻收拢是第二行,刚性转动是第一行,指数散开是第三行。

④ 判据随系统类型变

哈密顿结构守三样,Lorenz 一样也没有

$$\dot q = \frac{\partial H}{\partial p},\qquad \dot p = -\frac{\partial H}{\partial q}$$ $$\frac{\mathrm dH}{\mathrm dt} = H_q H_p - H_p H_q = 0$$ $$J = \begin{pmatrix} H_{pq} & H_{pp} \\ -H_{qq} & -H_{qp} \end{pmatrix},\quad \operatorname{tr} J = 0$$ $$M^{\mathsf T}\,\Omega\, M = \Omega,\qquad \Omega = \begin{pmatrix} 0 & I \\ -I & 0 \end{pmatrix}$$
谐振子Lorenz
能量 H(p² + q²)/2 守恒无
相体积tr J = 0tr J = −13.667
辛形式 Ω一对 (q, p)3 维,配不成对
Lyapunov 谱±λ 成对,和为 0和为 −13.67

④ 判据随系统类型变

守恒系统里,精度换来成倍的时间

Kepler 问题上 RK4 与 Verlet 的能量误差、位置误差随时间的增长,以及误差到 0.1 的时间对代价的幂律
lorenz63 figure fig17
7.4×10⁻⁴Verlet 能量误差,1000 周期不涨
第 33 周期RK4 能量误差超过 Verlet
斜率 2.0 / 2.5可信时间对代价是幂律

④ 判据随系统类型变

回到声学

表的第一行

无耗散波动方程是哈密顿系统。Yee 的 FDTD 格式里 E 与 H 在时间上交错半格,那就是蛙跳格式,也就是辛积分器。

FDTD 能长时间运行而不出现数值能量爆炸或人工衰减,原因在结构。

表的第三行

非线性声学、声致湍流一旦进入混沌,单次实现的波形不该当作可复现的预报。

该报告的是谱、相关函数、统计矩。

结论

守恒系统看不变量,混沌系统看统计量

  • Lorenz 没有守恒量,体积以 tr J = −13.667 坍缩。
  • 可预报时间被 λ₁ = 0.904 锁死在约 41 个时间单位,精度只换来对数的时间。
  • 不变密度、Lorenz 映射对 rtol 不敏感。

全部数字与图都可复现,关键断言写成了测试:

uv sync --all-groups
uv run pytest
uv run lorenz63 info
uv run lorenz63 figure all

备用

备用页

    备用 · 绪论 · 时间推进

    三个积分器:阶数、步长、误差估计

    RK4RK45DOP853
    阶数 p458
    步长固定,人给自适应自适应
    误差估计无5 阶 − 4 阶5 阶与 3 阶组合
    每步 f 次数4612

    RK45 即 scipy 的 Dormand–Prince 5(4);DOP853 是 Hairer–Wanner 的 8(5,3)。演示里的 DOP853 由 scipy 逐行移植。

    步数 \(\propto \text{rtol}^{-1/p}\)。rtol 收紧 106 倍:

    106/5 ≈ 16RK45 步数倍增
    106/8 ≈ 5.6DOP853 步数倍增

    积分器决定代价;每 10 倍 rtol 换 2.55 个时间单位,由 λ₁ 决定。

    备用 · ① 从不动点到 Lyapunov 指数

    Lyapunov 函数:耗散但有界

    $$V = \rho x^2 + \sigma y^2 + \sigma (z-2\rho)^2$$ $$\frac{\mathrm dV}{\mathrm dt} = -2\sigma\left[\rho x^2 + y^2 + \beta(z-\rho)^2 - \beta\rho^2\right]$$

    方括号在椭球 \(\rho x^2 + y^2 + \beta(z-\rho)^2 = \beta\rho^2\) 之外为正,V 在那里单调下降。

    所有轨道最终被困在一个有界区域里。

    备用 · ① 从不动点到 Lyapunov 指数

    不动点的本征结构决定吸引子形状

    特征值在复平面上随 ρ 的路径
    lorenz63 figure fig15(左格)
    • 原点的不稳定方向 λ = +11.83
    • 稳定 / 收缩方向
    • C± 的不变平面 0.094 ± 10.19i
    拖动旋转 · 滚轮缩放 · 双击复位
    原点  +11.827723   −2.666667   −22.827723           一正二负 → 鞍点
    C±    −13.854578   +0.093956 ± 10.194505 i          收缩方向 + 向外旋的不变平面

    备用 · ② 精度只换来对数时间

    数值稳定性 ≠ Lyapunov 不稳定性

    是什么的性质由什么决定步长能改变吗
    数值稳定性方法 + 步长hλJ 是否落在稳定域内能
    Lyapunov 指数流本身方程不能

    真解自己就在指数分离。步长变小只减少注入的误差量,这些误差随后照样按 eλt 放大。

    备用 · ② 精度只换来对数时间

    hλ:一步跨过模的几个时间尺度

    线性化 \(\dot{\delta u} = J\,\delta u\),对角化后每个方向都是 \(\dot y = \lambda y\)。

    \(e^{h\lambda}\)真解一步的乘数
    \(R(h\lambda)\)格式一步的乘数

    \(R_\text{RK4}(z) = 1 + z + \tfrac{z^2}{2} + \tfrac{z^3}{6} + \tfrac{z^4}{24}\),是 \(e^z\) 的截断。

    h·Re λ:一步里幅度的对数变化。h·Im λ:一步转过的弧度(C±:0.10,62 步一圈)。

    最快的衰减模 λ = −21.85,时间尺度 0.046:

    hhλ真解 \(e^{h\lambda}\)RK4 \(R(h\lambda)\)
    0.01−0.220.80370.8037
    0.05−1.090.3350.346
    0.12−2.620.0730.78
    0.15−3.280.0382.03

    备用 · ② 精度只换来对数时间

    瓶颈是精度,不是稳定性

    吸引子上 Jacobian 特征值乘以 h 与 RK4 稳定域
    lorenz63 figure fig06
    0.1253RK4 稳定步长上限
    ≈ 0.01实际用的步长

    吸引子上采样的 Jacobian 谱:max |λJ| = 23.0,36.3% 的特征值实部为正。

    小心红点(增长模)永远在稳定域外。那是格式在复现真实的增长方向。要求全谱 |R(hλ)| ≤ 1 只会得到 h = 0。稳定域只约束衰减模。

    备用 · ② 精度只换来对数时间

    自适应:稳定域不变,守它的换成控制器

    格式负实轴交点稳定上限 h
    RK4−2.7850.127
    RK45−3.310.151
    DOP853−6.390.293

    R(z) 由 Butcher 表算出;上限 = 交点 / 21.85。与 rtol 无关。

    DOP853 在吸引子上的最大步长,占稳定上限:

    rtol最大 h占上限
    10⁻³0.2961.01
    10⁻⁴0.2450.84
    10⁻⁶0.1350.46
    10⁻⁹0.0610.21
    10⁻¹³0.0210.07

    全文用的 10⁻⁴ 到 10⁻¹³ 都在稳定域里面:步长按精度选。

    备用 · ② 精度只换来对数时间

    衰减模走出了精度域,没走出稳定域

    RK45 与 DOP853 的稳定域、精度域,以及 rtol = 1e-4 时每步的 hλ
    lorenz63 figure fig20

    沿负实轴,rtol = 10⁻⁴:

    精度域衰减模 hλ稳定域
    RK45−0.63−1.81−3.31
    DOP853−1.81−4.57−6.39

    备用 · ② 精度只换来对数时间

    阶数在精度定步长时才值钱

    Lorenz 上 RK45 与 DOP853 的工作量对误差;刚性问题上显式格式的工作量被稳定域卡在平台上
    lorenz63 figure fig21

    非刚性:h ∝ tol1/p,nfev ∝ s · tol−1/p

    斜率−1/p误差 10⁻¹⁰
    RK45−0.17−0.206100 次
    DOP853−0.10−0.1251440 次

    刚性:nfev ≈ s · |λ|T / 交点,与 tol、阶数都无关

    s / 交点步数:心算实测
    RK451.8130203025
    DOP8531.8815601567

    备用 · ④ 判据随系统类型变

    推论:混沌问题的收敛阶要在短窗口里验

    常见做法:画"误差 vs 步长",期待一条 O(hp) 直线。

    超过可预报时间后误差饱和到吸引子直径,图会变成一条水平线,看起来像格式失去了精度阶。

    test_integrate.py::
    test_tighter_tolerance_is_more_accurate_before_saturation

    备用

    数字汇总

    tr J−13.6666666667闭式
    C±(±8.4853, ±8.4853, 27)闭式
    ρ_Hopf24.7368421053闭式
    λ₁ / λ₂ / λ₃0.9038 / −0.0004 / −14.5700T=2000
    Σλ − tr J2.17e−9自洽检验
    D_KY2.062001λ 谱
    倍增时间0.767ln2/λ₁
    双精度预报极限40.76ln(10¹⁶)/λ₁
    λ₁(系综)0.875016 点 × 4 方向
    λ₁(容差斜率)0.8839T_div 拟合
    RK4 稳定步长上限0.1253仅衰减模
    Lorenz 映射厚度8.6e−5z 值域比例
    不变密度最大总变差0.0099三个 rtol
    有限时间 λ₁ 标准差2.60窗口 0.5
    Lorenz 63 · 从方程到可信的数值解 绪论① Lyapunov 指数② 对数时间③ 统计量④ 判据
    ← → 翻页 · N 讲稿 · F 全屏 · B 备用页 · R 返回