形式陈述
位置已经被拉回约束面,为什么下一步仍可能立即离开?带约束的机械系统公理库Hamilton 系统Hamiltonian system · Hamilton 系统由 Hamiltonian 的梯度经标准辛矩阵生成相空间流的常微分方程系统。不仅要求位置满足 ,还要求动量产生的速度属于切空间:
取给定的常对称正定质量矩阵 、非零步长 ,以及光滑的 与 ,并令 为约束的Jacobian公理库Jacobian 矩阵Jacobian matrix多元映射各偏导数组成并表示其导数的矩阵。。对 ,RATTLE 用两组约束反作用系数分别处理两项条件。给定已满足约束的 ,一种记号约定为
第一组乘子通常由非线性位置约束求出;位置固定后,第二组由线性方程组公理库线性方程组System of linear equations可写为矩阵方程 Ax=b 的有限个一次方程系统。求出。约束梯度满行秩、步长足够小并选择连续于初值的解支,是局部可解性的基本条件。
直觉
位置约束规定“落点在哪里”,切向约束规定“从这个落点朝哪里出发”。仅把位置投到球面,却保留朝球面外的速度,下一步立刻又会漂离。RATTLE 在两个不同时间位置上校正这两种误差。
图中取 :红色空心点是未经约束的漂移候选,位置校正使落点回到圆上,动量校正使绿色方向与新位置的半径垂直。图示坐标为 、;下面另以 核验同一公式。
第二次校正还有一个真正的优化解释。记 ,固定 ,求
由Lagrange 乘子条件公理库拉格朗日乘子法Lagrange multiplier method约束极值处目标梯度位于约束梯度张成空间中的必要条件。,校正方向属于 。写成 后,约束恰给出
满行秩且 时 Gram 矩阵正定;严格凸二次目标因此有唯一的约束最小点。这证明的是第二次动量校正的质量度量投影,不是把第一个非线性位置方程无条件当成同一个最优化问题。
在标准条件和精确约束求解下,RATTLE 是二阶、时间对称的约束辛方法。辛性针对约束相空间上的相应结构,而非随意扩展到全部无约束坐标的一张方阵。
例子与边界
单位圆上自由运动的一步
取 ,,初值 、。对 ,记 。第一步位置约束选择邻近解支,给出
第二次投影使用 ,得到 。直接核验 ,且 ,两项约束同时成立。
取 ,,。若只更新位置,半步动量与新位置的内积为 ,仍有法向分量,说明第二组乘子不可省略。本例最终动量模长也恰为一,但一般有势能的 RATTLE 不逐步精确保能量。
推论与应用
实施时先核验初值的两项约束,迭代求位置乘子,再解切向乘子。每步保存位置残差 与速度残差 ,并分别设定符合量纲的容差。 个约束的稠密乘子线性求解约为 ,每次位置迭代还需约束及 Jacobian 评值。
约束之间接近相关时,Gram 矩阵 会病态。较大步长也可能使位置方程出现多个解支或无邻近解。应缩小步长、改善约束表示或求解精度,再检查反向一步能否返回原状态。
参考资料