辛结构、动量映射与对称性——从 Noether 定理到辛积分器与机器人应用¶
所属:刚体动力学专题 4-7 | 前置:20_Lagrange与Hamilton力学(Hamilton 正则方程、Legendre 变换)、40_SE3几何力学(Lie-Poisson 预告) 交叉引用:→ 20_微分几何与李群/30_李群基础与SO3_SE3(Lie 群/代数、外微分)、→ 60_约束动力学(SHAKE/RATTLE 应用)、→ 05_运动控制/90_DDP
前置自测¶
📋 前置自测(答不出 ≥ 2 题 → 先回前置章节复习)
- 写出 Hamilton 正则方程 \(\dot q = \partial H/\partial p\), \(\dot p = -\partial H/\partial q\)。它们如何从 Lagrangian 通过 Legendre 变换得到?(→ 20_Lagrange与Hamilton力学)
- 什么是外微分 \(d\)?什么是 Lie 导数 \(\mathcal{L}_X\)?Cartan 魔术公式是什么?(→ 30_SO3_SE3)
- 什么是 Lie 群的伴随表示 \(\text{Ad}_g\) 和余伴随表示 \(\text{Ad}^*_g\)?(→ 30_SO3_SE3)
- 解释 Noether 定理的 Lagrange 版本:对称性→守恒量。(→ 10_变分法)
- 什么是辛矩阵 \(J = \begin{pmatrix}0 & I\\-I & 0\end{pmatrix}\)?它的物理含义是什么?
本章目标¶
学完本章,你将能够: 1. 严格定义**辛流形 \((M, \omega)\) 并理解 Darboux 定理的含义(辛几何无局部不变量) 2. **证明 Hamilton 流保辛(一行证明),并理解这为什么是整个经典力学的几何灵魂 3. 推导**动量映射 \(J: P \to \mathfrak{g}^*\) 的定义,并验证 Noether 定理的辛版本 4. **证明 Störmer-Verlet/Leapfrog 的辛性,理解 backward error analysis(修正 Hamiltonian) 5. 应用**辛积分器于长时仿真、Lie 群变分积分器于 SO(3) 刚体、Natural Policy Gradient 的辛解释 6. **理解 Lie-Poisson 约化如何把 \(T^*SO(3)\) 降为 \(so(3)^*\) 上的 Euler 刚体方程 7. 掌握 Marsden-Weinstein 辛约化定理及其在浮基机器人降维中的应用 8. 连接 Fisher 信息矩阵与辛几何——理解 TRPO/PPO 的几何根源
向前承接:本章把 20_Lagrange与Hamilton力学 的局部坐标视角**全局化、几何化**;把 30_SO3_SE3 的 Lie 群/代数工具应用于动量映射和约化;升级 10_变分法 的 Noether 定理为辛版本。
向后指向:本章为 MPC/DDP 提供了"最优控制 = 辛流"的观点(Pontryagin 辛表述);为 RL 提供了"Natural Gradient = Fisher 度量下辛流的阻尼投影"的解释;为长时仿真提供了辛积分器的理论保证。60_约束动力学 中的 SHAKE/RATTLE 是本章辛积分器在约束系统上的直接推广。
核心哲学:辛几何不是"让力学更复杂"的工具——它是"揭示力学为什么是这个样子"的镜子。理解辛结构后,你不会改变代码写法,但会知道**哪一行代码在做几何上正确的事**。
面向工程师的最小承诺:即使不深入全部理论,掌握以下三点就能获得 80% 的实际收益: - 长时仿真用 Verlet 不用 RK4 - SO(3) 积分用 exp 映射不用 Euler+normalize - 理解 Natural Gradient 的 Fisher 度量含义
面向研究者的深入路径:动量映射→辛约化→变分积分器→离散 PMP。这条路线是从 Crocoddyl/ALTRO 到"发明新的 structure-preserving MPC"的必经之路。
与其他章节的连接矩阵:
| 方向 | 连接章节 | 连接方式 |
|---|---|---|
| 上游 | 30_SO3_SE3 → Lie 群/代数 | 构造动量映射、coadjoint 作用 |
| 上游 | 20_Lagrange → Hamilton 方程 | 辛几何是 Hamilton 力学的全局化 |
| 上游 | 10_变分法 → Noether 定理 | 辛版 Noether 是几何升级 |
| 平行 | 60_约束动力学 → SHAKE/RATTLE | 约束系统的辛积分 |
| 平行 | 60_约束动力学 → 浮基动力学 | 辛约化给出 centroidal dynamics |
| 下游 | MPC/DDP → Pontryagin 辛表述 | costate = 动量映射 |
| 下游 | RL → NPG/TRPO/HMC | Fisher 信息的辛解释 |
| 下游 | 天体/空间 → 长时仿真 | 辛积分器保证长时稳定 |
先修后读建议: - 第一遍(3-5 天):§1-§5(辛基础 + 积分器),跳过证明细节,重点理解物理含义 - 第二遍(5-7 天):§4+§6(动量映射 + Lie-Poisson),补证明,做练习 - 第三遍(按需):§7-§8(应用 + RL 联系),§9-§16(进阶理论)
核心提醒:本章的数学密度高于其他刚体动力学章节。如果感到困难,先确保 30_SO3_SE3 中的 Lie 群基础和 20_Lagrange 中的 Hamilton 力学已经扎实。辛几何不能"跳着学"——每个定理都依赖前面的定义。
知识树¶
辛结构与动量映射(本章)
├── §1 辛流形定义 ⭐⭐
│ ├── (M, ω):ω 闭且非退化
│ ├── 典则辛形式 ω = dq∧dp
│ └── Darboux 定理:辛几何无局部曲率
├── §2 Hamilton 方程 = 辛梯度流 ⭐⭐
│ ├── i_{X_H}ω = dH 唯一确定 X_H
│ ├── 正则方程是坐标表达
│ └── Hamilton 流保辛(Cartan 证明)
├── §3 辛变换与正则变换 ⭐⭐⭐
│ ├── 保辛条件:φ*ω = ω
│ ├── 生成函数(四类)
│ └── Liouville 体积定理
├── §4 动量映射 J: M → g* ⭐⭐⭐
│ ├── 严格定义:i_{ξ_P}ω = dJ_ξ
│ ├── Noether 定理辛版本
│ ├── 等变性与余伴随作用
│ └── 标准例子:线动量、角动量
├── §5 辛积分器 ⭐⭐
│ ├── Symplectic Euler 辛性证明
│ ├── Störmer-Verlet/Leapfrog 辛性证明
│ ├── 向后误差分析:修正 Hamiltonian
│ └── 能量漂移 vs 辛保持
├── §6 Lie-Poisson 约化 ⭐⭐⭐⭐
│ ├── Poisson 流形与 Casimir 函数
│ ├── g* 上的 Lie-Poisson 结构
│ ├── 从 T*G 到 g* 的辛约化
│ └── SO(3) 刚体自由旋转
├── §7 机器人应用 ⭐⭐⭐
│ ├── 辛积分器用于长时仿真
│ ├── 动量守恒在浮基控制中的利用
│ └── Poincaré 映射与步态稳定性
└── §8 与 RL 的联系 ⭐⭐⭐⭐
├── Fisher 信息矩阵 = 度量
├── Natural Policy Gradient 的辛解释
└── HMC 采样 = 辛积分
§1 辛流形的严格定义 ⭐⭐¶
1.1 动机:为什么需要辛几何¶
经典力学有三种等价表述:Newton(F=ma)、Lagrange(变分)、Hamilton(正则方程)。前两种依赖坐标选择——不同的广义坐标给出不同形式的方程。但到了 Hamilton 这一层,一个深刻的几何结构浮现:相空间上的辛形式 \(\omega\)。
回顾 20_Lagrange与Hamilton力学 中的 Hamilton 方程: $\(\dot q^i = \frac{\partial H}{\partial p_i}, \quad \dot p_i = -\frac{\partial H}{\partial q^i}\)$
这些方程有一个惊人的性质:它们在正则变换(保辛变换)下形式不变。这不是巧合,而是因为 Hamilton 方程是辛形式 \(\omega\) 的坐标表达——辛形式本身是坐标无关的。
本质洞察:辛几何是力学的"最终语言"。Newton 力学的"力"是 Hamilton 向量场;Lagrange 变分的"临界路径"是辛流的投影;Noether 守恒律是动量映射的几何必然。不是说辛几何让方程更简单——而是它揭示了方程为什么是这个样子。
三个不可替代的理由:
-
守恒量的统一起源。在 Lagrange 层面,Noether 定理是一个"计算结果"(对称性→算一下→得到守恒量)。在辛层面,守恒量是**动量映射 \(J: P \to \mathfrak{g}^*\)** 的几何必然——\(G\)-不变 Hamiltonian \(\Rightarrow\) \(J\) 沿流守恒,没有"为什么",只有"就是这样"。
-
约化理论的数学根基。回顾 30_SO3_SE3 中的 Lie 群作用。浮基 humanoid 的 Hamiltonian 是 SE(3)-不变的;Marsden-Weinstein 定理保证商空间 \(T^*Q/SE(3)\) 仍是辛流形。这是 MPC/RL 压缩搜索空间的几何根源。
-
数值长时稳定性。RK4 在 \(10^6\) 步的 Kepler 轨道上系统性漂移能量;Störmer-Verlet 在 \(10^9\) 步仍保持能量震荡在 \(O(h^2)\) 内。原因不是"精度",而是**保辛性**。
1.2 辛流形的定义¶
定义:一个**辛流形**是一对 \((M^{2n}, \omega)\),其中 \(M\) 是 \(2n\) 维光滑流形,\(\omega\) 是 \(M\) 上的 2-form,满足:
- 闭性(closed):\(d\omega = 0\)
- 非退化(non-degenerate):\(\omega^n = \omega \wedge \omega \wedge \cdots \wedge \omega \neq 0\) 处处(等价于 \(\omega^\flat: TM \to T^*M\) 是同构)
为什么必须是偶数维? 反对称双线性形式在奇数维空间上不可能非退化(行列式为零因为 \(\det(A) = \det(-A^\top) = (-1)^n \det(A)\),奇数 \(n\) 得 \(\det(A) = 0\))。
为什么闭性重要? 闭性 \(d\omega = 0\) 保证了 Hamilton 流保辛(证明见 §2.3)。如果 \(d\omega \neq 0\),则 \(\mathcal{L}_{X_H}\omega \neq 0\),系统不再保持"相空间结构"。
1.3 典则辛形式:机器人相空间的天然结构¶
最基本的例子:余切丛 \(T^*Q\) 上的典则辛形式。
设 \(Q\) 是配置空间(如机器人的关节空间),\(T^*Q\) 是相空间(位置+动量)。定义 Liouville 1-形式(tautological form):
则**典则辛形式**为:
验证:\(d\omega = 0\)(因为 \(d^2 = 0\));\(\omega^n = n!\,dq^1\wedge dp_1\wedge\cdots\wedge dq^n\wedge dp_n \neq 0\)(体积形式)。
机器人相空间 \(T^*Q\) 天然是辛流形——这不是人为赋予的结构,而是配置空间 \(Q\) 自动诱导的。
1.4 Darboux 定理¶
定理(Arnold §41.C;da Silva §8.1):对任何辛流形 \((M, \omega)\) 和任何点 \(x \in M\),存在局部坐标 \((q^1, ..., q^n, p_1, ..., p_n)\) 使得
在该邻域内成立。这些坐标称为 Darboux 坐标 / 正则坐标。
证明思路(Moser 路径法):要证 \(\omega\) 与 \(\omega_0 = \sum dq^i \wedge dp_i\) 在点 \(x\) 的邻域局部等价。
- 令 \(\omega_t = (1-t)\omega_0 + t\omega\)。由于 \(\omega\) 和 \(\omega_0\) 在 \(x\) 点相等(选坐标使其如此),对小邻域 \(\omega_t\) 仍非退化。
- 由闭性和 Poincaré 引理,\(\omega - \omega_0 = d\alpha\) 对某 1-form \(\alpha\)。
- 构造时变向量场 \(X_t\) 使 \(\iota_{X_t}\omega_t = -\alpha\)(由非退化性唯一存在)。
- 计算:\(\frac{d}{dt}\varphi_t^*\omega_t = \varphi_t^*(\mathcal{L}_{X_t}\omega_t + \frac{d\omega_t}{dt}) = \varphi_t^*(d\iota_{X_t}\omega_t + \omega - \omega_0) = \varphi_t^*(-d\alpha + d\alpha) = 0\)。
- 故 \(\varphi_1^*\omega = \omega_0\),即 \(\varphi_1\) 是所求坐标变换。∎
类比:Darboux 定理之于辛几何,正如"曲面局部可展为平面"之于欧氏几何——但区别在于,黎曼几何有局部不变量(曲率),而辛几何**没有**!所有辛流形**局部都一样**。
本质洞察:辛几何没有局部不变量——一切辛几何现象都是**整体的**。这解释了为何辛几何与拓扑(Arnold 猜想、Gromov 非挤压定理)联系密切,也解释了为何 Hamilton 力学的"有趣现象"(如 KAM 环面、Arnold diffusion)都是整体的。
1.5 辛流形 vs 黎曼流形¶
| 性质 | 辛流形 \((M, \omega)\) | 黎曼流形 \((M, g)\) |
|---|---|---|
| 基本结构 | 反对称 2-form | 对称 2-form(度量) |
| 维度要求 | 必须偶数维 | 任意维 |
| 局部不变量 | 无(Darboux) | 曲率张量 \(R\) |
| 保结构映射 | Symplectomorphism | Isometry |
| 物理意义 | 相空间结构 | 距离/角度 |
| 体积 | Liouville form \(\omega^n/n!\) | \(\sqrt{\det g}\,dx\) |
反事实推理:如果辛几何有局部不变量(像曲率一样),会怎样?那 Hamilton 力学就不会有"正则变换"的概念——因为不是任何坐标变换都能保持"辛曲率"。Darboux 定理说的正是:不存在"辛曲率"这种东西,所以正则变换族极其丰富。
⚠️ 常见陷阱¶
💡 概念误区:认为"辛 = 保面积" - 新手想法:"辛形式不就是面积元吗?保辛 = 保面积?" - 实际上:辛形式不是面积元。在 4 维相空间中,\(\omega = dq^1\wedge dp_1 + dq^2\wedge dp_2\) 可以在某些 2 维子空间取值零。真正的不变量是 \(\omega\) 本身(一个 2-form),不是 \(|\omega|\) - 保体积(Liouville 定理)是推论(保 \(\omega^n\)),不是定义(保 \(\omega\)) - 存在保体积但不保辛的映射(如某些 Nambu 力学系统)
练习¶
- 验证 \(\omega = dq^1\wedge dp_1 + dq^2\wedge dp_2\) 在 \(\mathbb{R}^4\) 上满足 \(\omega^2 = 2\,dq^1\wedge dp_1\wedge dq^2\wedge dp_2 \neq 0\)。
- 证明奇数维流形上不可能存在非退化 2-form(提示:反对称矩阵在奇数维上行列式为零)。
- 设 \(\omega = x\,dx\wedge dy\) 在 \(\mathbb{R}^2\) 上。\(\omega\) 是否是辛形式?为什么?
§2 Hamilton 方程 = 辛梯度流 ⭐⭐¶
2.1 动机:正则方程从何而来¶
在 20_Lagrange与Hamilton力学 中,Hamilton 正则方程通过 Legendre 变换从 Euler-Lagrange 方程得到。但这种推导掩盖了正则方程的**内在几何含义**——它不是"Lagrange 方程换了个坐标",而是辛流形上的**梯度流**。
关键区别:在黎曼几何中,梯度 \(\nabla f\) 由度量 \(g\) 定义:\(g(\nabla f, X) = df(X)\)。在辛几何中,"辛梯度" \(X_H\) 由辛形式 \(\omega\) 定义:\(\omega(X_H, Y) = dH(Y)\)。Hamilton 方程就是后者的坐标表达。
2.2 Hamilton 向量场的定义¶
给定光滑函数 \(H: M \to \mathbb{R}\)(Hamiltonian),Hamilton 向量场 \(X_H\) 由以下等式唯一确定:
即 \(\omega(X_H, Y) = dH(Y)\) 对所有向量场 \(Y\)。非退化性保证 \(\omega^\flat: TM \to T^*M\) 可逆,从而 \(X_H = (\omega^\flat)^{-1}(dH)\) 唯一存在。
在 Darboux 坐标下展开:设 \(X_H = \dot q^i\,\partial_{q^i} + \dot p_i\,\partial_{p_i}\),代入 \(\iota_{X_H}\omega = dH\):
比较系数: $\(\dot q^i = \frac{\partial H}{\partial p_i}, \quad \dot p_i = -\frac{\partial H}{\partial q^i}\)$
这就是 Hamilton 正则方程! 它不是"规定"出来的,而是辛结构 \(\omega\) 的**必然推论**。
2.3 Hamilton 流保辛的完整证明¶
定理:设 \(\varphi_t\) 为 \(X_H\) 的流(即 Hamilton 演化),则 \(\varphi_t^*\omega = \omega\) 对所有 \(t\) 成立。
证明(一行,使用 Cartan 魔术公式 \(\mathcal{L}_X = d \circ \iota_X + \iota_X \circ d\)):
第一项:\(d(dH) = 0\) 因为 \(d^2 = 0\)。 第二项:\(d\omega = 0\) 因为 \(\omega\) 是辛形式(闭性)。
由 Lie 导数定义 \(\frac{d}{dt}\varphi_t^*\omega = \varphi_t^*(\mathcal{L}_{X_H}\omega) = 0\),故 \(\varphi_t^*\omega = \varphi_0^*\omega = \omega\)。∎
本质洞察:这个一行证明是**整个经典力学的几何灵魂**。所有能量守恒、Liouville 体积守恒、Poincaré 回归、不存在 Hamilton 吸引子——都是 \(\mathcal{L}_{X_H}\omega = 0\) 的推论。证明只用了两个事实:\(d^2 = 0\) 和 \(d\omega = 0\)。闭性 \(d\omega = 0\) 是辛力学的全部物理。
类比:辛形式之于 Hamilton 力学,正如度量之于测地线。测地线是"最短路径"(由度量决定),Hamilton 流是"保辛路径"(由辛形式决定)。但辛形式比度量更"刚性"——度量只决定路径的局部方向,辛形式决定了相空间的全局结构。
2.4 不保辛的后果¶
反事实推理:如果一个系统**不**保辛(即 \(\mathcal{L}_X\omega \neq 0\)),会有什么物理后果?
- 相空间体积不守恒(违反 Liouville 定理)→ 系统有吸引子或排斥子
- 能量不守恒(耗散或驱动)
- 不存在守恒的"第一积分"的辛保证
机器人中的非辛系统: - 有摩擦的系统(耗散 → 相空间体积收缩 → 吸引子存在) - 有接触切换的系统(接触瞬间 \(\omega\) 跳变,回顾 60_约束动力学 §6) - 有控制输入的系统(\(\tau\) 注入能量 → 相空间体积可膨胀)
⚠️ 常见陷阱¶
🧠 思维陷阱:认为"保辛 = 保能量" - 新手想法:"辛积分器保辛,所以它保能量?" - 实际上:辛积分器**不**精确保能量!它精确保辛,但能量有 \(O(h^r)\) 的有界震荡 - 这正是 backward error analysis 的核心:辛积分器精确保的是**修正 Hamiltonian** \(\tilde H = H + O(h^r)\) - 见 §5.4 的详细讨论
练习¶
- 对 1D 谐振子 \(H = \frac{1}{2}(p^2 + q^2)\),写出 \(X_H\) 并验证 \(\iota_{X_H}\omega = dH\)。
- 对 \(f(q,p) = q^2 + p^2\),计算 \(\{f, H\}\)(Poisson 括号)并验证 \(\{f,H\} = 0\) 当 \(H = f\) 时。
- 证明:若 \(\omega\) 不闭(\(d\omega \neq 0\)),则一般 \(\mathcal{L}_{X_H}\omega \neq 0\)(Hamilton 流不再保辛)。
§3 辛变换与正则变换 ⭐⭐⭐¶
3.1 保辛条件¶
一个微分同胚 \(\varphi: (M_1, \omega_1) \to (M_2, \omega_2)\) 称为 symplectomorphism(辛同态),若 \(\varphi^*\omega_2 = \omega_1\)。
在 Darboux 坐标下,设变换 \((q, p) \mapsto (Q, P)\),则保辛条件等价于 Jacobian 满足:
这就是**辛矩阵条件** \(M^\top J M = J\)(辛群 \(\text{Sp}(2n, \mathbb{R})\) 的定义)。
3.2 生成函数¶
正则变换可以通过**生成函数**构造。设 \((q, p) \to (Q, P)\) 是正则变换,则存在以下四类生成函数之一:
| 类型 | 生成函数 | 关系 |
|---|---|---|
| \(F_1(q, Q)\) | \(p = \partial F_1/\partial q\), \(P = -\partial F_1/\partial Q\) | 旧坐标-新坐标 |
| \(F_2(q, P)\) | \(p = \partial F_2/\partial q\), \(Q = \partial F_2/\partial P\) | 旧坐标-新动量 |
| \(F_3(p, Q)\) | \(q = -\partial F_3/\partial p\), \(P = -\partial F_3/\partial Q\) | 旧动量-新坐标 |
| \(F_4(p, P)\) | \(q = -\partial F_4/\partial p\), \(Q = \partial F_4/\partial P\) | 旧动量-新动量 |
重要性质:每个辛积分器都对应一个生成函数!Symplectic Euler 由 \(F_1\) 类型生成,Störmer-Verlet 由 \(F_2\) 类型的对称复合生成。这提供了"构造辛积分器"的系统方法。
3.3 Liouville 体积定理¶
推论:Hamilton 流 \(\varphi_t\) 保持 Liouville 体积形式 \(\Omega = \omega^n / n!\):
物理意义: - 相空间不可压缩——这是统计力学微正则系综的基础 - 不存在 Hamilton 系统的"吸引子"——耗散系统不是 Hamilton 的 - 数值含义:好的 Hamilton 积分器应至少保体积(所有辛积分器都保体积,反之不成立)
类比:想象墨水滴入水中。Hamilton 流像是一个"不改变体积但可以拉伸变形"的搅拌器——墨水团的体积不变,但形状可以变得非常复杂(这就是混沌的起源)。耗散系统则像有吸收剂——墨水团体积收缩,最终集中到吸引子上。
3.4 Poincaré 积分不变量¶
定理(Arnold §44):设 \(\gamma\) 是相空间中的闭曲线,\(\varphi_t(\gamma)\) 是其在 Hamilton 流下的像。则:
更强的形式:\(\oint p\,dq - H\,dt\)(Poincaré-Cartan 积分不变量)沿同伦等价的闭曲线不变。
应用:这是 WKB 近似(量子力学的半经典极限)和 action-angle 变量的基础。
⚠️ 常见陷阱¶
💡 概念误区:认为"正则变换 = 任何坐标变换" - 新手想法:"换个坐标就是正则变换" - 实际上:一般坐标变换(如极坐标变换 \((x,y) \to (r,\theta)\))**不是**正则变换。正则变换必须在相空间 \((q, p)\) 层面保辛 - 配置空间的点变换 \(Q = Q(q)\) 诱导的相空间变换 \(P = (\partial q/\partial Q)^\top p\) **是**正则变换(升维lift),但不是所有正则变换都来自点变换
练习¶
- 验证恒等变换 \((Q, P) = (q, p)\) 的生成函数是 \(F_2(q, P) = q \cdot P\)。
- 证明两个辛映射的复合仍是辛映射(这是 §5 中 Störmer-Verlet 辛性证明的基础)。
- 对 2D 谐振子,找到一个正则变换使 \(H\) 变成 action-angle 形式 \(H = \omega I\)。
§4 动量映射 \(J: P \to \mathfrak{g}^*\) ⭐⭐⭐¶
4.1 动机:守恒量的几何本质¶
在 10_变分法 中,我们学过 Noether 定理的 Lagrange 版本:如果 Lagrangian 在某个连续对称群 \(G\) 下不变,则存在对应的守恒量。例如: - 平移不变 → 线动量守恒 - 旋转不变 → 角动量守恒 - 时间平移不变 → 能量守恒
但 Lagrange 版本有局限:它给出守恒量,但**不揭示守恒量之间的关系**(如角动量分量之间的 Poisson 括号关系)。辛版本通过**动量映射**统一了一切。
4.2 动量映射的严格定义¶
设定:Lie 群 \(G\) 辛作用于辛流形 \((P, \omega)\),即对每个 \(g \in G\),\(\Phi_g: P \to P\) 是 symplectomorphism。每个 \(\xi \in \mathfrak{g}\)(Lie 代数元素)生成 \(P\) 上的**无穷小生成子** \(\xi_P\)(基础向量场):
定义(da Silva §22.1;Marsden-Ratiu Ch. 11):光滑映射 \(J: P \to \mathfrak{g}^*\) 称为该作用的**动量映射**,若对每个 \(\xi \in \mathfrak{g}\),函数 \(J_\xi(p) := \langle J(p), \xi\rangle\) 满足:
即 \(\xi_P\) 是 Hamilton 向量场,由 \(J_\xi\) 生成。
直觉:\(J\) 把相空间上的"对称方向"(\(\xi_P\))翻译成"守恒量"(\(J_\xi\))。它是从"对称群"到"守恒量空间"的桥梁。
4.3 标准例子¶
例 1:线动量。\(G = \mathbb{R}^3\)(平移群),\(P = T^*\mathbb{R}^3\),作用 \(\Phi_a(q, p) = (q + a, p)\)。
生成子:\(\xi_P = \xi^i\partial_{q^i}\)。 $\(\iota_{\xi_P}(dq^i\wedge dp_i) = \xi^i dp_i = d(\xi^i p_i) = d\langle p, \xi\rangle\)$
故 \(J(q, p) = p\)(线动量)。
例 2:角动量。\(G = SO(3)\),\(P = T^*\mathbb{R}^3\),作用 \(\Phi_R(q, p) = (Rq, Rp)\)。
对 \(\xi = \hat\omega \in so(3)\),生成子 \(\xi_P = (\omega \times q)^i\partial_{q^i} + (\omega \times p)^i\partial_{p^i}\)。
计算得 \(J_\xi = \langle q \times p, \omega\rangle\),故:
即**角动量**。
例 3:浮基刚体。\(G = SE(3)\),\(J = (\text{线动量}, \text{角动量关于原点})\)。这正是 60_约束动力学 §8 中 centroidal momentum 的几何起源。
4.4 Noether 定理的辛版本¶
定理(Marsden-Ratiu Thm 11.4.1):设 Hamiltonian \(H\) 在 \(G\) 作用下不变(\(H \circ \Phi_g = H\) 对所有 \(g \in G\)),则动量映射 \(J\) 沿 \(X_H\) 的流守恒:
证明(一行): $\(\{J_\xi, H\} = \omega(X_{J_\xi}, X_H) = \omega(\xi_P, X_H) = (\iota_{\xi_P}\omega)(X_H) = dJ_\xi(X_H) = \mathcal{L}_{X_H}J_\xi\)$
另一方面: $\(\mathcal{L}_{X_H}J_\xi = \frac{d}{dt}J_\xi(\varphi_t) = dH(\xi_P) = \mathcal{L}_{\xi_P}H = 0\)$
最后一步用了 \(H\) 的 \(G\)-不变性。故 \(\dot J_\xi = 0\),\(\xi\) 任意,得 \(\dot J = 0\)。∎
4.5 动量映射的存在性条件¶
不是所有辛群作用都有动量映射! 存在的充分条件:
-
\(H^1(M, \mathbb{R}) = 0\)(\(M\) 的第一 de Rham 上同调消失):此时每个闭 1-form 都是恰当的,\(\iota_{\xi_P}\omega\) 是闭 1-form(因 \(d\iota_{\xi_P}\omega = \mathcal{L}_{\xi_P}\omega = 0\)),故恰当,\(J_\xi\) 存在。
-
\(G\) 半简单(Whitehead 引理):半简单 Lie 代数没有非平凡 1-上同调,保证等变性。
-
\(T^*Q\) 自然作用:当 \(G\) 作用于 \(Q\),提升到 \(T^*Q\) 的作用**总有等变动量映射**。
何时不存在? 当 \(H^1(M) \neq 0\) 且 \(G\) 作用不满足特殊条件时。经典反例:\(\mathbb{T}^2\)(环面)上的平移作用。
机器人中通常不用担心存在性:因为机器人相空间 \(T^*Q\) 是余切丛,群作用来自配置空间 \(Q\) 上的自然作用——动量映射总存在且等变。
4.6 等变性¶
动量映射称为**等变的(equivariant)**,若:
即 \(J\) 与群作用"交换"(up to coadjoint)。等变性保证了守恒量之间的 Poisson 括号关系与 Lie 代数结构常数一致:
非等变情况:有时存在 cocycle \(\sigma: G \to \mathfrak{g}^*\) 度量偏离等变性。对 Abelian 群 \(\sigma = 0\)。
4.6 机器人中的动量映射应用¶
| 机器人系统 | 对称群 \(G\) | 动量映射 \(J\) | 守恒条件 | 应用 |
|---|---|---|---|---|
| 自由漂浮空间臂 | SE(3) | 6D 动量 | 无外力 | 关节协调运动 |
| 四旋翼 | SO(2) | yaw 角动量 | 旋转对称 | 偏航控制 |
| 二足 passive walker | \(\mathbb{R}\)(水平平移) | 水平线动量 | 水平无外力 | 极限环构造 |
| humanoid 走路 | 近似 SE(2) | 水平动量近似守恒 | 地面近似平坦 | Centroidal dynamics |
本质洞察:Centroidal momentum(质心动量,60_约束动力学 §8 中 \(h_G = A_G v\))就是 SE(3) 动量映射在质心处的取值。当外力只有重力时,水平线动量守恒——这是 Capture Point / DCM 规划的几何基础。
⚠️ 常见陷阱¶
💡 概念误区:认为"动量映射 = 动量" - 新手想法:"\(J\) 就是普通的动量向量" - 实际上:\(J: P \to \mathfrak{g}^*\) 映射到的是 Lie 代数的对偶空间,不是 \(\mathbb{R}^n\) - 对 SO(3):\(\mathfrak{so}(3)^* \cong \mathbb{R}^3\),所以看起来像"角动量向量" - 对 SE(3):\(\mathfrak{se}(3)^* \cong \mathbb{R}^6\)(线+角),需要用 coadjoint 作用变换 - 在不同参考点表达角动量时,变换规则是 \(\text{Ad}^*\)——不是简单的旋转
练习¶
- 验证线动量映射的等变性:\(J(\Phi_a(q,p)) = J(q+a, p) = p = \text{Ad}^*_{a^{-1}}p\)(对 Abelian 群 \(\text{Ad}^* = \text{id}\))。
- 对 SO(3) 作用于 \(T^*\mathbb{R}^3\),验证 \(\{J_{\hat e_1}, J_{\hat e_2}\} = J_{\hat e_3}\)(即角动量分量满足 \(so(3)\) Lie 代数关系)。
- 跨章综合题:设 humanoid 在平坦地面上行走。解释为什么水平质心动量近似守恒(SE(2) 不变),但垂直方向不守恒(重力破坏了垂直平移对称性)。联系 60_约束动力学 §8 的 centroidal dynamics。
§5 辛积分器 ⭐⭐¶
5.1 动机:为什么数值方法需要保辛¶
问题:用 RK4 积分 Kepler 问题(行星轨道),\(10^6\) 步后轨道**系统性**收缩——地球螺旋坠入太阳。用 Störmer-Verlet,\(10^9\) 步后轨道仍在正确能量面上震荡。
原因不是"精度":RK4 是 4 阶方法(\(O(h^4)\) 局部误差),Verlet 只是 2 阶(\(O(h^2)\))。但 Verlet 保辛而 RK4 不保辛。
本质洞察:辛积分器的优势不是"单步更准",而是"长时不漂"。它精确求解一个"修正 Hamiltonian" \(\tilde H = H + O(h^r)\),而非精确 \(H\)。这保证了能量漂移**有界且震荡**,而非**单调增长**。
5.2 辛方法的定义¶
一个一步法 \(\Phi_h: (q_n, p_n) \mapsto (q_{n+1}, p_{n+1})\) 称为**辛的**,若 \(\Phi_h^*\omega = \omega\)。
等价条件(Hairer-Lubich-Wanner Thm VI.2.3):Jacobian 满足辛矩阵条件:
5.3 Symplectic Euler 及其辛性证明¶
对可分 Hamiltonian \(H(q,p) = T(p) + V(q)\):
注意:先更新 \(p\),再用**更新后的** \(p_{n+1}\) 更新 \(q\)。
辛性证明(Jacobian 方法):
写出 Jacobian \(M = \partial(q_{n+1}, p_{n+1})/\partial(q_n, p_n)\)。设 \(V_{qq} = \partial^2 V/\partial q^2\), \(T_{pp} = \partial^2 T/\partial p^2\):
验证 \(M^\top J M = J\):
展开计算(利用 \(V_{qq}\) 对称性)得 \(M^\top J M = J\)。∎
另一证明(生成函数法):Symplectic Euler 由 \(F_1\) 型生成函数 \(S(q_n, q_{n+1}) = h\,[T((q_{n+1}-q_n)/h) + V(q_n)]\) 的 Legendre 变换给出。由 Theorem VI.5.1,生成函数与辛变换一一对应,故辛性自动成立。
5.4 Störmer-Verlet / Leapfrog 及其辛性证明¶
对 \(H = p^2/(2m) + V(q)\)(最常用形式):
辛性证明(复合法):
Störmer-Verlet 是两步的复合: 1. Symplectic Euler(步长 \(h/2\)):\(p_{1/2} = p_n - (h/2)\nabla V(q_n)\), \(q_{n+1} = q_n + h\,p_{1/2}/m\) 2. 其**adjoint**(步长 \(h/2\)):\(p_{n+1} = p_{1/2} - (h/2)\nabla V(q_{n+1})\)
每个单步都是辛映射(已证),两个辛映射的复合仍是辛映射。故 Störmer-Verlet 是辛的。∎
额外性质: - 时间可逆(time-reversible):\((q_n, p_n) \to (q_{n+1}, p_{n+1})\) 和 \((q_{n+1}, -p_{n+1}) \to (q_n, -p_n)\) 是同一映射 - 二阶精度:对称复合保证了偶数阶误差项消失 - 显式(对可分 \(H\)):不需要解隐式方程
5.5 向后误差分析:修正 Hamiltonian¶
核心定理(Hairer-Lubich-Wanner Thm IX.3.2-3.3):对辛一步法 \(\Phi_h\) 作用于 \(H\),存在形式级数 modified Hamiltonian:
使 \(\Phi_h\) 精确求解 \(\dot y = X_{\tilde H}(y)\) 在形式级数意义下。
对 Störmer-Verlet(对称方法):修正 Hamiltonian 只含偶数阶项:
推论(指数小误差,Theorem IX.7.x):对解析 \(H\) 和步长 \(h < h^*\):
直到指数长时间 \(t \leq e^{c/h}\)。这就是为什么 Verlet 可以做行星 \(10^9\) 步仿真而不失真!
类比:辛积分器像一个"略有偏差的钟表"——它不是完全准确地显示时间(精确保 \(H\)),而是精确地保持了"齿轮比"(修正 \(\tilde H\))。因此它的误差是**有界的周期震荡**,而非**累积漂移**。普通积分器像一个"逐渐变快/变慢的钟"——误差单调增长。
5.6 能量漂移 vs 辛保持的对比¶
| 性质 | RK4(非辛) | Symplectic Euler(辛,1阶) | Störmer-Verlet(辛,2阶) |
|---|---|---|---|
| 单步误差 | \(O(h^5)\) | \(O(h^2)\) | \(O(h^3)\) |
| 长时能量误差 | \(O(t)\)(线性增长) | \(O(h)\)(有界震荡) | \(O(h^2)\)(有界震荡) |
| 相空间体积 | 不保 | 精确保 | 精确保 |
| 适用场景 | 短时高精度 | 长时稳定 | 长时稳定+对称 |
| 机器人应用 | 单步 MPC 预测 | HMC 采样 | 分子动力学、天体 |
5.7 辛积分器 vs 非辛积分器的深入对比¶
为了彻底理解辛积分器的优势,我们需要深入分析"为什么非辛方法在长时间上表现差"。
非辛方法的问题根源:考虑 RK4 积分 Kepler 问题。RK4 的一步映射 \(\Phi_h\) **不**保辛。这意味着 \(\Phi_h^*\omega \neq \omega\)——辛形式在每步都被轻微"压缩"或"拉伸"。
数学上,\(\det(D\Phi_h) \neq 1\)(不保体积)。对 Kepler 问题,\(\det(D\Phi_h) = 1 - ch^5 + O(h^6)\),其中 \(c > 0\)。经过 \(N = T/h\) 步:
虽然 \(h^4\) 很小,但 \(T\) 可以很大。当 \(Th^4 \sim O(1)\) 时(如 \(h = 0.01\), \(T = 10^8\)),相空间体积收缩到接近零——轨道螺旋坠入吸引子。
辛方法为什么不同? 辛方法 \(\Phi_h^*\omega = \omega\) 意味着 \(\det(D\Phi_h) = 1\) 精确成立。无论积分多少步,相空间体积都不变。轨道不会系统性漂移——能量误差只是有界震荡。
数值实验建议:用以下代码比较 RK4 和 Verlet 积分 Kepler 问题(Python 伪代码):
# Kepler 问题: q̈ = -q/|q|^3
# 初始条件: q = (1,0), p = (0,1) (圆轨道, E = -0.5)
# 积分 10^6 步, h = 0.01
# RK4: 能量 E(t) 单调增大, 最终 |ΔE/E| ~ 0.1
# Verlet: 能量 E(t) 在 [-0.5001, -0.4999] 之间振荡
# 差异在 10^4 步后就可见
当辛方法"失败"时:辛方法在以下情况下失去优势: 1. 短时高精度需求:RK4/RK45 的单步误差远小于 Verlet 2. 非 Hamiltonian 系统:含控制输入 \(\tau(t)\) 时,系统不再 Hamiltonian 3. 接触/碰撞:互补条件破坏连续辛结构 4. 刚性系统:步长受限于最快模式,辛方法无法处理
实践决策树:
需要长时仿真(>10^4 步)?
├── 是 → 系统是 Hamiltonian 的?
│ ├── 是 → 用辛积分器(Verlet/Yoshida)
│ └── 否 → 用保体积方法或 implicit
└── 否 → 用标准方法(RK4/RK45/Dormand-Prince)
5.8 Implicit Midpoint 方法¶
(y_{n+1} - y_n)/h = X_H((y_n + y_{n+1})/2)
这是唯一同时辛且一致作用于**任意** Hamiltonian 的一阶 Runge-Kutta 方法。
辛性证明:Implicit Midpoint 是 1 级 Gauss-Legendre collocation,而 Gauss-Legendre 方法是辛的(Hairer-Lubich-Wanner Thm VI.4.2)。
优势:不需要 \(H\) 可分(\(T(p) + V(q)\) 形式)——对一般 \(H(q,p)\) 也适用。
劣势:隐式(每步需解非线性方程),计算量比显式 Verlet 大 3-5 倍。
机器人应用:当 Coriolis 项使 \(H\) 不可分时(如多体系统 \(H = \frac{1}{2}v^\top M(q)v + V(q)\),\(M\) 依赖 \(q\)),Implicit Midpoint 是唯一可用的辛 RK 方法。
5.9 高阶辛方法¶
Yoshida 4 阶:三次 Verlet 复合,步长 \((w_1, w_2, w_1)\),其中: $\(w_1 = \frac{1}{2 - 2^{1/3}}, \quad w_2 = 1 - 2w_1\)$
注意 \(w_2 < 0\)!这意味着"时间倒退一小段"——这是辛方法达到高阶的代价。
Gauss-Legendre collocation:任意阶的隐式辛 RK(Thm VI.4.2)。阶数 \(2s\),\(s\) 级。对 \(s = 1\) 即隐式中点法(1阶辛)。
⚠️ 常见陷阱¶
💡 概念误区:认为"辛积分器 = 自动保能量" - 如上所述,辛积分器保的是**修正 Hamiltonian**,不是原始 \(H\) - 如果需要**精确**保能量,用 discrete gradient methods(如 Gonzalez 1996),但它们不保辛 - 不可能同时精确保辛和精确保能量——除非是精确解(Ge-Marsden 1988 定理)
⚠️ 编程陷阱:对非可分 Hamiltonian 直接用 Verlet
- Störmer-Verlet 的显式形式只对 \(H = T(p) + V(q)\) 成立
- 对一般 \(H(q, p)\)(如含磁场项 \(H = |p - eA(q)|^2/(2m) + V(q)\)),需要隐式中点法或 splitting 技巧
- 机器人中 Coriolis 项使 \(H\) 不完全可分——Drake 的 SemiExplicitEuler 只声称 "momentum conserving" 而非严格辛
练习¶
- 对 1D 谐振子 \(H = (p^2 + q^2)/2\),用 Symplectic Euler 积分 \(10^4\) 步,画出相空间轨道。与 RK4 比较。
- 手推:对 Kepler 问题 \(H = p^2/2 - 1/|q|\),计算 Störmer-Verlet 的第一阶修正 Hamiltonian \(h^2 H_3\)。
- 实现 Yoshida 4 阶方法,用于 Kepler 问题,验证能量漂移为 \(O(h^4)\) 有界。
§6 Lie-Poisson 约化 ⭐⭐⭐⭐¶
6.1 动机:从 Euler 方程到辛约化¶
回顾 30_SO3_SE3 中的刚体 Euler 方程:
其中 \(\Pi \in \mathbb{R}^3\) 是体坐标角动量。这个方程有两个守恒量: - 能量 \(H = \frac{1}{2}\Pi^\top I^{-1}\Pi\) - 角动量模 \(|\Pi|^2\)
轨迹因此被限制在 \(S^2 \cap \{H = E\}\) 上——一维曲线!
问题:Euler 方程是从哪里来的?它看起来不像 Hamilton 方程(只有 \(\Pi\) 没有共轭"\(q\)")。答案是:它是从 \(T^*SO(3)\) 上的 Hamilton 方程通过辛约化得到的。
6.2 Poisson 流形与 Poisson 括号¶
定义:Poisson 流形 \((P, \{·,·\})\) 比辛流形更一般。\(P\) 无需偶数维,无需非退化。Poisson 括号 \(\{·,·\}: C^\infty(P) \times C^\infty(P) \to C^\infty(P)\) 满足: - 反对称:\(\{F, G\} = -\{G, F\}\) - Leibniz:\(\{F, GH\} = G\{F,H\} + H\{F,G\}\) - Jacobi:\(\{F, \{G,H\}\} + \{G, \{H,F\}\} + \{H, \{F,G\}\} = 0\)
辛流形都是 Poisson 的:定义 \(\{F, G\} = \omega(X_F, X_G)\)。反之不成立——Poisson 流形可以是奇数维的,也可以退化。
6.3 Casimir 函数¶
定义:函数 \(C \in C^\infty(P)\) 称为 Casimir 函数,若 \(\{C, F\} = 0\) 对所有 \(F\) 成立。
- 在辛流形上,Casimir 只能是常数(非退化性)
- 在一般 Poisson 流形上可以是非平凡函数
- 物理意义:Casimir 函数沿任何 Hamilton 流都守恒——它是"超级守恒量"
例子:\(so(3)^* \cong \mathbb{R}^3\) 上,\(C(\Pi) = |\Pi|^2\) 是 Casimir。这解释了为什么**角动量的模对任何 Hamiltonian 都守恒**——它是 Poisson 结构本身的性质,不依赖于具体的 \(H\)。
6.4 \(\mathfrak{g}^*\) 上的 Lie-Poisson 结构¶
李代数 \(\mathfrak{g}\) 的对偶空间 \(\mathfrak{g}^*\) 上有**典则 Lie-Poisson 括号**:
其中 \(dF(\mu) \in \mathfrak{g}\)(通过规范同构 \(T^*_\mu\mathfrak{g}^* \cong \mathfrak{g}\)),\([·,·]\) 是 \(\mathfrak{g}\) 中的 Lie 括号。
对 \(SO(3)\):\(\mathfrak{so}(3)^* \cong \mathbb{R}^3\),Lie 括号 = 叉积,得:
Hamilton 方程 \(\dot F = \{F, H\}\) 对 \(F = \Pi_i\) 给出:
这就是 Euler 刚体方程! 它是 \(so(3)^*\) 上的 Lie-Poisson Hamilton 方程。
6.5 辛叶与 Coadjoint orbits¶
定理(Kirillov-Kostant-Souriau, KKS):Poisson 流形 \(\mathfrak{g}^*\) 可分层为**辛叶**——每层上 Poisson 括号由某个辛结构诱导。
对 \(SO(3)^* \cong \mathbb{R}^3\):辛叶是**各半径的球面 \(S^2_r\)** + 原点 \(\{0\}\)。
- \(S^2_r\) 是 2 维辛流形,辛形式 \(\omega_\mathcal{O} = \frac{1}{r}\,dA\)(球面面积元的标量倍)
- Euler 刚体轨迹"困在球面上"——因为 \(|\Pi|^2\) 是 Casimir
几何图像:Euler top 的轨迹是 \(S^2_{|\Pi|}\) 与能量椭球 \(\{H = E\}\) 的交线。当 \(I_1 > I_2 > I_3\) 时: - 绕 \(\Pi_1\) 轴(最大惯量)旋转是稳定的 - 绕 \(\Pi_3\) 轴(最小惯量)旋转是稳定的 - 绕 \(\Pi_2\) 轴(中间惯量)旋转是**不稳定的**(经典结论:网球/手机绕中间轴的翻转)
6.6 从 \(T^*G\) 到 \(\mathfrak{g}^*\) 的约化¶
定理(Marsden-Ratiu Thm 13.1.1):
即把 \(T^*G\)(辛,\(2\dim G\) 维)关于 \(G\) 的左作用取商,得到 \(\mathfrak{g}^*\)(Poisson,\(\dim G\) 维)。
对 SO(3) 刚体的具体含义: - 完整相空间:\(T^*SO(3)\),维度 6(\(R\) + 体坐标动量 \(\Pi\)) - 左 SO(3) 作用:"改变空间坐标系" \(R \mapsto LR\),不影响体坐标物理 - 约化:\(T^*SO(3)/SO(3) \cong so(3)^* \cong \mathbb{R}^3\),维度 3 - 约化后方程:Euler 方程 \(\dot\Pi = \Pi \times (I^{-1}\Pi)\)
物理意义:Euler 方程描述了"从体坐标看的角动量演化"。空间坐标信息(\(R\))被"商掉了"——因为自由刚体的运动不依赖于它在空间中的朝向(各向同性)。
6.7 从 Euler 方程到工程实践¶
Euler 方程的工程意义:\(\dot\Pi = \Pi \times (I^{-1}\Pi)\) 不仅是理论优雅——它直接决定了以下工程问题:
1. 卫星姿态稳定性
绕最大或最小惯量轴旋转是稳定的;绕中间轴旋转是不稳定的。这是由 Euler 方程的相图直接读出的(能量椭球与角动量球面的交线在中间轴附近是鞍点连接线)。
实际事故:Explorer 1 卫星(1958)设计为绕长轴旋转(最小惯量轴),但内部阻尼使其翻转到绕短轴旋转(最大惯量轴)——能量耗散趋向最小动能态。这是因为固定 \(|\Pi|^2\)(Casimir 守恒),\(H = \Pi^\top I^{-1}\Pi/2\) 最小化时 \(\Pi\) 对齐 \(I_\text{max}\) 方向。
2. 网球/手机翻转实验
抛出一个手机使其绕中间轴旋转——它会自发翻转(Dzhanibekov effect / tennis racket theorem)。这是中间轴不稳定性的宏观表现。
数学解释:中间轴附近的 Euler 方程线性化给出一个正特征值(不稳定流形)和一个负特征值(稳定流形)。异宿轨道连接两个不稳定平衡点——轨迹沿异宿轨道半绕 \(S^2\) 一周后回到附近,看起来像"翻转"。
3. 力矩自由陀螺仪的进动
力矩自由对称陀螺(\(I_1 = I_2 \neq I_3\))的 Euler 方程有解析解:\(\Pi_1 = A\cos\Omega t\), \(\Pi_2 = A\sin\Omega t\), \(\Pi_3 = \text{const}\),进动频率 \(\Omega = (I_3 - I_1)\Pi_3/(I_1 I_3)\)。这是 CMG(Control Moment Gyro)控制的理论基础。
反事实推理:如果刚体三个惯量相等(\(I_1 = I_2 = I_3 = I\)),Euler 方程变为 \(\dot\Pi = 0\)——角动量恒定,没有进动、没有章动、没有不稳定。所有有趣的陀螺现象都来自**惯量的不对称性**。
6.8 SE(3) 的 Lie-Poisson 方程¶
SE(3) = \(\mathbb{R}^3 \rtimes\) SO(3) 的 Lie 代数 \(\mathfrak{se}(3) = \mathbb{R}^3 \rtimes \mathfrak{so}(3)\),coadjoint 作用:
Kirchhoff 水下刚体方程:自由刚体在理想流体中运动的方程是 \(\mathfrak{se}(3)^*\) 上的 Lie-Poisson 方程:
其中 \((v, \omega) = I^{-1}(p, \pi)\),\(I\) 是含附加质量的惯量张量。
Casimir 函数:SE(3)* 有两个 Casimir:\(|p|^2\) 和 \(p \cdot \pi\)(螺旋不变量)。这两个量对任何 Hamiltonian 都守恒。
辛叶分类: - \(|p| > 0\), \(p\cdot\pi \neq 0\):6 维正则 orbit - \(|p| > 0\), \(p\cdot\pi = 0\):退化到 4 维 - \(|p| = 0\):退化到 \(so(3)^*\) 的 orbit(球面或原点)
6.9 Marsden-Weinstein 辛约化定理¶
完整陈述:设 \((P, \omega)\) 是辛流形,\(G\) Hamilton 等变作用,\(J: P \to \mathfrak{g}^*\) 动量映射。设 \(\mu \in \mathfrak{g}^*\) 是 \(J\) 的正则值,\(G_\mu\) 是 \(\mu\) 的 isotropy subgroup。若 \(G_\mu\) 自由适当作用于 \(J^{-1}(\mu)\),则:
是光滑流形,带唯一辛形式 \(\omega_\mu\) 满足 \(\pi_\mu^*\omega_\mu = \iota_\mu^*\omega\)。
维度公式:\(\dim P_\mu = \dim P - \dim G - \dim G_\mu\)
机器人应用:对浮基 humanoid,\(Q = SE(3) \times \mathbb{R}^n\),\(G = SE(3)\)。当无外力时 \(\mu = 0\)(零动量): $\(\dim P_0 = 2(6+n) - 6 - 6 = 2n\)$
约化后系统只有 \(n\) 个内部自由度——这就是"浮基消失"的几何原因。centroidal dynamics(60_约束动力学 §8)是这个约化的局部坐标表达。
⚠️ 常见陷阱¶
💡 概念误区:认为"Lie-Poisson 方程 = Euler 方程的一种写法" - 新手想法:"\(\dot\Pi = \Pi \times I^{-1}\Pi\) 是 Euler 方程,为什么非要叫 Lie-Poisson?" - 实际上:Lie-Poisson 结构给出了**所有** Lie 群上的约化力学。不只是 SO(3)——SE(3)(刚体平移+旋转)、无穷维 Lie 群(流体力学的 Euler 方程也是 Lie-Poisson!) - 理解 Lie-Poisson 意味着你能处理**任何对称性约化**,而不只是刚体
🧠 思维陷阱:认为"约化 P_μ 一定是光滑" - 若 \(\mu\) 不是正则值或 \(G_\mu\) 不自由作用,\(P_\mu\) 是奇异辛空间 - 机器人中出现在对称配置(双腿完全对称站立)——线性化控制需特别处理
练习¶
- 对 Euler top(\(I = \text{diag}(2, 3, 5)\)),画出 \(S^2\) 上的能量椭球截线(phase portrait),标出稳定/不稳定平衡点。
- 验证 \(C(\Pi) = |\Pi|^2\) 对 \(so(3)^*\) 的 Lie-Poisson 括号是 Casimir:计算 \(\{C, F\}_-\) 对任意 \(F\)。
- 对 SE(3) 的 Lie-Poisson 方程,写出 Kirchhoff 水下刚体方程 \(\dot p = p \times \omega\), \(\dot\pi = \pi \times \omega + p \times v\)。
§7 机器人应用 ⭐⭐⭐¶
7.1 辛积分器用于长时仿真¶
天体力学与空间机器人:Mars rover 1 年任务(\(\sim 10^7\) 步)、ISS 对接推进仿真、小行星探测编队——必须用辛方法。JPL 的 MONTE 太空导航软件、NASA GMAT、开源 REBOUND (Rein & Liu 2012) 全是辛积分器。
分子动力学:LAMMPS、GROMACS、OpenMM 的核心积分器都是 Velocity Verlet。机器人应用:软体机器人的质点-弹簧网络(SOFA framework 中的实时手术仿真)。
SO(3)/SE(3) 姿态控制:Taeyoung Lee & McClamroch 2005 的 Lie 群变分积分器——3D pendulum、spacecraft attitude 的 10 倍更大步长仿真。在 CubeSat 控制中广泛使用。
为什么 MuJoCo/Pinocchio/Drake 默认不是辛的? 因为接触(complementarity)破坏了连续 Hamiltonian 结构。辛积分器在无接触阶段有优势,但接触瞬间需要非辛处理(回顾 60_约束动力学 §6-7)。
7.2 动量守恒在浮基控制中的利用¶
自由漂浮机械臂(空间站机械臂):SE(3) 对称 → 6D 动量守恒。关节运动会改变基座姿态——反作用力矩。控制策略: 1. 规划关节轨迹使基座姿态变化最小(利用动量守恒约束) 2. 利用 CMM(Centroidal Momentum Matrix)分配角动量
腿足机器人的水平动量:在平坦地面上,水平方向近似无外力(接触摩擦在平衡时对消)。MPC 中可以利用"水平动量近似守恒"减少决策变量。
Capture Point 的辛解释:LIPM 下质心水平动力学是 \(\ddot c = \omega^2(c - p_{ZMP})\)——这是一个**具有不稳定平衡点的 Hamilton 系统**(倒摆)。Capture Point 是"刚好落在分界线上使系统收敛"的相空间流形。在辛语言中,这是 separatrix(分隔同宿轨道/异宿轨道的不变流形)。
7.3 Poincaré 映射与步态稳定性¶
周期步态分析:对周期轨道 \(\gamma\),取横截面 \(\Sigma\),第一回归映射 \(\Pi: \Sigma \to \Sigma\) 是 Poincaré 映射。
辛 Poincaré 映射的性质: - 若原系统辛且 \(\Sigma\) 选在能量面 \(H = E\) 上,则 \(\Pi\) 也是辛映射 - 辛映射的特征值必成对出现:\((\lambda, 1/\lambda)\) 或在单位圆上 - 推论:不存在"渐近稳定周期步态"——辛映射无吸引子
Passive walker 的边际稳定性:这解释了为何 passive walker(无能量输入的被动行走)只能是**边际稳定**(特征值在单位圆上),而非渐近稳定。要获得渐近稳定性,必须加**耗散**(摩擦、碰撞损失)或**控制输入**——这两者都破坏辛结构。
HZD(Hybrid Zero Dynamics)框架(Grizzle 等)中的**不变面**(zero dynamics manifold)是 \(T^*Q\) 的 Lagrangian 子流形;步态稳定性靠 Poincaré return map 的特征值分析。
7.4 Lie 群变分积分器¶
问题:在 SO(3) 上用普通 RK,\(R_{k+1} = R_k + h\,\dot R_k\) 会让 \(R\) 离开 SO(3) 流形。单位化 \(R_{k+1} \to \text{proj}_{SO(3)}(R_{k+1})\) 破坏了动量守恒和辛性。
解决方案(Marsden-West 2001; Lee-Leok-McClamroch):直接在 Lie 群上写离散 Hamilton 原理。对 SO(3) 刚体:
其中 \(F_k \in SO(3)\), \(J_d\) 是离散惯性张量。
保证性质: - \(R_k \in SO(3)\)(自动,无需重投影) - 保辛、保角动量(离散 Noether 定理) - 长时能量漂移 \(O(h^2)\) 且有界
⚠️ 常见陷阱¶
⚠️ 编程陷阱:Drake 的 SemiExplicitEuler 不等于严格 symplectic Euler - Drake 官方说:"When a mechanical system is Hamiltonian, the semi-explicit Euler integrator is symplectic" - 但多体系统因 Coriolis/gyroscopic 项不完全 Hamiltonian - Drake PR #4340 中 Sherman 评论明确:只声称 "momentum conserving" - 不要期望 Drake 在接触密集任务中"节能"
练习¶
- 用 Python + Störmer-Verlet 积分 Kepler 问题 \(10^6\) 步。画出能量误差 \(|H(t) - H(0)|/|H(0)|\) vs 时间。与 RK4 比较。
- 对 SO(3) 刚体(Euler top),实现 Lee-Leok-McClamroch 的 Lie 群变分积分器。验证 \(R_k \in SO(3)\)(无
det(R) - 1偏差)。 - 跨章综合题:在 Pinocchio 中加载一个单摆模型(1-DOF),分别用 Euler、RK4、Verlet 积分 \(10^4\) 步。比较能量漂移。解释为什么 Pinocchio 默认的
integrate不是辛的。
§8 与 RL 的联系:Natural Policy Gradient 的辛解释 ⭐⭐⭐⭐¶
8.1 动机:为什么 RL 研究者需要辛几何¶
Natural Policy Gradient(NPG,Kakade 2001)和 TRPO/PPO 是深度强化学习的核心算法。它们的核心思想是:不在参数空间 \(\theta\) 中走欧氏梯度,而是走 Fisher 信息度量下的自然梯度。
但很少有人问:为什么 Fisher 信息矩阵是"正确"的度量? 辛几何给出了答案。
8.2 信息几何基础¶
Fisher 信息矩阵:对参数化概率分布族 \(\{p_\theta(x)\}\):
\(F(\theta)\) 是参数空间 \(\Theta\) 上的 Riemannian 度量——它衡量"参数 \(\theta\) 变化一小步,分布变化多大"(用 KL 散度的二阶近似):
8.3 Natural Gradient 的定义¶
普通梯度(Euclidean):\(\theta_{k+1} = \theta_k - \eta\,\nabla L(\theta_k)\)
自然梯度(Amari 1998):\(\theta_{k+1} = \theta_k - \eta\,F(\theta_k)^{-1}\nabla L(\theta_k)\)
直觉:在参数空间的"平坦方向"(\(F\) 小特征值方向),普通梯度步长过小;自然梯度用 \(F^{-1}\) 放大这些方向,使步长在**分布空间**中均匀。
8.4 辛解释:Hamilton 系统 on \(T^*\Theta\)¶
构造:定义 phase space \(T^*\Theta\),坐标 \((\theta, p)\)。定义 Hamiltonian:
其中 \(L(\theta)\) 是损失函数("势能"),\(\frac{1}{2}p^\top F^{-1}p\) 是"动能"(由 Fisher 度量决定)。
Hamilton 方程: $\(\dot\theta = \frac{\partial H}{\partial p} = F(\theta)^{-1}p\)$ $\(\dot p = -\frac{\partial H}{\partial\theta} = -\nabla L - \frac{1}{2}\frac{\partial(p^\top F^{-1}p)}{\partial\theta}\)$
在阻尼极限(overdamped dynamics,\(p = F\dot\theta\) 被瞬时平衡):
这就是 Natural Gradient flow! 它是 \(T^*\Theta\) 上 Hamilton 系统在强阻尼极限下的投影。
8.5 概念对照表¶
| RL/优化 概念 | 辛几何对象 | 解释 |
|---|---|---|
| 参数 \(\theta\) | \(Q\) 上坐标(配置空间) | 策略的"位置" |
| 梯度 \(\nabla L\) | 1-form \(dL\) | 损失的方向导数 |
| Fisher 信息 \(F(\theta)\) | \(Q\) 上 Riemannian 度量 | 参数空间的"距离" |
| Natural gradient \(F^{-1}\nabla L\) | Hamilton 向量场的位置分量 | "辛梯度"投影 |
| KL 散度 | 辛形式决定的二次型 | 分布距离的局部近似 |
| HMC 采样 | Störmer-Verlet on \(T^*\Theta\) | 辛积分器直接应用 |
| TRPO trust region | 约束 \(\delta^\top F\delta \leq \epsilon\) | Fisher 度量下的步长限制 |
8.6 为什么 Fisher 信息是"正确"的度量?¶
深层原因:考虑两个参数化分布 \(p_\theta\) 和 \(p_{\theta+\delta\theta}\)。它们的"距离"用 KL 散度衡量:
这是 KL 散度的**二阶 Taylor 展开**——\(F\) 是分布空间度量的局部二次近似。
与辛几何的联系:通过 Legendre 变换,\(F(\theta)\) 在配置空间 \(\Theta\) 上定义了 Riemannian 度量。这诱导了余切丛 \(T^*\Theta\) 上的 kinetic Hamiltonian \(T(p) = \frac{1}{2}p^\top F^{-1}p\)。加上损失函数 \(V(\theta) = L(\theta)\) 作为势能,得到完整的 Hamiltonian \(H = T + V\)。
因此:Natural Gradient 是 Hamilton 系统的阻尼极限,HMC 是 Hamilton 系统的辛积分。两者通过同一个 Hamiltonian 连接。
类比: - 普通梯度下降 ↔ 均匀介质中的运动(各方向同速) - Natural Gradient ↔ 弯曲空间中的测地线运动(沿曲率最小方向前进) - HMC ↔ 在弯曲空间中的 Hamiltonian 运动(利用动能探索)
8.7 TRPO/PPO 的辛几何根源¶
**TRPO(Trust Region Policy Optimization)**的约束:
这是**Fisher 度量下的 trust region**——不是欧氏球,而是椭球。解为 \(\delta\theta^* = \sqrt{\epsilon/(\nabla L^\top F^{-1}\nabla L)} \cdot F^{-1}\nabla L\)。
PPO 用 clipping 近似替代显式 KL 约束,牺牲了严格的辛结构保证,换取了更简单的实现。
深层问题:为什么 TRPO 比普通 policy gradient 收敛更好?因为 Fisher trust region 保证了**分布空间中的步长均匀**——不会在某些参数方向走太远(导致策略崩溃),也不会在其他方向步长太小(导致收敛慢)。这正是辛结构(通过 Fisher 度量)提供的"几何正确性"。
8.8 Hamiltonian Monte Carlo (HMC) = 辛积分¶
HMC 算法(Duane-Kennedy-Pendleton-Roweth 1987;Neal 2011):
- 采样 \(p \sim \mathcal{N}(0, F(\theta))\)
- 用 Störmer-Verlet 积分 \(L\) 步:\((\theta_0, p_0) \to (\theta_L, p_L)\)
- Metropolis 接受/拒绝
为什么用辛积分器? 因为 Hamilton 流保相空间体积(Liouville 定理),这保证了 detailed balance。如果用非辛积分器,相空间体积收缩/膨胀会**系统偏倚**采样分布。
Stan、PyMC、NumPyro 的 NUTS 采样器都基于辛积分。HMC 在高维(如 1000+ 参数)中远优于 Metropolis-Hastings。
8.7 Fisher 矩阵的实际计算¶
直接计算 \(F(\theta)\) 对大型神经网络不可行(\(O(d^2)\) 存储,\(d\) = 参数数)。实践中用近似:
| 方法 | 核心思想 | 复杂度 | 代表库 |
|---|---|---|---|
| K-FAC (Martens & Grosse 2015) | Kronecker 分解:\(F \approx A \otimes G\) | \(O(d)\) | kfac-pytorch |
| E-KFAC (George et al. 2018) | 特征分解修正 K-FAC | \(O(d)\) | nngeometry |
| PSGD (Li 2017) | Lie 群 \(GL(n)\) 上乘法更新预条件子 | \(O(d)\) | psgd_torch |
| Diagonal | 只保留 \(F\) 对角线 | \(O(d)\) | Adam(某种意义上) |
PSGD 与辛几何的直接联系:PSGD 在 \(GL(n, \mathbb{R})\)(可逆矩阵群)上用**乘法更新**构造预条件子——这是 Lie 群优化的直接体现,与本章 §6 的 Lie-Poisson 结构在精神上一脉相承。
⚠️ 常见陷阱¶
🧠 思维陷阱:认为"Natural Gradient 总是比 Adam 好" - Fisher 矩阵可能极度病态(条件数 \(10^9+\)),直接求逆数值发散 - 实践中 K-FAC 的 Kronecker 近似可能不够准确 - Adam 可视为"对角 Fisher"近似——在很多情况下够用且更便宜 - 正确思维:Natural Gradient 给出了"理论最优方向",但工程实现需要权衡精度和代价
⚠️ 编程陷阱:HMC 中 Verlet 步数 \(L\) 选错 - \(L\) 太小:探索不够,接受率高但自相关高 - \(L\) 太大:能量漂移超过接受阈值,拒绝率暴增 - NUTS(No-U-Turn Sampler)自动选择 \(L\)——推荐使用
练习¶
- 对 Gaussian policy \(\pi_\theta(u|x) = \mathcal{N}(\mu_\theta(x), \Sigma)\)(\(\Sigma\) 固定),计算 Fisher 信息矩阵 \(F(\theta)\)。
- 实现一个简单的 HMC 采样器(用 Störmer-Verlet),采样 2D Gaussian。验证 Metropolis 接受率 > 90%(步长正确时)。
- 解释为什么 PPO 的 KL penalty \(D_{KL}(\pi_\text{old} \| \pi_\text{new}) \leq \epsilon\) 等价于 Fisher 度量下的 trust region \(\|\delta\theta\|_F \leq \sqrt{2\epsilon}\)。
本章小结¶
| 知识点 | 核心内容 | 关键公式 | 机器人应用 |
|---|---|---|---|
| 辛流形 | \((M, \omega)\), \(d\omega=0\), 非退化 | \(\omega = dq^i\wedge dp_i\) | 相空间结构 |
| Darboux 定理 | 辛几何无局部不变量 | Moser trick | 正则坐标选择 |
| Hamilton 流保辛 | \(\mathcal{L}_{X_H}\omega = 0\) | \(d(dH) + i_{X_H}(d\omega) = 0\) | 所有力学的基础 |
| Liouville 定理 | 相空间体积不变 | \(\varphi_t^*(\omega^n) = \omega^n\) | 统计力学/不确定传播 |
| 动量映射 | \(J: P \to \mathfrak{g}^*\) | \(i_{\xi_P}\omega = dJ_\xi\) | 守恒量统一框架 |
| Noether 辛版 | \(G\)-不变 \(\Rightarrow\) \(J\) 守恒 | \(\{J_\xi, H\} = 0\) | 角动量/线动量 |
| 辛积分器 | \(\Phi_h^*\omega = \omega\) | \(M^\top J M = J\) | 长时仿真 |
| Backward error | 修正 \(\tilde H = H + O(h^r)\) | 能量有界震荡 | 解释辛优势 |
| Lie-Poisson | \(\mathfrak{g}^*\) 上 Hamilton | \(\{F,G\}_- = -\mu\cdot[dF,dG]\) | Euler 刚体 |
| 辛约化 | \(P_\mu = J^{-1}(\mu)/G_\mu\) | Marsden-Weinstein | 浮基降维 |
| NPG 辛解释 | \(F^{-1}\nabla L\) = Hamilton 投影 | \(H = L + p^\top F^{-1}p/2\) | RL 优化 |
累积项目:本章新增模块¶
项目:手写辛积分器库
本章新增:辛积分与 Lie 群模块
Ch1 向量类 → 基本线性代数
Ch2 矩阵乘法 → LU 分解
Ch3 特征值 → SVD
Ch4 最小二乘 → 伪逆
Ch5 常微分方程 → RK4
Ch6 辛积分器(本章新增):
├── Symplectic Euler (1 阶辛)
├── Störmer-Verlet (2 阶辛)
├── Yoshida 4 阶 (4 阶辛)
├── SO(3) Lie 群 Verlet (保流形)
├── Kepler 问题长时测试
└── 能量漂移对比图生成
延伸阅读¶
| 资源 | 类型 | 难度 | 说明 |
|---|---|---|---|
| Arnold Mathematical Methods of CM Ch.7-10 | 教材 | ⭐⭐⭐⭐ | 辛几何经典,俄式直觉 |
| Marsden & Ratiu Intro to Mech. & Symmetry | 教材 | ⭐⭐⭐⭐ | 约化理论标准 |
| Hairer-Lubich-Wanner GNI Ch.VI, IX | 教材 | ⭐⭐⭐⭐ | 辛积分器圣经 |
| da Silva Lectures on Symplectic Geometry | 教材 | ⭐⭐⭐ | 纯数学最清晰 |
| Lee-Leok-McClamroch Global Formulations Ch.6-7 | 教材 | ⭐⭐⭐⭐ | 机器人直接可用 |
| Betancourt 2017 (arXiv:1701.02434) | 综述 | ⭐⭐⭐ | HMC 与辛积分器最佳科普 |
| 冯康-秦孟兆《哈密尔顿辛几何算法》 | 教材 | ⭐⭐⭐⭐ | 国内辛算法标准 |
| Kobilarov-Marsden 2011 (DMOC) | 论文 | ⭐⭐⭐⭐ | 变分积分器用于最优控制 |
| Kakade 2001 (NPG) | 论文 | ⭐⭐⭐ | Natural Policy Gradient 原始 |
| GeometricIntegrators.jl | 代码库 | ⭐⭐⭐⭐⭐ | Julia 最全辛积分器 |
🔧 故障排查手册¶
| 症状 | 可能原因 | 排查步骤 | 相关章节 |
|---|---|---|---|
| RK4 积分 Kepler 问题能量单调漂移 | 非辛方法的固有缺陷 | 1.换 Verlet 2.比较能量误差曲线 3.画相空间轨道 | §5 |
| SO(3) 积分后 \(\det(R) \neq 1\) | 用了普通 RK 导致流形漂出 | 1.换 Lie 群积分器 2.用 \(R_{k+1} = R_k\exp(h\hat\Omega)\) 3.检查正交性 | §7.4 |
| HMC 接受率 < 50% | Verlet 步长过大或步数过多 | 1.减小 \(h\) 2.减少 \(L\) 3.用 NUTS 自适应 4.检查能量跳变 | §8.6 |
| Natural Gradient 数值发散 | Fisher 矩阵病态 | 1.加 Tikhonov damping \(F + \lambda I\) 2.用 K-FAC 近似 3.检查条件数 | §8.7 |
| Lie-Poisson 积分角动量模不守恒 | Casimir 未精确保持 | 1.检查是否用了 Casimir-preserving 方法 2.投影回球面 3.减小步长 | §6.3 |
| Poincaré 映射特征值不成对 | 计算错误或系统非辛 | 1.检查是否有耗散 2.验证 \(\det(D\Pi) = 1\) 3.检查能量面选取 | §7.3 |
§9 Poisson 括号的计算与应用 ⭐⭐¶
9.0.1 Poisson 括号的计算法则¶
在 Darboux 坐标 \((q^i, p_i)\) 下,Poisson 括号为:
基本性质: - \(\{q^i, p_j\} = \delta^i_j\)(正则对易关系) - \(\{q^i, q^j\} = 0\), \(\{p_i, p_j\} = 0\) - \(\{F, H\} = \dot F\)(\(F\) 沿 Hamilton 流的时间导数) - \(\{F, H\} = 0 \Leftrightarrow F\) 是守恒量
反对称性:\(\{F, G\} = -\{G, F\}\)
Leibniz 规则:\(\{FG, H\} = F\{G, H\} + G\{F, H\}\)
Jacobi 恒等式:\(\{F, \{G, H\}\} + \{G, \{H, F\}\} + \{H, \{F, G\}\} = 0\)
9.0.2 Poisson 括号与守恒量¶
定理:若 \(F\) 和 \(G\) 都是 \(H\) 的守恒量(\(\{F, H\} = 0\), \(\{G, H\} = 0\)),则 \(\{F, G\}\) 也是守恒量。
证明:由 Jacobi 恒等式,\(\{\{F,G\}, H\} = -\{G, \{H,F\}\} - \{H, \{F,G\}\} = 0 + 0 = 0\)。∎
意义:守恒量在 Poisson 括号下"封闭"——它们构成一个 Lie 代数。
9.0.3 角动量的 Poisson 括号¶
对 \(L_i = \epsilon_{ijk}q^j p_k\)(角动量分量):
这正是 \(\mathfrak{so}(3)\) 的结构常数!角动量分量的 Poisson 括号关系再现了旋转群的 Lie 代数。
本质洞察:动量映射 \(J: P \to \mathfrak{g}^*\) 的等变性正是上述关系的坐标无关版本。Poisson 括号把相空间的代数结构与对称群的 Lie 代数结构**双向绑定**。这不是巧合——它是辛几何的核心定理。
9.0.4 Poisson 括号与量子力学的联系¶
经典的 Poisson 括号 \(\{q^i, p_j\} = \delta^i_j\) 在量子力学中变成了**对易关系** \([\hat q^i, \hat p_j] = i\hbar\delta^i_j\)。
量子化规则(Dirac):\(\{F, G\}_\text{classical} \to \frac{1}{i\hbar}[\hat F, \hat G]_\text{quantum}\)
这个对应关系的存在性——即经典力学可以被"量子化"——本质上依赖于辛结构。没有辛结构的系统不能被正则量子化。
(虽然这对机器人没有直接应用,但理解它有助于欣赏辛几何的普适性——它不仅仅是"经典力学的数学语言"。)
§10 Pontryagin 原理的辛几何表述 ⭐⭐⭐¶
9.1 动机:最优控制 = 相空间上的 Hamilton 流¶
在 10_变分法 中,我们学过 Pontryagin 最大值原理(PMP)的经典陈述。但 PMP 的深层含义往往被"计算技巧"掩盖——实际上,最优控制轨道恰是余切丛 \(T^*M\) 上某个 Hamiltonian 的流线。这个认识不仅是理论优雅,更直接影响了 DDP/iLQR 的数值性质。
9.2 辛表述¶
最优控制问题: $\(\min_{u(\cdot)} \int_0^T L(x, u)\,dt \quad \text{s.t.} \quad \dot x = f(x, u), \quad x \in M\)$
定义 Pontryagin Hamiltonian: $\(H(x, \lambda, u) = \langle\lambda, f(x, u)\rangle - L(x, u)\)$
其中 \(\lambda \in T^*_x M\) 是 costate(余切向量/伴随变量/Lagrange 乘子)。
PMP 给出的最优性条件:
| 方程 | 含义 |
|---|---|
| \(\dot x = \partial H/\partial\lambda = f(x, u^*)\) | 状态方程 |
| \(\dot\lambda = -\partial H/\partial x\) | 协态方程 |
| \(u^*(t) \in \arg\max_u H(x, \lambda, u)\) | 极大值原理 |
关键观察:状态方程和协态方程合在一起就是 \(T^*M\) 上的 Hamilton 正则方程!将 \(u = u^*(x, \lambda)\) 代入 \(H\) 得到约化 Hamiltonian \(H^*(x, \lambda) = H(x, \lambda, u^*(x, \lambda))\),则最优轨道 \((x^*(t), \lambda^*(t))\) 是 \(T^*M\) 上 \(H^*\) 的 Hamilton 流。
9.3 Costate = 动量的解释¶
\(\lambda(t)\) 不是数值 trick——它是余切向量,即"动量"。 具体地: - \(\lambda(t) = \partial V / \partial x(x(t), t)\),其中 \(V\) 是值函数(Bellman 方程的解) - \(\lambda\) 衡量"状态在此点偏离一点,最优代价变化多少"
机器人应用: - Crocoddyl/ALTRO 的 shooting 方法中,\(V_{xx}\)(值函数 Hessian)是 \(T^*M\) 上 Lagrangian 子流形(optimal return manifold)的曲率张量 - DDP 的 backward pass 中 Riccati 方程 \(P_{k-1} = Q + A^\top P_k A - K^\top R K\) 是**辛流的线性化**(线性 Hamilton 系统有 Riccati 解) - iLQR on Lie Groups(Giftthaler-Buchli 2017)利用此结构提升收敛率
9.4 DMOC:离散力学与最优控制¶
DMOC(Discrete Mechanics and Optimal Control)(Kobilarov-Marsden 2011):把变分积分器直接嵌入最优控制,得到"离散 PMP"。
优势: 1. 离散 Noether 定理自动保守恒量 2. 离散辛结构使 NLP 的 Hessian 结构更好 3. 在长时最优控制中更稳定
⚠️ 常见陷阱¶
🧠 思维陷阱:认为"costate 没有物理意义" - 新手想法:"\(\lambda\) 只是 Lagrange 乘子,计算完就扔掉" - 实际上:\(\lambda\) 是值函数的梯度、是灵敏度信息、是控制策略的核心 - DDP/iLQR 的整个 backward pass 就是在追踪 \(\lambda\) 的演化
§10.1 Cotangent Bundle Reduction 与 Routh Reduction ⭐⭐⭐⭐¶
10.1 Cotangent bundle 约化¶
当 \(G\) 作用于 \(Q\) 时,\(T^*Q\) 自然辛,\(G\) 自然 Hamilton 作用且有动量映射。约化 \((T^*Q)_\mu\) **不总是**某个 \(T^*(Q/G)\)——一般包含一个"磁场项"(由**机械连接**的曲率给出)。
具体地(Marsden-Ratiu Vol II Ch.2):
10.2 Routh reduction¶
对循环坐标 \(\theta\)(\(\partial L/\partial\theta = 0\)),引入共轭动量 \(p_\theta = \partial L/\partial\dot\theta\)(守恒常数)。用 Routhian \(R = L - p_\theta\dot\theta\) 代替 \(L\),得到少 2 个自由度的 Lagrangian 系统。
在辛语言中,Routh reduction 就是 \(T^*Q // G_\mu\) 的局部坐标表示。
10.3 机器人应用¶
带反作用轮的卫星:轮的角坐标循环,轮角动量守恒。降维后得到**本体 attitude + 轮累积角动量**的 3 轴系统——这是姿控 MPC 的标准简化。
旋转对称四旋翼:绕 z 轴旋转对称 → yaw 角动量分量守恒 → 降维 1D。
§11 Arnold-Liouville 可积性与 KAM 定理 ⭐⭐⭐⭐¶
11.1 Arnold-Liouville 可积性定理¶
定理(Arnold §49):若 \(2n\) 维辛流形上的 Hamiltonian \(H\) 有 \(n\) 个函数独立且相互对合(\(\{F_i, F_j\} = 0\))的守恒量 \(F_1 = H, F_2, ..., F_n\),则:
- \(F\) 的公共水平集 \(M_f = \{F_i = f_i\}\) 的每个紧致连通分量同胚于 \(n\)-环面 \(\mathbb{T}^n\)
- 存在**作用-角变量** \((I, \varphi) \in \mathbb{R}^n \times \mathbb{T}^n\) 使 \(H = H(I)\)
- 运动是准周期的:\(I = \text{const}\), \(\dot\varphi = \omega(I) = \partial H/\partial I\)
例子: - Kepler 问题:\(n = 3\),三个守恒量(能量、角动量模、Laplace-Runge-Lenz 矢量分量) - 2D 谐振子:\(n = 2\),\(F_1 = H\), \(F_2 = p_1^2/(2m) + \omega_1^2 q_1^2/2\)
11.2 KAM 定理定性陈述¶
定理(Kolmogorov-Arnold-Moser):考虑近可积 Hamiltonian \(H = H_0(I) + \varepsilon H_1(I, \varphi)\)。若
- \(H_0\) 非退化:\(\det(\partial^2 H_0/\partial I^2) \neq 0\)
- 频率 \(\omega(I)\) 满足 Diophantine 条件:\(|k \cdot \omega| > \gamma|k|^{-\tau}\) 对所有 \(k \in \mathbb{Z}^n \setminus\{0\}\)
则对 \(\varepsilon\) 足够小,大部分(测度意义下)不变环面 \(\mathbb{T}^n\) 在扰动后仍然存在。
11.3 对机器人的启示¶
- 周期步态 = 退化的 KAM 环面:passive walker 的极限环是 2D 相空间中的 1D 环面
- 稳定域 = KAM 环面的残存:足式机器人的"不摔倒的初始条件集"在无耗散极限下与 KAM 环面相关
- Arnold diffusion = 摔倒:当扰动(地面不平、推力)太大,环面破裂,轨道可以"扩散"到远处——这是**摔倒**的几何含义
- \(n \geq 3\) 的特殊性:Arnold diffusion 只在 3 个以上自由度时出现(KAM 环面在 2 维中隔开相空间,但在高维中留有间隙)
§12 辛网络与物理先验学习 ⭐⭐⭐⭐¶
12.1 动机:把辛结构编码进神经网络¶
标准神经网络学到的动力学不保辛——预测的长时轨道会漂移能量。辛网络(Symplectic Networks)把辛结构作为归纳偏置(inductive bias)硬编码进网络架构。
12.2 Hamiltonian Neural Networks (HNN)¶
Greydanus-Dzamba-Sontag 2019:学一个 \(H_\theta(q, p)\),用 Hamilton 方程 \(\dot q = \partial H/\partial p\), \(\dot p = -\partial H/\partial q\) 积分。
结构: - 输入:\((q, p)\) - 网络输出:标量 \(H_\theta(q, p)\) - 微分:用 autograd 计算 \(\partial H/\partial q\), \(\partial H/\partial p\) - 积分:用辛积分器
优势:自动保辛、能量有界、长时稳定。
12.3 SympNets¶
Jin-Zhang-Zhu-Tang-Shah 2020:构造**辛层**(每层变换都是辛映射),堆叠后整体辛。
两种基本辛层: - 线性辛层:\(\begin{pmatrix}q'\\p'\end{pmatrix} = \begin{pmatrix}I & 0\\S & I\end{pmatrix}\begin{pmatrix}q\\p\end{pmatrix}\),\(S\) 对称 - 非线性辛层:\(q' = q\), \(p' = p + \nabla_q\sigma(q)\)(\(\sigma\) 是标量网络)
GeometricMachineLearning.jl(JuliaGNI)提供了 SympNet 的 Julia 实现。
12.4 与 RL 的结合¶
Symplectic ODE-Net for RL(Chen-Tao 2021):用辛 ODE 学环境模型,然后在辛模型上做 MPC/planning。
优势: - 模型预测在长 horizon 上更准确(不漂移能量) - 减少 sim-to-real gap(物理一致性更好) - 梯度通过辛积分器传播更稳定
§13 变分积分器与约束系统 ⭐⭐⭐¶
13.1 离散 Lagrangian 力学¶
离散 Hamilton 原理(Marsden-West 2001):用离散 Lagrangian \(L_d(q_k, q_{k+1}) \approx \int_{t_k}^{t_{k+1}} L(q, \dot q)\,dt\) 近似连续作用量。变分 \(\delta\sum L_d = 0\) 给出**离散 Euler-Lagrange 方程**:
13.2 离散 Noether 定理¶
定理(Marsden-West 2001, Acta Numerica):若离散 Lagrangian 在群 \(G\) 下不变(\(L_d(gq_k, gq_{k+1}) = L_d(q_k, q_{k+1})\)),则离散动量映射 \(J_d\) 精确守恒(非"几乎守恒",而是精确!)。
意义:变分积分器比一般辛积分器更强——辛积分器保辛但动量只近似守恒,变分积分器**同时精确保辛和精确保动量**。
13.3 SHAKE/RATTLE 在约束系统中的应用¶
回顾 60_约束动力学 §4.5 中的 SHAKE/RATTLE。它们是**约束系统的变分积分器**:
SHAKE(位置层约束 \(\varphi(q) = 0\)): 1. 做一步 Verlet 得到 \(\tilde q_{k+1}\) 2. 解 \(\varphi(q_{k+1}) = 0\) 修正位置
RATTLE(位置 + 速度层约束): 1. SHAKE 步骤 2. 解 \(J(q_{k+1})\dot q_{k+1} = 0\) 修正速度
关键性质:SHAKE/RATTLE 保辛、保约束、保动量(如果约束与对称性兼容)。
13.4 Lie 群上的约束变分积分器¶
对 SO(3) 刚体 + 约束(如重力陀螺),可在 Lie 群上构造约束变分积分器。关键步骤:
- 离散 Lagrangian on \(G\):\(L_d(g_k, f_k)\), \(f_k = g_k^{-1}g_{k+1}\)
- 约束变分:\(\delta g_k \in \ker J(g_k)\)
- 离散 KKT 系统:在 Lie 代数层面求解
应用:空间机器人在约束构型下的长时仿真(如抓取固定结构的操作)。
§14 Poincaré 回归定理与遍历性 ⭐⭐⭐¶
14.1 Poincaré 回归定理¶
定理(Poincaré 1890):设 \(\varphi_t\) 是保体积映射(如 Hamilton 流),\(A\) 是相空间中测度有限的可测集。则对 \(A\) 中几乎所有点 \(x\),存在 \(t_k \to \infty\) 使 \(\varphi_{t_k}(x) \in A\)。
直觉:Hamilton 系统的轨道在有界相空间中会"几乎回到"起点附近——无穷多次。
证明思路:由 Liouville 定理,\(\mu(\varphi_t(A)) = \mu(A)\) 对所有 \(t\)。如果某些点永不回归,则 \(A, \varphi_1(A), \varphi_2(A), ...\) 互不相交——但它们体积都等于 \(\mu(A) > 0\),在有限体积空间中不可能有无穷多互不相交的等体积集。矛盾。∎
14.2 对机器人的启示¶
周期步态的存在性:Poincaré 回归定理不直接给出周期轨道,但暗示"准周期"行为是通用的。passive walker 的周期步态是此现象的退化情况。
混沌步态:对非可积系统(三个以上自由度的 humanoid),轨道可能在回归点附近不断"偏移"——这是 Arnold diffusion,对应不可预测的步态变化("有时就是会摔"的数学根源)。
§15 Gromov 非挤压定理与辛容量 ⭐⭐⭐⭐¶
15.1 辛刚性¶
Gromov 非挤压定理(1985):设 \(B^{2n}(r)\) 是 \(2n\) 维球(半径 \(r\)),\(Z^{2n}(R) = B^2(R) \times \mathbb{R}^{2n-2}\) 是辛柱体。若存在 symplectomorphism \(\varphi: B^{2n}(r) \to Z^{2n}(R)\),则 \(r \leq R\)。
直觉:不能把"大球"通过保辛变换"挤"进"小柱体"——即使柱体在其他方向上无限延伸。
15.2 为什么这与机器人有关¶
**辛容量**给出了 Hamilton 系统"可达区域"的下界。对腿足机器人的相空间规划:
- 质心 \((x, p_x)\) 平面上的"可达圆"面积 ≥ 初始面积
- 这限制了单步可以达到的最远距离(以 phase space 面积衡量)
- 辛容量是 Capture Region 分析的理论上界
与辛积分器的联系:辛积分器保持辛容量——数值解不会"虚假地扩大或缩小"可达区域。非辛方法可能导致可达区域系统性收缩(轨道螺旋化),给出过于乐观的稳定性估计。
§16 进阶:Dirac 结构与非光滑辛几何 ⭐⭐⭐⭐¶
14.1 动机:接触破坏辛结构怎么办?¶
60_约束动力学 中讨论的接触动力学在接触切换时破坏了连续 Hamilton 结构。但接触冲量不是完全无结构的——它可以嵌入 Dirac 结构 + 非光滑辛几何。
14.2 Dirac 结构简述¶
Dirac 结构(Yoshimura-Marsden 2006)是 \(TM \oplus T^*M\) 上的一个子丛 \(D\),满足: - \(D = D^\perp\)(关于自然配对 \(\langle(X, \alpha), (Y, \beta)\rangle = \alpha(Y) + \beta(X)\))
它统一了辛结构(\(D = \text{graph}(\omega^\flat)\))和 Poisson 结构(\(D = \text{graph}(\pi^\sharp)\)),并能处理退化和约束情况。
14.3 非光滑动量映射¶
在接触冲量瞬间,动量不连续:\(\Delta p = J_c^\top\,\text{impulse}\)。但如果约束与对称性兼容,约化后的动量映射仍可能连续——这是 HZD 框架中 zero dynamics 有良好性质的深层原因。
14.4 前沿方向¶
- Measure differential inclusion + 辛几何(Fetecau-Marsden-Ortiz-West 2003)
- Hybrid Dynamical Systems 的辛推广(Johnson-Burden-Koditschek 2016)
- Contact variational integrators(Dojo 的理论基础)
§15.1 C++/Python 库的积分器映射 ⭐⭐¶
15.1 主流机器人库的积分器¶
| 库 | 默认积分器 | 辛? | 说明 |
|---|---|---|---|
| Drake | SemiExplicitEuler | 近似(保动量) | PR #4340 讨论 |
| Pinocchio | Lie 群 Euler(exp step) | 否 | 保流形但非辛 |
| MuJoCo | Semi-implicit Euler | 近似 | 加接触后非辛 |
| Crocoddyl | RK4 / Euler | 否 | DDP backward 是辛的 |
| Brax/MJX | Euler | 否 | GPU 批量设计 |
15.2 专门辛积分器库¶
| 库 | 语言 | 方法 | 许可 |
|---|---|---|---|
| GeometricIntegrators.jl | Julia | 最全辛库(VPRK/CGVI/DGVI) | MIT |
| DifferentialEquations.jl | Julia | SymplecticEuler/Verlet/Yoshida6/... | MIT |
| REBOUND | C/Python | 天体辛积分 | GPL |
| OpenMM | C++/Python | Velocity Verlet(MD) | MIT |
| Stan/NumPyro | C++/Python | HMC (Störmer-Verlet) | BSD/Apache |
15.3 实现建议¶
工程师选择指南:
| 场景 | 推荐积分器 | 理由 |
|---|---|---|
| 腿足实时控制 | MuJoCo semi-implicit | 速度优先,接触自然处理 |
| 长时空间仿真 | Störmer-Verlet | 辛保证长时稳定 |
| SO(3) 姿态仿真 | Lie 群变分积分器 | 保流形+保辛 |
| HMC/Bayesian inference | NUTS (Verlet-based) | 辛保证 detailed balance |
| DDP/MPC 内层 | RK4 或 Euler | 短 horizon,精度优先 |
| 物理先验学习 | Symplectic Euler/Verlet | 保辛使长 rollout 稳定 |
§18 辛几何视角下的常见力学定理重释 ⭐⭐⭐¶
18.1 能量守恒的辛证明¶
定理:\(H\) 沿自身的 Hamilton 流守恒。
辛证明:\(\dot H = \{H, H\} = \omega(X_H, X_H) = 0\)(反对称性!)
这是最简单的 Noether 定理:\(G = \mathbb{R}\)(时间平移),\(J = H\)(能量即动量映射)。
18.2 Kepler 问题的隐藏对称性¶
Kepler 问题有"额外"的守恒量—— Laplace-Runge-Lenz 矢量 \(\mathbf{A} = \mathbf{p} \times \mathbf{L} - mk\hat r\)。
辛解释:Kepler 的对称群不是 SO(3)(旋转)而是 SO(4)(或 SO(3,1))。动量映射给出 \((L, A)\) 共 6 个守恒量,但 \(6 > \dim \mathfrak{so}(4) = 6\)——恰好等于!这使得 Kepler 问题**超可积**——所有有界轨道都是闭合椭圆。
对比:一般中心力场 \(V(r)\) 只有 SO(3) 对称→3 个角动量守恒→轨道在平面内但不一定闭合(如进动的椭圆)。
18.3 Euler 刚体方程的辛约化视角¶
我们在 §6 中已经展示了 Euler 方程是 Lie-Poisson 方程。这里补充其**完整几何图像**:
- 起点:自由刚体在 \(T^*SO(3)\) 上的 Hamilton 系统(6 维辛流形)
- 对称群:左 SO(3)(改变空间坐标系不影响物理)
- 动量映射:\(J(R, \Pi) = R\Pi\)(空间角动量 \(\mathbf{L} = R\Pi\))
- Noether:\(\dot{\mathbf{L}} = 0\)(空间角动量守恒)
- 约化:固定 \(|\mathbf{L}| = l\),商掉绕 \(\mathbf{L}\) 的旋转(\(G_\mu = SO(2)\))
- 约化空间:\(P_\mu = J^{-1}(\mu)/G_\mu\) 是 \(S^2\) 上的辛流形
- 约化方程:Euler 方程 \(\dot\Pi = \Pi \times I^{-1}\Pi\) on \(S^2_{|\Pi|}\)
维数验证:\(\dim P_\mu = 6 - 3 - 1 = 2 = \dim S^2\)。✓
18.4 从 Arnold-Liouville 到 action-angle 变量¶
对可积系统(如 Kepler、谐振子、Toda lattice),Arnold-Liouville 定理保证 action-angle 变量 \((I, \varphi)\) 存在,使 \(H = H(I)\) 只依赖 action。此时:
物理意义:\(I_i\) 是"第 \(i\) 个模式的能量参数",\(\varphi_i\) 是"第 \(i\) 个模式的相位"。运动是各模式独立转动的叠加——准周期运动。
对机器人的启示:如果你能把一个足式系统化为近可积形式(如 LIPM),就可以用 action-angle 变量分析周期步态的频率关系。"共振步态"(frequency locking)对应 \(\omega_1/\omega_2 = p/q\) 有理关系——这是步态同步的几何根源。
§19 历史演进脉络 ⭐⭐¶
18.1 辛几何的历史¶
| 年份 | 里程碑 | 贡献者 | 核心思想 |
|---|---|---|---|
| 1788 | Hamilton 力学的 Lagrangian 前身 | Lagrange | 变分原理 |
| 1833-1843 | 正则方程 | Hamilton | 相空间+正则变换 |
| 1838 | 辛矩阵条件 | Jacobi | \(M^\top JM = J\) |
| 1890 | Poincaré 回归 | Poincaré | 保体积→回归 |
| 1918 | Noether 定理 | Noether | 对称性→守恒律 |
| 1927 | 量子化与辛结构 | Dirac | \(\{·,·\} \to [\cdot,\cdot]/(i\hbar)\) |
| 1943 | "辛"命名 | 华罗庚(Hua) | "sym-plectic" 翻译为"辛" |
| 1971 | 辛约化 | Marsden-Weinstein | \(P_\mu = J^{-1}(\mu)/G_\mu\) |
| 1985 | 非挤压定理 | Gromov | 辛刚性 |
| 1985 | 辛积分器 | 冯康 (Feng Kang) | 辛差分格式 |
| 1986 | 辛积分器理论 | Ruth, Forest | 分裂方法+高阶 |
| 2001 | 离散力学 | Marsden-West | 变分积分器 |
18.2 "辛"字的由来¶
中文"辛"字来自华罗庚先生的翻译。英文"symplectic"来自希腊文 \(\sigma\upsilon\mu\pi\lambda\varepsilon\kappa\tau\iota\kappa\omicron\varsigma\)(symplektikos),意为"编织在一起"。Weyl 1939 年选用此词替代 Eisenstein 的 "complex"(因"complex"已有"复数"的含义)。
华罗庚选"辛"字极妙:它在中文中罕用,避免了歧义,且字形暗示"两个干/木交织"——恰与 symplectic(编织)的词源对应。
18.3 冯康与辛算法¶
冯康院士(1920-1993)是辛积分器的独立发现者之一。他于 1985 年在 Differential Geometry & Topology 国际会议上提出辛差分格式,几乎与 Ruth (1983) 同时期独立工作。
冯康的核心贡献: 1. 系统提出"保结构算法"(structure-preserving algorithms)的理念 2. 证明了辛方法的长时稳定性 3. 建立了中国辛算法学派
推荐中文文献:冯康-秦孟兆《哈密尔顿系统的辛几何算法》(浙江科技出版社)。
§19.1 辛几何与机器人概念的完整对照表 ⭐¶
| 辛几何概念 | 机器人/控制概念 | 物理/工程意义 |
|---|---|---|
| 辛流形 \((P, \omega)\) | 相空间 \(T^*Q\) | 位置+动量的联合状态 |
| Hamilton 向量场 \(X_H\) | 动力学向量场 | 自由演化方向 |
| Hamilton 流 \(\varphi_t\) | 前向仿真 | 物理步进 |
| Liouville 形式 \(\omega^n/n!\) | 相空间体积 | 不确定性传播基础 |
| Poisson 括号 \(\{F, H\}\) | 沿流的 Lie 导数 | 守恒量检测 |
| 辛叶 (symplectic leaf) | 守恒量等值面 | Euler 刚体轨迹困在 \(S^2\) |
| Lie-Poisson 结构 \(\mathfrak{g}^*\) | Euler 方程形式 | 刚体/流体动力学 |
| 动量映射 \(J: P \to \mathfrak{g}^*\) | 广义动量 | 线/角动量, centroidal |
| Coadjoint orbit \(\mathcal{O}_\mu\) | 固定动量曲面 | 角动量球面 |
| Marsden-Weinstein 约化 | 对称破缺建模 | 浮基→质心 |
| Routh reduction | 循环坐标消去 | 反作用轮降维 |
| Symplectic Euler | "半隐式 Euler" | Drake SemiExplicit |
| Störmer-Verlet | Leapfrog | MD/HMC/天体 |
| Lie 群变分积分器 | 保流形积分 | SO(3) 无需重投影 |
| Modified Hamiltonian \(\tilde H\) | 数值 drift 的真凶 | 解释 RK4 能量漂移 |
| Pontryagin Hamiltonian | 最优控制 \(H(x,\lambda,u)\) | DDP/iLQR 协态 |
| KAM 不变环面 | 极限环步态骨架 | passive walker 稳定域 |
| Fisher 信息 \(F(\theta)\) | 策略二阶结构 | Natural Policy Gradient |
| Poincaré 映射 | 步态 return map | 步态稳定性分析 |
| Gromov 非挤压 | 可达域下界 | Capture Region 理论 |
| Casimir 函数 | 超级守恒量 | $ |
| Darboux 定理 | 局部正则坐标 | 辛几何无"曲率" |
§20 核心公式速查表 ⭐¶
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
辛流形基础
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
典则辛形式: ω = Σ dqⁱ ∧ dpᵢ
Liouville形式:θ = pᵢ dqⁱ, ω = −dθ
Hamilton方程: i_{X_H}ω = dH
正则方程: q̇ⁱ = ∂H/∂pᵢ, ṗᵢ = −∂H/∂qⁱ
保辛证明: L_{X_H}ω = d(dH) + i_{X_H}(0) = 0
Liouville定理:φ_t*(ω^n/n!) = ω^n/n!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Poisson 与 Lie-Poisson
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Poisson括号: {F,G} = Σ(∂F/∂qⁱ · ∂G/∂pᵢ − ∂F/∂pᵢ · ∂G/∂qⁱ)
正则对易: {qⁱ,pⱼ} = δⁱⱼ
Lie-Poisson: {F,G}_±(μ) = ±⟨μ, [dF, dG]⟩
SO(3) Euler: Π̇ = Π × (I⁻¹Π)
Casimir: {C,F} = 0 ∀F → SO(3)*: C = |Π|²
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
动量映射与 Noether
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
定义: i_{ξ_P}ω = dJ_ξ
线动量: J(q,p) = p (G = R³)
角动量: J(q,p) = q × p (G = SO(3))
Noether: H G-不变 ⟹ J̇ = 0
等变性: J(Φ_g·p) = Ad*_{g⁻¹}J(p)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
辛积分器
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
辛条件: (∂Φ_h/∂y)ᵀ J (∂Φ_h/∂y) = J
Symplectic Euler:pₙ₊₁ = pₙ − h∇V(qₙ), qₙ₊₁ = qₙ + h∇T(pₙ₊₁)
Störmer-Verlet: p½ = p−(h/2)∇V(q), q' = q+hp½/m, p' = p½−(h/2)∇V(q')
Modified H: H̃ = H + h^r·H_{r+1} + ...
能量漂移: |H(yₙ)−H(y₀)| ≤ C·e^{−c/h} + C·h^r·tₙ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
约化与控制
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Marsden-Weinstein:P_μ = J⁻¹(μ)/G_μ, dim = dim P − dim G − dim G_μ
Pontryagin H: H(x,λ,u) = ⟨λ,f(x,u)⟩ − L(x,u)
PMP: ẋ = ∂H/∂λ, λ̇ = −∂H/∂x, u* = argmax H
Natural Gradient: θ̇ = −F(θ)⁻¹∇L(θ)
§21 符号计算验证辛性质 ⭐⭐¶
21.0.1 SymPy 验证 Poisson 括号¶
import sympy as sp
# 定义相空间坐标
q1, q2, p1, p2 = sp.symbols('q1 q2 p1 p2')
def poisson_bracket(F, G, qs, ps):
"""计算 Poisson 括号 {F, G}"""
n = len(qs)
result = 0
for i in range(n):
result += sp.diff(F, qs[i]) * sp.diff(G, ps[i])
result -= sp.diff(F, ps[i]) * sp.diff(G, qs[i])
return sp.simplify(result)
qs = [q1, q2]; ps = [p1, p2]
# 验证正则对易关系
print(f"{{q1, p1}} = {poisson_bracket(q1, p1, qs, ps)}") # 1
print(f"{{q1, q2}} = {poisson_bracket(q1, q2, qs, ps)}") # 0
print(f"{{p1, p2}} = {poisson_bracket(p1, p2, qs, ps)}") # 0
# 验证角动量 Poisson 括号关系
q3, p3 = sp.symbols('q3 p3')
qs3 = [q1, q2, q3]; ps3 = [p1, p2, p3]
L1 = q2*p3 - q3*p2 # x-分量角动量
L2 = q3*p1 - q1*p3 # y-分量角动量
L3 = q1*p2 - q2*p1 # z-分量角动量
print(f"{{L1, L2}} = {poisson_bracket(L1, L2, qs3, ps3)}") # 应 = L3
print(f"{{L2, L3}} = {poisson_bracket(L2, L3, qs3, ps3)}") # 应 = L1
print(f"{{L3, L1}} = {poisson_bracket(L3, L1, qs3, ps3)}") # 应 = L2
# 验证 so(3) 结构!
21.0.2 验证辛 Euler 的生成函数¶
# Symplectic Euler 对 H = p^2/2 + V(q)
# 对应生成函数 F2(q_old, p_new) = q_old * p_new + h * V(q_old)
# 关系: p_old = dF2/dq_old = p_new + h*V'(q_old)
# q_new = dF2/dp_new = q_old + h*(p_new 对应的 T' = p_new)
q_old, q_new, p_old, p_new, h = sp.symbols('q_old q_new p_old p_new h')
V = sp.Function('V')
# 生成函数 F2
F2 = q_old * p_new + h * V(q_old)
# 验证得到 Symplectic Euler
p_old_from_F2 = sp.diff(F2, q_old) # = p_new + h*V'(q_old)
q_new_from_F2 = sp.diff(F2, p_new) # = q_old + h*(something)
print(f"p_old = dF2/dq_old = {p_old_from_F2}")
# 即 p_new = p_old - h*V'(q_old) ← 这就是 Symplectic Euler 的第一步!
print(f"q_new = dF2/dp_new = {q_new_from_F2}")
# 即 q_new = q_old ← 这只是 F2 的 q 更新部分
# 完整 Symplectic Euler 需要 q_new = q_old + h*p_new/m
# (通过 H = T(p) + V(q) 的可分结构实现)
21.0.3 验证 Störmer-Verlet 修正 Hamiltonian¶
# 对 H = p^2/2 + q^4/4, 计算第一阶修正
# H_tilde = H + (h^2/24)[2{V,{V,T}} - {T,{T,V}}]
q, p = sp.symbols('q p')
T = p**2/2
V = q**4/4
# 计算 Poisson 括号
TV = poisson_bracket(T, V, [q], [p]) # = -p*q^3
VT = -TV # = p*q^3
TTV = poisson_bracket(T, TV, [q], [p]) # {T, -p*q^3}
VVT = poisson_bracket(V, VT, [q], [p]) # {V, p*q^3}
print(f"{{T,V}} = {TV}")
print(f"{{T,{{T,V}}}} = {sp.simplify(TTV)}")
print(f"{{V,{{V,T}}}} = {sp.simplify(VVT)}")
# 修正 Hamiltonian 的前导项
H2 = sp.Rational(1,24) * (2*VVT - TTV)
print(f"h^2 修正项 H_2 = {sp.simplify(H2)}")
§22 Python 验证实验 ⭐⭐¶
21.1 实验 1:辛 vs 非辛积分器对比(Kepler 问题)¶
import numpy as np
import matplotlib.pyplot as plt
def kepler_rk4(h, T):
"""RK4 积分 Kepler 问题"""
def f(y):
q, p = y[:2], y[2:]
r = np.linalg.norm(q)
return np.array([p[0], p[1], -q[0]/r**3, -q[1]/r**3])
y = np.array([1.0, 0.0, 0.0, 1.0]) # 圆轨道
energies = []
for _ in range(int(T/h)):
k1 = f(y); k2 = f(y+h/2*k1)
k3 = f(y+h/2*k2); k4 = f(y+h*k3)
y += h/6*(k1+2*k2+2*k3+k4)
E = 0.5*np.dot(y[2:],y[2:]) - 1/np.linalg.norm(y[:2])
energies.append(E)
return np.array(energies)
def kepler_verlet(h, T):
"""Störmer-Verlet 积分 Kepler 问题"""
q = np.array([1.0, 0.0])
p = np.array([0.0, 1.0])
energies = []
for _ in range(int(T/h)):
r = np.linalg.norm(q)
p -= (h/2) * q/r**3 # 半步动量
q += h * p # 全步位置
r = np.linalg.norm(q)
p -= (h/2) * q/r**3 # 半步动量
E = 0.5*np.dot(p,p) - 1/np.linalg.norm(q)
energies.append(E)
return np.array(energies)
# 积分 10^5 步
h = 0.01; T = 1000.0
E_rk4 = kepler_rk4(h, T)
E_verlet = kepler_verlet(h, T)
E0 = -0.5 # 精确能量
plt.figure(figsize=(12, 4))
plt.subplot(121)
plt.plot(np.abs(E_rk4 - E0) / abs(E0))
plt.yscale('log'); plt.title("RK4: 能量单调漂移")
plt.xlabel("步数"); plt.ylabel("|ΔE/E₀|")
plt.subplot(122)
plt.plot(np.abs(E_verlet - E0) / abs(E0))
plt.yscale('log'); plt.title("Verlet: 能量有界振荡")
plt.xlabel("步数"); plt.ylabel("|ΔE/E₀|")
plt.tight_layout(); plt.savefig("symplectic_vs_nonsymplectic.png")
21.2 实验 2:验证 Symplectic Euler 的辛性¶
def check_symplecticity(Phi, y0, h, eps=1e-7):
"""数值验证映射 Phi 是否辛"""
n = len(y0) // 2
J = np.block([[np.zeros((n,n)), np.eye(n)],
[-np.eye(n), np.zeros((n,n))]])
# 计算 Jacobian (有限差分)
DPhi = np.zeros((2*n, 2*n))
y1 = Phi(y0, h)
for i in range(2*n):
dy = np.zeros(2*n); dy[i] = eps
DPhi[:, i] = (Phi(y0 + dy, h) - Phi(y0 - dy, h)) / (2*eps)
# 检验 DPhi^T J DPhi = J
residual = DPhi.T @ J @ DPhi - J
return np.max(np.abs(residual))
def symplectic_euler(y, h):
"""可分 H = p^2/2 + q^4/4 的 Symplectic Euler"""
q, p = y[0], y[1]
p_new = p - h * q**3 # 先更新 p
q_new = q + h * p_new # 再用新 p 更新 q
return np.array([q_new, p_new])
def explicit_euler(y, h):
"""显式 Euler (非辛)"""
q, p = y[0], y[1]
q_new = q + h * p
p_new = p - h * q**3
return np.array([q_new, p_new])
y0 = np.array([1.0, 0.5])
print(f"Symplectic Euler 辛性残差: {check_symplecticity(symplectic_euler, y0, 0.01):.2e}")
print(f"Explicit Euler 辛性残差: {check_symplecticity(explicit_euler, y0, 0.01):.2e}")
# 期望输出: Symplectic ~1e-14 (机器精度), Explicit ~1e-2 (不辛)
21.3 实验 3:SO(3) 刚体的 Lie 群积分¶
from scipy.spatial.transform import Rotation
def euler_top_lie_group(I_diag, Pi0, h, N):
"""SO(3) 刚体的 Lie 群积分器 (简化版)"""
I = np.diag(I_diag)
I_inv = np.diag(1.0/I_diag)
Pi = Pi0.copy()
R = np.eye(3)
energies = []; momenta = []
for _ in range(N):
# 体坐标角速度
omega = I_inv @ Pi
# Lie 群更新: R_{k+1} = R_k * exp(h*omega_hat)
rot = Rotation.from_rotvec(h * omega)
R = R @ rot.as_matrix()
# 动量更新 (Euler 方程)
Pi = Pi + h * np.cross(Pi, omega)
energies.append(0.5 * Pi @ I_inv @ Pi)
momenta.append(np.linalg.norm(Pi))
return np.array(energies), np.array(momenta)
# 中间轴不稳定性演示
I_diag = np.array([2.0, 3.0, 5.0])
Pi0 = np.array([0.01, 1.0, 0.01]) # 近似绕中间轴
E, L = euler_top_lie_group(I_diag, Pi0, 0.001, 100000)
plt.figure(figsize=(12,4))
plt.subplot(121); plt.plot(E); plt.title("能量 (应近似守恒)")
plt.subplot(122); plt.plot(L); plt.title("|Π| (Casimir, 应精确守恒)")
plt.tight_layout(); plt.savefig("euler_top_lie.png")
21.4 实验 4:HMC 采样验证¶
def hmc_sample(log_prob, grad_log_prob, q0, n_samples, h=0.1, L=20):
"""简单 HMC 采样器 (使用 Störmer-Verlet)"""
d = len(q0)
samples = [q0.copy()]
q = q0.copy()
accepts = 0
for _ in range(n_samples):
p = np.random.randn(d) # 采样动量
q_new, p_new = q.copy(), p.copy()
# Leapfrog (L 步)
p_new -= (h/2) * (-grad_log_prob(q_new))
for _ in range(L-1):
q_new += h * p_new
p_new -= h * (-grad_log_prob(q_new))
q_new += h * p_new
p_new -= (h/2) * (-grad_log_prob(q_new))
# Metropolis 接受/拒绝
H_old = -log_prob(q) + 0.5*np.dot(p, p)
H_new = -log_prob(q_new) + 0.5*np.dot(p_new, p_new)
if np.random.rand() < np.exp(H_old - H_new):
q = q_new; accepts += 1
samples.append(q.copy())
print(f"接受率: {accepts/n_samples:.2%}")
return np.array(samples)
# 采样 2D Gaussian
mu = np.array([1.0, 2.0])
Sigma_inv = np.array([[2.0, 0.5], [0.5, 1.0]])
log_p = lambda q: -0.5*(q-mu)@Sigma_inv@(q-mu)
grad_log_p = lambda q: -Sigma_inv@(q-mu)
samples = hmc_sample(log_p, grad_log_p, np.zeros(2), 5000, h=0.1, L=20)
# 期望接受率 > 85% (因为 Verlet 保辛)
§22.1 辛几何在机器人中的未来方向 ⭐⭐⭐¶
22.1 开放研究问题¶
-
辛积分器 + 接触:如何在接触切换时保持"尽可能辛"的性质?Variational integrator with contact(Fetecau-Marsden-Ortiz-West 2003)是理论框架,但工程实现仍在早期。
-
辛 RL:把辛结构编码进 policy 或 world model 中,使长 rollout 预测更准确。目前 HNN/SympNets 是初步尝试,但还没有在大规模 RL 中证明优势。
-
辛约化在 MPC 中的利用:理论上 Marsden-Weinstein 约化可以降低 MPC 的维度(利用对称性),但 OCS2/Crocoddyl 目前未显式利用此结构。
-
KAM 理论指导步态设计:passive walker 的 KAM 环面结构是否可以用来设计更鲁棒的步态?理论上有可能,但需要把 KAM 定理的定量版本(Arnold diffusion 速度)与工程 robustness 指标对接。
-
信息几何在 SLAM 中的应用:Fisher 信息矩阵在 SLAM 中是因子图的 Hessian——这与辛几何中 Lagrangian 子流形的二次型有深刻联系。目前 Barfoot-Furgale 2014 的工作是初步探索。
22.2 推荐研究方向(按难度)¶
| 方向 | 难度 | 预期影响 | 入门文献 |
|---|---|---|---|
| Lie 群积分器用于 quadrotor MPC | ⭐⭐⭐ | 中 | Lee-Leok-McClamroch 2005 |
| 辛 DDP (DMOC) 实际部署 | ⭐⭐⭐ | 高 | Kobilarov-Marsden 2011 |
| 辛网络 + model-based RL | ⭐⭐⭐⭐ | 高 | Greydanus 2019, Chen-Tao 2021 |
| 约化 MPC (利用对称性降维) | ⭐⭐⭐⭐ | 高 | Colombo-Bloch 2022 |
| KAM-guided 步态鲁棒性 | ⭐⭐⭐⭐⭐ | 中 | Grizzle HZD + Arnold 1978 |
| Fisher-辛结构 SLAM | ⭐⭐⭐⭐ | 高 | Barfoot-Furgale 2014 |
22.3 工程师的最低行动清单¶
如果你不打算深入辛几何理论,至少应该:
- 用 Störmer-Verlet 替代 RK4 做长时仿真(>1000 步)
- 理解 Drake 的
SemiExplicitEuler为何声称 "momentum conserving" 而非 "symplectic" - 知道 HMC/NUTS 为什么比 Metropolis-Hastings 好(辛积分保 detailed balance)
- 理解 Natural Gradient 的几何含义(Fisher 度量 = 分布空间的"距离")
- 认识到 Pinocchio 的
integrate保流形但不保辛——长时仿真需要注意 - 了解 Euler 刚体的中间轴不稳定性——这影响了卫星设计和机器人惯量分配
§23 常见陷阱完整清单(12 条) ⭐¶
- "辛 = 保面积" 的误解 → 辛形式不是面积元,保体积是推论不是定义
- "RK4 足够好" 的幻觉 → 长时间 RK4 系统性漂移能量,必须用辛方法
- SO(3) 上普通 RK 流形漂出 → 必须用 Lie 群积分器 \(R_{k+1} = R_k\exp(h\hat\Omega)\)
- Drake SemiExplicitEuler ≠ 严格辛 → 多体 Coriolis 项使 H 不完全可分
- 动量映射 ≠ 朴素动量 → \(J: P \to \mathfrak{g}^*\) 映到 Lie 代数对偶,不是 \(\mathbb{R}^n\)
- 约化 \(P_\mu\) 不一定光滑 → 非正则值或不自由作用导致奇异辛空间
- Poincare section 忘记商时间 → \(\Sigma \subset \{H=E\}\) 本身奇数维,需商掉时间
- Fisher 矩阵条件数灾难 → \(F\) 可能 \(10^{9+}\) 条件数,直接求逆数值发散
- KAM "大部分" ≠ "所有" → Arnold diffusion 在 \(n\geq3\) 穿透 KAM 间隙
- 变分积分器 ≠ 保能量 → 保辛+保动量+保流形,能量只"几乎守恒"
- 辛积分器对非可分 H 不显式 → 需要隐式中点法或 splitting 技巧
- HMC 步长/步数选错 → L 太小自相关高,L 太大拒绝率暴增,推荐 NUTS
§24 推荐学习路线图 ⭐¶
24.1 6 个月学习计划¶
| 月份 | 内容 | 核心文献 | 产出 |
|---|---|---|---|
| 月 1 | 辛流形/Darboux/Hamilton 流/Liouville | Arnold Ch.7-10 + da Silva L7-L8 | 能证明 Hamilton 流保辛 |
| 月 2 | Poisson/Lie-Poisson/动量映射/Noether | Marsden-Ratiu Ch.10-15 | 能推导 SO(3) 动量映射 |
| 月 3 | 辛积分器 + backward error analysis | HLW Ch.VI + Ch.IX | 实现 Verlet,验证能量守恒 |
| 月 4 | Lie 群变分积分器 | Lee-Leok-McClamroch Ch.6-7 | SO(3) 刚体 LGVI 代码 |
| 月 5 | Marsden-Weinstein 约化 + 机器人案例 | da Silva L21-L24 | 推导浮基约化维度 |
| 月 6 | 选一篇论文深读 + 实现 | Kobilarov-Marsden 2011 / ALTRO-C | 一个研究级 project |
24.2 最低学习清单(工程师 3-5 天)¶
���果时间有限,只需掌握:
- Day 1:辛流形定义 + Hamilton 流保辛证明(§1-§2)
- Day 2:Symplectic Euler/Verlet 的辛性证明 + 数值实验(§5)
- Day 3:动量映射定义 + 三个标准例子(§4)
- Day 4:Lie-Poisson on SO(3) = Euler 方程(§6)
- Day 5:Natural Gradient 的辛解释 + HMC(§8)
24.3 档位 3 vs 档位 4 的区分¶
| 内容 | 档位 3(工程) | 档位 4(研究) |
|---|---|---|
| 辛流形 | 知道定义+Darboux | 能用 Moser trick 证 |
| 辛积分器 | 会用 Verlet | 能推修正 Hamiltonian |
| 动量映射 | 知道标准例子 | 能构造新的 J |
| Lie-Poisson | 会写 Euler 方程 | 能做 SE(3) 约化 |
| 约化 | 知道 MW 定理 | 能独立证明 + 计算 |
| KAM | 知道定性含义 | 知道 Diophantine 条件 |
| NPG | 知道 Fisher 含义 | 能推导 Hamilton 解释 |
§25 结语:为什么辛几何是机器人学的"收官"数学¶
从第四批刚体动力学的 10_空间向量代数(Newton-Euler 力)、20_Lagrange(变分原理)、30_SO3_SE3(Lie 群几何)、40_ON递推(计算效率)、50_解析微分(梯度传播)、60_约束动力学(接触与控制),我们一步步剥离具体坐标,看见底层几何。辛几何是这一切的**最终统一语言**:
- **Newton 的力**是 Hamilton 向量场 \(X_H\)
- **Lagrange 的作用量**是辛流的变分
- **Euler 的刚体**是 Lie-Poisson 流形上的约化 Hamilton 流
- **Noether 的守恒律**是动量映射的几何必然
- **Pontryagin 的最优控制**是 \(T^*M\) 上的 Hamilton 系统
- **HMC 采样**是辛积分器的概率应用
- **Natural Policy Gradient**是 Fisher 度量下的辛流阻尼投影
- **KAM 环面**是周期步态的数学骨架
这不是学术玩具。 当你的 MPC 在接触切换时发散(因为辛结构被破坏)、当你的 RL 策略在 Fisher 矩阵病态时崩溃(因为几何"距离"被误估)、当你的卫星姿态控制在 \(10^6\) 步后漂出轨道(因为积分器不保辛)——原因和解决方案都在本章。
掌握辛几何不会让代码跑得更快。但它让你**知道哪一行代码在做几何上正确的事**。
§26 自测题集 ⭐⭐-⭐⭐⭐⭐¶
以下题目按难度分档。档位 3 题目是工程师必做;档位 4 题目面向研究者。每道题标注了对应章节,方便回查。建议先不看答案独立尝试 20 分钟,再对照本章理论。
档位 3 题目(工程师必做)¶
Q1 [§1, 辛流形定义]:证明 \(T^*Q\) 上的典则 1-形式 \(\theta = p_i\,dq^i\) 满足:对任一 1-form 截面 \(\alpha: Q \to T^*Q\),\(\alpha^*\theta = \alpha\)。由此推出 \(\alpha^*\omega = -d\alpha\)。解释为什么这意味着"Lagrangian 子流形局部是 1-形式的图像"。
提示:设 \(\alpha = \alpha_i(q)\,dq^i\),则 \(\alpha: Q \to T^*Q\) 把 \(q\) 映到 \((q, \alpha(q))\)。拉回 \(\theta\) 时 \(p_i\) 被替换为 \(\alpha_i(q)\)。
验证方法:用 SymPy 的 pullback 功能(或手动替换)验证 \(\alpha^*\theta = \alpha_i(q)\,dq^i = \alpha\)。
延伸思考:这个性质意味着 \(T^*Q\) 的辛结构是"自然的"——它不依赖于 \(Q\) 上度量的选择。这与黎曼几何形成鲜明对比(度量需要额外给定)。机器人的相空间结构是"免费的"。
工程含义:当你在 Pinocchio 中调用 computeMinverse(model, data, q) 时,得到的 \(M^{-1}\) 把力变成加速度——这正是辛结构 \(\omega^\flat\) 的坐标表达。理解辛结构意味着理解"为什么 \(M^{-1}\) 是连接力和运动的正确映射"。
跨章综合题提示:此题连接了 §1 的辛流形定义、§4 的动量映射(动量 = 余切向量 = 1-form 的值)、以及 60_约束动力学中 KKT 系统的几何含义(约束力在 \(J^\top\) 方�� = 余切丛中约束流形的法余切方向)。尝试用辛语言重新表述 KKT 系统的物理含义。
Q2:验证 Symplectic Euler 的辛性(写出 Jacobian \(M\),验证 \(M^\top J M = J\)),对 \(H = p^2/(2m) + V(q)\)。
Q3:给出 SO(3) 作用于 \(T^*\mathbb{R}^3\) 的动量映射的显式公式 \(J(q,p) = q \times p\),并验证等变性。
Q4:Euler 刚体 Hamiltonian \(H = \frac{1}{2}\Pi^\top I^{-1}\Pi\)。证明 Lie-Poisson 方程为 \(\dot\Pi = \Pi \times (I^{-1}\Pi)\),并说明 \(|\Pi|^2\) 和 \(H\) 都守恒。
档位 4 题目¶
Q5:对 Kepler 问题 \(H = |p|^2/2 - 1/|q|\),计算 Störmer-Verlet 的第一阶修正 Hamiltonian \(\tilde H = H + h^2 H_3 + O(h^4)\),用 Poisson 括号展开。
Q6:陈述 Marsden-Weinstein 约化定理。对浮基 humanoid(\(Q = SE(3) \times \mathbb{R}^n\)),当 \(\mu = 0\) 时 \(P_0\) 的维数是多少?
Q7:写出 Pontryagin 的辛对偶性:证明最优 \((x^*, \lambda^*)\) 是 \(T^*M\) 上 \(H^*\) 的 Hamilton 流。
Q8:对 Gaussian policy \(\pi_\theta(u|x) = \mathcal{N}(\mu_\theta(x), \Sigma)\),计算 Fisher 信息矩阵 \(F(\theta)\),给出 Natural Policy Gradient 的 Hamiltonian 解释。
跨章交叉引用索引¶
| 引用目标 | 本章使用位置 | 引用方式 |
|---|---|---|
| 30_SO3_SE3 → Lie 群/代数/Ad/Ad* | §4 动量映射, §6 Lie-Poisson | 直接使用 |
| 20_Lagrange → Hamilton 方程/Legendre 变换 | §2 Hamilton 向量场 | 坐标版本的几何化 |
| 10_变分法 → Noether 定理 Lagrange 版 | §4.4 辛版 Noether | 升级为几何版本 |
| 10_变分法 → Pontryagin 原理 | §9 PMP 辛表述 | 揭示 costate = 动量 |
| 60_约束动力学 → 浮基方程/接触 | §7.1-7.2 动量守恒应用 | 辛约化的工程实例 |
| 60_约束动力学 → SHAKE/RATTLE | §13.3 约束辛积分 | 约束系统的辛积分 |
| 60_约束动力学 → 接触动力学 | §14 Dirac 结构 | 非光滑辛几何 |
最后的话:辛几何是力学的最终语言——不是因为它最复杂,而是因为它最统一。 从 Hamilton 1833 到 Marsden 2001,从冯康 1985 到 Greydanus 2019, 辛结构贯穿了经典力学、数值方法、最优控制、概率推理的全部。 掌握它,你就拥有了看透这一切背后几何本质的眼睛。