sicm

Table of Contents

1. 前言

"几乎所有教科书, 甚至是最好的教科书, 对这一原理的阐述都让人难以理解. " (K. Jacobi, , 1842-1843). 我并没有选择打破传统.

–V.I. Arnold, (1980), 第246页脚注

近年来, 经典力学的研究兴趣显著复兴. 我们现在知道, 经典力学的内容比以往所认为的要丰富得多. 经典系统的行为出人意料地复杂; 推导运动方程–传统力学教材的焦点–仅仅是开始. 经典系统展现出复杂的现象, 如非线性共振, 混沌行为以及向混沌的过渡.

传统的力学教材将大部分精力集中在极少数符号上可处理的动力系统上. 我们则专注于开发研究系统行为的通用方法, 无论这些系统是否具有符号解. 典型的系统表现出与可解系统截然不同的行为, 且其复杂性令人惊讶. 我们专注于运动的 现象, 并广泛使用计算机模拟来探索这些运动.

即使系统无法通过符号求解, 现代动力学的工具仍然允许我们提取对其行为的定性理解. 我们不再专注于符号描述, 而是专注于可能轨迹集合的几何特征. 这些工具为系统分析提供了基础, 无论是数值数据还是实验数据.

经典力学看似简单, 实则不然. 人们很容易通过错误的推理或缺乏真正的理解得到正确的答案. 传统的数学符号加剧了这一问题. 符号的含义依赖于上下文, 甚至在同一上下文中, 符号的含义也会发生变化. 例如, 力学的一个基本结果是拉格朗日方程. 使用传统符号, 拉格朗日方程写作:

\[ \frac{d}{dt} \frac{\partial L}{\partial \dot{q}^i} - \frac{\partial L}{\partial q^i} = 0 \]

拉格朗日量 \(L\) 必须被解释为位置和速度分量 \(q^i\) 和 \(\dot{q}^i\) 的函数, 以便偏导数有意义. 然而, 为了使时间导数 \(d/dt\) 有意义, 必须将解路径插入拉格朗日量的偏导数中, 使其成为时间的函数. 传统符号的使用在简单情况下很方便, 但在更复杂的情况下, 它可能成为清晰推理的严重障碍. 为了使推理清晰且无歧义, 我们采用了更精确的数学符号. 我们的符号是功能性的, 并遵循现代数学表述的惯例.

1.1. 数学符号的精确性

为了确保符号的精确性, 我们要求任何表达式都能被计算机自动解释. 因此, 文本中的公式和方程具有独立的意义, 不依赖于非正式的上下文. 例如, 我们用函数符号表示拉格朗日方程:

\[ D(\partial_2 L \circ \Gamma[q]) - \partial_1 L \circ \Gamma[q] = 0 \]

拉格朗日量 \(L\) 是时间 \(t\), 坐标 \(x\) 和速度 \(v\) 的实值函数; 其值为 \(L(t, x, v)\). 偏导数表示函数对特定参数位置的导数; \(\partial_2 L\) 表示拉格朗日函数 \(L\) 对速度参数位置的偏导数. 传统的偏导数符号依赖于上下文, 可能导致歧义. 拉格朗日量的偏导数沿着路径函数 \(q\) 显式求值, 时间导数被取, 并形成拉格朗日方程. 每一步都是显式的, 没有隐式替换.

1.2. 计算算法的使用

计算算法用于精确传达动力学现象分析中的某些方法. 将变分力学的方法用计算机语言表达, 迫使它们变得无歧义且计算有效. 计算要求我们精确表示机械和几何概念为计算对象, 并允许我们显式表示操作这些对象的算法. 此外, 一旦将数学思想形式化为过程, 它就成为可以直接用于计算结果的工具.

学生的主动探索是学习体验的重要组成部分. 我们的重点是理解系统的运动; 为了学习运动, 学生必须通过模拟和实验积极探索系统的运动. 练习和项目是演示的组成部分.

数学的精确性足以被自动解释, 这使得主动探索可以扩展到数学. 计算机能够解释任何表达式的要求提供了严格且即时的反馈, 表明表达式是否正确. 经验表明, 以这种方式与计算机交互可以揭示并纠正理解中的许多缺陷.

1.3. 本书的独特视角

本书从一种不寻常的视角呈现经典力学. 它专注于理解运动, 而不是推导运动方程. 它将非线性动力学的最新发现贯穿于整个演示中, 而不是将其作为事后的补充. 它使用功能性数学符号, 允许精确理解经典力学的基本性质. 它使用计算来约束符号, 捕捉和形式化方法, 进行模拟和符号分析.

这本书是过去六年在麻省理工学院教授经典力学的成果. 我们的课程内容始于Wisdom关于非线性动力学和太阳系动力学的课程思想, 以及Abelson和Sussman在计算机科学入门课程中开发的如何使用计算来制定方法论的思想. 当我们开始时, 我们期望使用这种方法来表述力学会很容易. 然而, 我们很快发现, 许多我们以为理解的东西实际上并不理解. 我们要求数学符号足够明确和精确, 以便它们可以被计算机自动解释, 这一要求非常有效地揭示了推理中的双关和缺陷. 由此产生的努力使数学变得精确, 清晰且计算有效, 这一过程比我们预期的要长得多. 通过这一过程, 我们对力学和计算都有了更深入的理解. 我们希望其他人, 尤其是我们的竞争对手, 能够采用这些增强理解的方法, 尽管这会减缓研究速度.

1.4. 致谢

我们要感谢许多人对本书及其所支持的课程开发的帮助. 我们得到了在经典力学课程中与我们一同学习的优秀学生的大力帮助. 他们迫使我们变得清晰; 他们发现了我们必须修复的错误, 无论是在软件, 演示还是我们的思考中.

Harold Abelson 在主题的开发与呈现方面提供了大量的技术支持. Abelson 是Semutils软件系统的开发者之一. 他为代码的某些部分投入了大量精力. 当我们拼命试图理解力学的逻辑时, 也经常向他请教. 他经常能提出一个方向, 带领我们走出智力迷宫.

Matthew Halfant 开始了Semutils系统的开发. 他鼓励我们进入科学计算领域, 使用Scheme和函数式风格作为解释思想的积极方式, 而不会受到像C这样的命令式语言的干扰. 在20世纪80年代, 他编写了一些早期的Scheme数值计算程序, 我们至今仍在使用.

Dan Zuras 帮助我们发明了Semutils系统的独特组织方式. 正是由于他的洞察力, 系统围绕链式法则的通用扩展进行组织. 他还帮助完成了繁重的工作, 使我们能够基于从Richard Zippel那里学到的思想, 开发出一个真正优秀的多项式GCD算法.

如果没有Chris Hanson的出色工作, 这本书以及我们实验室的大量其他工作都无法完成. Chris开发并维护了支持这项工作的Scheme系统. 此外, 他还带领我们完成了Semutils系统的重组, 迫使我们澄清了许多关于类型和通用操作的思想, 使我们的系统变得如此优秀.

Guillermo Juan Rozas 是Scheme系统的共同开发者, 他对Scheme编译器做出了重大贡献, 并实现了许多其他复杂的机制, 使我们的系统足够高效以支持我们的工作.

除了对Semutils系统中线性方程求解方法的贡献外, Jacob Katzenelson 还提供了宝贵的反馈, 改进了材料的呈现.

Julie Sussman, PPA, 提供了仔细的阅读和严肃的批评, 迫使我们重新组织和重写文本的主要部分. 她还在这许多年里开发并维护了Gerald Jay Sussman.

Cecile Wisdom, 圣人, 通过她的信仰和榜样不断提醒我们什么是真正重要的. 如果没有她给予Jack Wisdom的爱与不懈的鼓励, 这个项目是不可能完成的. 他们的孩子William, Edward, Thomas, John, 和Elizabeth Wisdom, 每一个都奇妙地创造出来, 每天用他们的生活丰富他的生活.

Meinhard Mayer 要感谢Rita Mayer, 感谢她在过去12年中频繁访问麻省理工学院期间的耐心支持; 感谢Niels Mayer 将他引入Scheme的奇妙世界(从而为这次合作播下了种子), 以及Elma和家人的爱.

多年来, 许多人对我们对动力学的理解做出了贡献. Michel Henon 和Boris Chirikov 对我们产生了特别的影响. Stan Peale, Peter Goldreich, Alar Toomre, 和Scott Tremaine 是我们的朋友和导师. 我们感谢前学生Jihad Touma 和Matthew Holman, 感谢他们的合作和持续的友谊. 我们极大地受益于与非线性动力学社区的许多人的交往: Tassos Bountis, Robert Helleman, Michael Berry, Michael Tabor, Ian Percival, John Greene, Robert MacKay, Jim Meiss, Dominique Escande, David Ruelle, Mitchell Feigenbaum, Leo Kadanoff, Jim Yorke, Celso Grebogi, Steve Wiggins, Philip Holmes, Jerry Gollub, Harry Swinney, 以及许多其他人. 我们还感谢已故的Res Jost, George Sudarshan, 和Walter Thirring.

还有许多其他人对这项工作做出了贡献, 无论是在软件开发还是内容开发方面, 包括Bill Siebert, Panayotis Skordos, Kleanthes Koniaris, Kevin Lin, James McBride, Rebecca Frankel, Thomas F. Knight, Pawan Kumar, Elizabeth Bradley, Alice Seckel, 和Kenneth Yip. 我们与Piet Hut, Jon Doyle, David Finkelstein, Peter Fisher, 和Robert Hermann 进行了非常有用的反馈和讨论.

我们感谢麻省理工学院人工智能实验室的热情款待和后勤支持. 我们感谢松下公司通过捐赠的教席支持Gerald Jay Sussman. 我们感谢Breene M. Kerr 通过捐赠的教席支持Jack Wisdom. 我们感谢麻省理工学院数学系和EECS系为Meinhard Mayer 提供的休假支持. 最后, 我们感谢Rebecca Bisbee 在我们参与这个项目的多年中提供的帮助.

希望这些内容对你有帮助! 如果你有任何问题或需要进一步的解释, 请随时告诉我. 😊

2. 第一章拉格朗日力学

力学的目的是描述物体在空间中随“时间”改变其位置的方式. 如果我以这种方式阐述力学的目标, 而不进行认真的反思和详细的解释, 我的良心将背负对清晰性神圣精神的严重罪过. 让我们来揭示这些罪过. 阿尔伯特·爱因斯坦 《相对论: 狭义与广义理论》, (1961), 第 9 页.

本书的主题是运动, 以及用于描述运动的数学工具. 对行星运动的数百年仔细观察揭示了这些运动中的规律性, 从而能够精确预测日食和合相之类的现象. 制定这些规律并最终理解它们的努力导致了数学的发展, 并发现数学可以有效地用于描述物理世界的某些方面. 数学可以用来描述自然现象, 这是一个了不起的事实. 当杂耍者抛出一个杂耍棒时, 它会沿着一个相当可预测的路径运动, 并且以一种相当可预测的方式旋转. 事实上, 杂耍的技巧关键取决于这种可预测性. 同样了不起的发现是, 用于描述行星运动的相同数学工具也可以用来描述杂耍棒的运动. 经典力学描述了一个粒子系统的运动, 这些粒子受到描述它们相互作用的力的作用. 复杂的物理对象, 例如杂耍棒, 可以被建模为由相互作用的强力维持固定空间关系的无数粒子. 系统可能以许多可以想象的方式运动, 但这些运动从未发生. 我们可以想象杂耍棒可能在空中暂停, 或者在被接住之前绕着杂耍者的头转十四圈, 但这些运动不会发生. 我们如何区分一个系统实际可能发生的运动与其他可想象的运动? 也许我们可以发明某种数学函数, 使我们能够区分所有可想象的运动中的可实现运动. 系统的运动可以通过给出系统每一部分在每一时刻的位置来描述. 这种对系统运动的描述称为位形路径; 位形路径指定了位形随时间变化的函数. 杂耍棒在空中飞行时旋转; 杂耍棒的位形通过给出棒的位置和方向来指定. 杂耍棒的运动通过给出棒的位置和方向作为时间的函数来指定. 我们寻求的函数以位形路径作为输入并产生某种输出. 我们希望这个函数在输入是可实现路径时具有某种特征行为. 例如, 输出可以是一个数字, 我们可以尝试安排这个数字仅在可实现路径上为零. 牛顿运动方程就是这种形式; 在每一时刻, 牛顿的微分方程都必须满足. 然而, 存在一种提供更多洞察力和力量的替代策略: 我们可以寻找一个路径区分函数, 它在可实现路径上具有最小值——在附近不可实现的路径上, 函数的值高于它在可实现路径上的值. 这就是变分策略: 对于每个物理系统, 我们发明一个路径区分函数, 它通过在每个可实现路径上具有驻点来区分系统的可实现运动.1 对于各种各样的系统, 系统的可实现运动可以用变分原理来表述.2

2.1. 1.1 作用量平稳原理

让我们假设对于每个物理系统, 存在一个路径区分函数, 它在可实现的路径上是平稳的. 我们将尝试推断它的一些性质.

2.1.1. 运动的经验

我们的日常经验表明, 物理运动可以用连续且光滑的位形路径来描述.3 我们看不到杂耍棒从一个地方跳到另一个地方. 我们也看不到杂耍棒突然改变它的运动方式. 我们的日常经验表明, 物理系统的运动不依赖于系统的整个历史. 如果我们在杂耍棒被抛向空中后进入房间, 我们无法判断它何时离开杂耍者的手. 杂耍者可能在不同的时间和地点以同样明显的效果抛出杂耍棒, 而我们走进门时看到的结果是一样的.4 所以棒的运动不依赖于历史的细节. 我们的日常经验表明, 物理系统的运动是确定性的. 事实上, 少数几个参数总结了系统历史的重要方面, 并决定了系统的未来演化. 例如, 在任何时刻, 杂耍棒的位置, 速度, 方向和方向变化率足以完全确定棒的未来运动.

3 4

2.1.2. 可实现的路径

从我们对运动的经验中, 我们对可实现的位形路径形成了一定的预期. 如果一条路径是可实现的, 那么该路径的任何片段都是可实现的路径片段. 反之, 如果路径的每个片段都是可实现的, 则该路径是可实现的路径片段. 路径片段的可实现性取决于该片段中路径的所有点. 路径片段的可实现性以相同的方式依赖于路径片段的每个点; 路径的任何部分都不是特殊的. 路径片段的可实现性仅取决于该片段内路径上的点; 路径片段的可实现性是一个局部性质. 因此, 路径区分函数聚合了在路径片段上每个时刻测量的系统的某个局部性质. 路径上的每个时刻必须以相同的方式处理. 来自路径片段上每个时刻的贡献必须以一种保持不相交子片段贡献独立性的方式组合起来. 满足这些要求的一种组合方法是将这些贡献相加, 使路径区分函数成为路径片段上某个局部性质的积分.5 因此, 我们将尝试安排路径区分函数, 它被构造为路径上局部性质的积分, 对于任何可实现路径都取极值. 这样的路径区分函数传统上称为系统的作用量 (action). 我们使用“作用量”这个词是为了与通用用法保持一致. 也许继续称其为“路径区分函数”会更清晰, 但那样其他人就更难知道我们在说什么了.6 为了推进变分力学的议程, 我们必须发明作用量函数, 这些函数在我们正在研究的系统的可实现轨迹上是平稳的. 我们将考虑在每个时刻都是位形路径某个局部性质的积分的作用量. 令 \(\gamma\) 为位形路径函数; \(\gamma(t)\) 是时间 t 时的位形.

5 6

路径 \(\gamma\) 在时间区间 \(t_1\) 到 \(t_2\) 的作用量是7 \[ S[\gamma](t_1, t_2) = \int_{t_1}^{t_2} F[\gamma] \quad (1.1) \] 其中 \(F[\gamma]\) 是一个时间的函数, 它测量路径的某个局部性质. 它可能取决于函数 \(\gamma\) 在该时刻的值以及 \(\gamma\) 在该时刻的任何导数的值.8 位形路径可以在某个时刻局部地通过位形, 位形的变化率, 以及给定时刻位形的所有更高阶导数来描述. 给定这些信息, 路径可以在包含该时刻的某个区间内重建.9 路径的局部性质最多只能依赖于路径的局部描述. 函数 \(F\) 测量位形路径 \(\gamma\) 的某个局部性质. 我们可以将 \(F[\gamma]\) 分解为两部分: 一部分测量局部描述的某个性质, 另一部分从路径函数中提取路径的局部描述. 测量系统局部性质的函数取决于特定的物理系统; 从路径构造路径局部描述的方法对于任何系统都是相同的. 我们可以将 \(F[\gamma]\) 写成这两个函数的复合:10 \[ F[\gamma] = L \circ T[\gamma]. \quad (1.2) \]

7 8 9 10

函数 \(T\) 接受路径并产生一个时间的函数. 它的值是一个有序元组, 包含时间, 该时刻的位形, 该时刻位形的变化率, 以及路径在该时刻求值的高阶导数的值. 对于路径 \(\gamma\) 和时间 \(t\):11 \[ T[\gamma](t) = (t, \gamma(t), D\gamma(t), \dots) \quad (1.3) \] 我们将此元组称为局部元组 (local tuple), 它包含所需数量的导数. 函数 \(L\) 取决于所研究物理系统的具体细节, 但不依赖于任何特定的位形路径. 函数 \(L\) 计算路径的一个实值局部性质. 我们会发现 \(L\) 只需要局部元组的有限个分量来计算这个性质: 路径可以从完整的局部描述中局部重建; \(L\) 依赖于局部元组的有限个分量保证了它测量的是一个局部性质.12 这种分解的优点在于, 路径的局部描述是通过一个统一的过程从位形路径计算出来的, 独立于所考虑的系统. 所有系统特定的信息都被包含在函数 \(L\) 中. 函数 \(L\) 称为系统的拉格朗日量 (Lagrangian)13, 产生的作用量为, \[ S[\gamma](t_1, t_2) = \int_{t_1}^{t_2} L \circ T[\gamma], \quad (1.4) \]

11 12 13

称为拉格朗日作用量 (Lagrangian action). 拉格朗日量可以被找到用于各种各样的系统. 我们将看到, 对于许多系统, 拉格朗日量可以取为动能和势能之差. 这样的拉格朗日量仅依赖于时间, 位形, 以及位形的变化率. 我们将重点关注这类系统, 但也会不时考虑更一般的系统. 系统的可实现路径通过相对于附近不可实现路径集合具有平稳作用量而与其他路径区分开来. 现在, 一些靠近可实现路径的路径也将是可实现的: 对于杂耍棒的任何运动, 都有一个略有不同的运动. 因此, 在解决作用量相对于路径变分是否平稳的问题时, 我们必须以某种方式限制我们正在考虑的路径集合, 使其只包含一条可实现路径. 事实证明, 对于仅依赖于位形和位形变化率的拉格朗日量, 限制路径集合为在路径段端点处具有相同位形的路径就足够了. 作用量平稳原理14 断言, 对于每个动力学系统, 我们可以构建一个拉格朗日量, 使得连接两个时间 \(t_1\) 和 \(t_2\) 处位形的可实现路径 \(\gamma\) 通过以下事实与其他所有可想象的路径区分开来: 作用量 \(S[\gamma](t_1, t_2)\) 相对于路径的变分是平稳的. 对于仅依赖于位形和位形变化率的拉格朗日量, 变分被限制为那些保持 \(t_1\) 和 \(t_2\) 处位形不变的变分.15

14 15

2.1.3. 练习 1.1: 费马光学

费马观察到反射和折射定律可以用以下事实来解释: 光在任何特定介质中以直线传播, 其速度取决于介质. 光线从源头通过任何介质序列到达目的地的路径是与邻近路径相比总时间最短的路径. 证明这些事实确实蕴含了反射和折射定律.16

2.2. 1.2 位形空间

让我们考虑可以被认为是有点粒子组成的力学系统, 这些粒子具有质量和位置, 但没有内部结构.17 延展体可以被认为是大量这些组成粒子组成的, 它们之间具有特定的空间关系. 延展体保持其形状是因为组成粒子之间的空间约束. 指定系统中所有组成粒子的位置就指定了系统的位形 (configuration). 系统各部分之间存在约束, 例如那些决定延展体形状的约束, 意味着组成粒子不能占据所有可能的位置. 系统可以呈现的所有位形的集合称为系统的位形空间 (configuration space).

16 17

位形空间的维度 (dimension) 是完全指定一个位形所必须给出的最小参数数量. 位形空间的维度也称为系统的自由度 (degrees of freedom).18 对于单个无约束粒子, 需要三个参数来指定位形. 因此, 点粒子的位形空间是三维的. 如果我们处理的是包含多个点粒子的系统, 位形空间会更复杂. 如果有 k 个独立的粒子, 我们需要 3k 个参数来描述可能的位形. 如果系统各部分之间存在约束, 位形被限制在一个较低维度的空间中. 例如, 一个由两个点粒子组成的系统, 在三维空间中运动, 且粒子间距离保持固定, 其位形空间是五维的: 例如, 用三个数字我们可以固定一个粒子的位置, 再用另外两个数字我们可以给出另一个粒子相对于第一个粒子的位置. 考虑一个杂耍棒. 如果我们给出构成棒的每个原子的位置, 棒的位形就被指定了. 然而, 存在更经济的位形描述. 在杂耍棒真正刚性的理想化情况下, 棒中所有原子之间的距离保持不变. 因此, 我们可以通过给出单个原子的位置和棒的方向来指定棒的位形. 利用约束, 棒的所有其他组成部分的位置可以从这些信息中确定. 杂耍棒的位形空间维度是六: 指定空间位置的最小参数数量是三, 指定方向的最小参数数量也是三. 随着系统随时间演化, 组成粒子在约束条件下运动. 每个组成粒子的运动由描述变化的位形来指定. 因此, 系统的运动可以描述为在位形空间中沿着一条路径演化. 位形路径可以通过一个函数, 即位形路径函数来指定, 该函数给出系统在任何时刻的位形.

18

2.2.1. 练习 1.2: 自由度

对于下面描述的每个力学系统, 给出位形空间的自由度数. a. 三个杂耍棒. b. 一个球面摆, 由一个质点悬挂在一根刚性无质量杆上, 杆连接到一个固定的支撑点. 摆锤可以在刚性杆施加的约束下向任何方向移动. 质点受到均匀重力作用. c. 一个球面双摆, 由一个质点悬挂在一根刚性无质量杆上, 杆连接到第二个质点, 第二个质点又悬挂在另一根无质量杆上, 连接到一个固定的支撑点. 质点受到均匀重力作用. d. 一个质点无摩擦地在刚性弯曲线上滑动. e. 一个陀螺, 由一个刚性轴对称体组成, 体上对称轴的一个点连接到一个固定的支撑点, 受到均匀引力作用. f. 与 e 相同, 但非轴对称.

2.3. 1.3 广义坐标

为了能够讨论具体的位形, 我们需要一组参数来标记这些位形. 用于指定系统位形的参数称为广义坐标 (generalized coordinates). 考虑一个无约束的自由粒子. 粒子的位形通过给出其位置来指定. 这需要三个参数. 无约束粒子有三个自由度. 指定粒子位置的一种方法是指定其相对于某个选定坐标轴的直角坐标. 位置的直角坐标分量是无约束粒子的广义坐标. 或者考虑一个理想的平面双摆: 一个质点被一根刚性杆约束在距固定点给定距离处, 第二个质点被另一根刚性杆约束在距第一个质点给定距离处, 所有运动限制在一个垂直平面内. 如果给出两根杆的方向, 则位形被指定. 这至少需要两个参数; 平面双摆有两个自由度. 指定每根杆方向的一种方法是指定它与垂直方向的夹角. 这两个角度是平面双摆的广义坐标. 坐标的数量不必与位形空间的维度相同, 尽管至少需要那么多. 我们可以选择使用比必要数量更多的参数, 但那样这些参数将受到约束的限制, 这些约束将系统限制在可能的位形上, 即位形空间的元素上. 对于上面描述的平面双摆, 两个角度坐标足以指定位形. 我们也可以将每个质点在平面中的直角坐标作为广义坐标, 相对于某个选定的坐标轴. 这些也是有效的坐标, 但我们必须明确记住那些限制可能位形到系统实际几何形状的约束. 具有与位形空间相同维度的坐标集更容易处理, 因为我们不必处理坐标间的显式约束. 因此, 目前我们将只考虑坐标数等于自由度数的表述; 稍后我们将学习如何处理具有冗余坐标和显式约束的系统. 通常, 位形构成一个维度为 n 的空间 M. n 维位形空间可以通过选择一个坐标函数 χ 来参数化, 该函数将位形空间的元素映射到实数的 n 元组. 如果维度大于一, 函数 χ 是 n 个独立坐标函数19 \(\chi^i\), \(i = 0, \dots, n-1\) 的元组, 其中每个 \(\chi^i\) 是定义在位形空间某个区域上的实值函数.20 对于位形空间 M 中的给定构型 m,

19 20

坐标函数的值 \(\chi^i(m)\) 是位形的广义坐标. 这些广义坐标允许我们将 n 维位形空间的点与实数的 n 元组等同起来.21 对于任何给定的位形空间, 有多种选择广义坐标的方法. 即使对于一个无约束运动的点, 我们也可以选择直角坐标, 极坐标, 或任何其他我们喜欢的坐标系. 系统的运动可以用位形路径 \(\gamma\) 来描述, 它将时间映射到位形空间的点. 对应于位形路径的是一个坐标路径 \(q = \chi \circ \gamma\), 它将时间映射到广义坐标的元组. 如果自由度大于一, 坐标路径是一个结构化对象: q 是分量坐标路径函数 \(q^i = \chi^i \circ \gamma\) 的元组. 在每个时刻 t, 值 \(q(t) = (q^0(t), \dots, q^{n-1}(t))\) 是一个位形的广义坐标. 坐标路径 q 的导数 Dq 是一个函数22, 它给出给定时刻位形坐标的变化率: \(Dq(t) = (Dq^0(t), \dots, Dq^{n-1}(t))\). 广义坐标的变化率称为广义速度 (generalized velocity). 我们也可以为路径的更高阶导数建立坐标表示. 我们引入函数 Ξ (发音为 "chart") , 它将坐标表示扩展到局部元组:23

21 22 23

\[ Ξ_\chi(t, \gamma(t), D\gamma(t), \dots) = (t, q(t), Dq(t), \dots), \quad (1.5) \] 其中 \(q = \chi \circ \gamma\). 函数 \(Ξ_\chi\) 接受无坐标的局部元组 \((t, \gamma(t), D\gamma(t), \dots)\) 并给出一个坐标表示, 作为时间, 该时刻坐标路径函数的值, 以及所需数量的坐标路径函数导数值的元组. 给定坐标路径 \(q = \chi \circ \gamma\), 局部元组的其余部分可以从中计算出来. 我们引入一个函数 \(\Gamma\) 来完成这个任务 \[ \Gamma[q](t) = (t, q(t), Dq(t), \dots). \quad (1.6) \] \(\Gamma\) 的计算只涉及对坐标路径 \(q = \chi \circ \gamma\) 求导; 函数 \(\Gamma\) 不依赖于 \(\chi\). 从关系式 (1.5) 和 (1.6) 我们发现 \[ \Gamma[q] = Ξ_\chi \circ T[\gamma]. \quad (1.7) \]

2.3.1. 练习 1.3: 广义坐标

对于练习 1.2 中描述的每个系统, 指定一个可以用来描述系统行为的广义坐标系.

2.3.2. 广义坐标中的拉格朗日量

作用量是特定拉格朗日量 L 的位形路径段的性质. 作用量不依赖于用于标记位形的坐标系. 我们可以利用这个性质来找到拉格朗日量 L 的坐标表示 \(L_\chi\). 作用量是 \[ S[\gamma](t_1, t_2) = \int_{t_1}^{t_2} L \circ T[\gamma]. \quad (1.8) \] 拉格朗日量 L 是局部元组 \(T[\gamma](t) = (t, \gamma(t), D\gamma(t), \dots)\) 的函数. 局部元组具有坐标表示 \(\Gamma[q] = Ξ_\chi \circ T[\gamma]\), 其中 \(q = \chi \circ \gamma\). 因此如果我们选择24 \[ L_\chi = L \circ Ξ_\chi^{-1}, \quad (1.9) \] 那么25 \[ L_\chi \circ \Gamma[q] = L \circ T[\gamma]. \quad (1.10) \] 左边是我们使用坐标表示作为中介的函数复合; 右边是不涉及坐标的两个函数的复合. 我们将作用量的坐标表示定义为 \[ S_\chi[q](t_1, t_2) = \int_{t_1}^{t_2} L_\chi \circ \Gamma[q]. \quad (1.11) \] 函数 \(S_\chi\) 接受坐标路径; 函数 S 接受位形路径. 由于根据方程 (1.10) 被积函数相同, 积分值也相同: \[ S[\gamma](t_1, t_2) = S_\chi[\chi \circ \gamma](t_1, t_2). \quad (1.12) \] 因此我们有办法构造拉格朗日量的坐标表示, 使得在任何坐标系下路径的作用量都相同. 对于仅依赖于位置和速度的拉格朗日量, 作用量也可以写成 \[ S_\chi[q](t_1, t_2) = \int_{t_1}^{t_2} L_\chi(t, q(t), Dq(t)) dt. \quad (1.13) \]

24 25

在定义拉格朗日量或作用量时使用的坐标系通常是明确的, 所以下标 \(\chi\) 通常会被省略.

2.4. 1.4 计算作用量

为了说明上述思想, 并介绍它们作为计算机程序的表述, 我们考虑最简单的力学系统——一个在三维空间中运动的自由粒子. 欧拉和拉格朗日发现, 对于自由粒子, 其动能在粒子实际路径上的时间积分小于沿任何相同点之间的替代路径的相同积分: 自由粒子根据作用量平稳原理运动, 前提是我们取拉格朗日量为动能. 质量为 m, 速度为 v 的粒子的动能是 \(\frac{1}{2}mv^2\), 其中 v 是 v 的大小. 在这种情况下, 我们可以选择广义坐标为普通的直角坐标. 遵循欧拉和拉格朗日, 自由粒子的拉格朗日量是26 \[ L(t, x, v) = \frac{1}{2}m(v \cdot v), \quad (1.14) \] 其中形式参数 x 命名了相对于给定直角坐标系的位置分量元组, 而形式参数 v 命名了速度分量元组.27 我们可以将这个公式表达为一个过程:

(define ((L-free-particle mass) local)
  (let ((v (velocity local)))
    (* 1/2 mass (dot-product v v))))

该定义表明 L-free-particle 是一个过程, 它接受质量作为参数, 并返回一个过程. 这个返回的过程接受一个局部元组 local,28 用过程 velocity 提取广义速度, 并使用该速度计算拉格朗日量的值. 假设我们让 q 表示一个坐标路径函数, 它将时间映射到位置分量:29 \[ q(t) = (x(t), y(t), z(t)). \quad (1.15) \] 我们可以这样定义:30

(define q
  (up (literal-function 'x)
      (literal-function 'y)
      (literal-function 'z)))

其中 literal-function 创建一个代表函数的过程, 该函数只有一个参数, 并且除了给定的符号名称外没有其他已知属性.31 符号 q 现在命名了一个接受一个实数参数 (时间) 并产生一个包含三个分量的元组的过程, 这些分量表示该时刻的坐标. 例如, 我们可以将此过程应用于符号时间 t, 如下所示:

(print-expression (q 't))

过程 print-expression 产生表达式的可打印形式. 过程 print-expression 在打印之前会简化表达式. 坐标路径 Dq 的导数是将时间映射到速度分量的函数: \[ Dq(t) = (Dx(t), Dy(t), Dz(t)). \] 我们可以创建并使用函数的导数.32 例如, 我们可以写:

(print-expression ((D q) 't))

函数 \(\Gamma\) 接受一个坐标路径并返回一个时间的函数, 该函数给出局部元组 \((t, q(t), Dq(t), \dots)\). 我们用过程 Gamma 实现这个 \(\Gamma\). Gamma 的作用如下:

(print-expression ((Gamma q) 't))

所以复合 \(L \circ \Gamma\) 是一个时间的函数, 它返回路径上该点处拉格朗日量的值:

(print-expression
 ((compose (L-free-particle 'm) (Gamma q)) 't))

过程 show-expression 类似于 print-expression, 但它将简化的表达式放入传统的数学中缀形式并显示结果.33 大多数时候我们将使用这种显示方法, 来制作本书中出现的框式表达式. 它也会产生 print-expression 返回的前缀形式, 但我们通常不会显示出来.34

(show-expression
 ((compose (L-free-particle 'm) (Gamma q)) 't))

\[ \frac{1}{2} m (Dx(t))^2 + \frac{1}{2} m (Dy(t))^2 + \frac{1}{2} m (Dz(t))^2 \] 根据方程 (1.11), 我们可以将拉格朗日作用量从时间 \(t_1\) 到 \(t_2\) 计算为:

(define (Lagrangian-action L q t1 t2)
  (definite-integral (compose L (Gamma q)) t1 t2))

Lagrangian-action 接受计算拉格朗日量的过程 L, 计算坐标路径的过程 q, 以及起始和结束时间 t1 和 t2 作为参数. 这里使用的 definite-integral 接受一个函数和两个界限 t1 和 t2 作为参数, 并计算函数在区间 [t1, t2] 上的定积分.35 注意 Lagrangian-action 的定义不依赖于任何特定的坐标集, 甚至不依赖于位形空间的维度. 从拉格朗日量的坐标表示和坐标路径计算作用量的方法不依赖于坐标系. 我们现在可以计算自由粒子沿路径的作用量. 例如, 考虑一个粒子沿直线 \(t \to (4t+7, 3t+5, 2t+1)\) 匀速运动.36 我们将路径表示为一个过程

(define (test-path t)
  (up (+ (* 4 t) 7)
      (+ (* 3 t) 5)
      (+ (* 2 t) 1)))

对于质量为 3 的粒子, 我们得到 \(t=0\) 到 \(t=10\) 之间的作用量为37

(Lagrangian-action (L-free-particle 3.0) test-path 0.0 10.0)

2.4.1. 练习 1.4: 拉格朗日作用量

对于自由粒子, 合适的拉格朗日量是38 \[ L(t, x, v) = \frac{1}{2} m v^2. \] 假设 x 是自由粒子的匀速直线路径, 使得 \(x_a = x(t_a)\) 且 \(x_b = x(t_b)\). 证明解路径上的作用量是 \[ \frac{m}{2} \frac{(x_b - x_a)^2}{t_b - t_a}. \]

2.4.2. 作用量最小路径

我们已经知道自由粒子的实际路径是匀速直线运动. 根据欧拉和拉格朗日, 沿直线测试路径的作用量小于沿邻近路径的作用量. 令 q 为作用量为 \(S[q](t_1, t_2)\) 的直线测试路径. 令 \(q + \epsilon \eta\) 为邻近路径, 由 q 加上路径变分 \(\eta\) 乘以实参数 \(\epsilon\) 得到.39 变分路径上的作用量是 \(S[q + \epsilon \eta](t_1, t_2)\). 欧拉和拉格朗日发现, 对于任何在端点处为零的 \(\eta\) 和任何小的非零 \(\epsilon\), 都有 \(S[q + \epsilon \eta](t_1, t_2) > S[q](t_1, t_2)\). 让我们通过改变测试路径, 加上某个在端点 \(t=t_1\) 和 \(t=t_2\) 处为零的测试函数的量来进行数值验证. 为了构造一个在端点处为零的函数 \(\eta\), 给定一个足够表现良好的函数 \(\nu\), 我们可以使用 \(\eta(t) = (t-t_1)(t-t_2)\nu(t)\). 这可以实现为:

(define ((make-eta nu t1 t2) t)
  (* (- t t1) (- t t2) (nu t)))

我们可以用它来计算自由粒子在给定路径变分下, 作为 \(\epsilon\) 的函数, 在变分路径上的作用量:40

(define ((varied-free-particle-action mass q nu t1 t2) epsilon)
  (let ((eta (make-eta nu t1 t2)))
    (Lagrangian-action (L-free-particle mass)
                       (+ q (* epsilon eta))
                       t1
                       t2)))

变分路径的作用量, 其中 \(\nu(t) = (\sin t, \cos t, t^2)\), 且 \(\epsilon = 0.001\), 正如预期的那样, 大于测试路径的作用量:

((varied-free-particle-action 3.0 test-path
                              (up sin cos square)
                              0.0 10.0)
 0.001)

我们可以数值计算使作用量最小化的 \(\epsilon\) 值. 我们在, 比如说, -2 和 1 之间搜索:41

(minimize
 (varied-free-particle-action 3.0 test-path
                              (up sin cos square)
                              0.0 10.0)
 -2.0 1.0)

我们发现结果正如预期——最佳 \(\epsilon\) 值为零,42 且最小作用量值是沿直线路径的作用量.

2.4.3. 寻找使作用量最小化的轨迹

我们已经使用变分原理来确定给定轨迹是否可实现. 我们也可以使用变分原理来实际寻找轨迹. 给定一组由有限数量参数指定的轨迹, 我们可以搜索参数空间, 寻找该集合中最能近似真实轨迹的轨迹, 方法是找到使作用量最小化的那一个. 通过选择一组好的近似函数, 我们可以任意接近真实轨迹.43 一种构造具有固定端点的参数化路径的方法是使用一个通过端点以及若干中间点的多项式. 改变中间点的位置可以改变路径; 变分路径的参数是中间点坐标. 过程 make-path 使用拉格朗日插值多项式构造这样的路径.44 指定了参数化路径后, 我们可以构造一个参数化作用量, 它就是沿参数化路径计算的作用量:

(define ((parametric-path-action Lagrangian t0 q0 t1 q1) qs)
  (let ((path (make-path t0 q0 t1 q1 qs)))
    (Lagrangian-action Lagrangian path t0 t1))))

我们可以通过寻找使作用量最小化的参数来找到近似解路径. 我们使用一个现成的多维最小化过程来完成这个最小化:45

(define (find-path Lagrangian t0 q0 t1 q1 n)
  (let ((initial-qs (linear-interpolants q0 q1 n)))
    (let ((minimizing-qs
           (multidimensional-minimize
            (parametric-path-action Lagrangian t0 q0 t1 q1)
            initial-qs)))
      (make-path t0 q0 t1 q1 minimizing-qs))))

为了说明这个策略的用法, 我们将寻找谐振子的轨迹, 其拉格朗日量为46 \[ L(t, q, v) = \frac{1}{2} m v^2 - \frac{1}{2} k q^2, \quad (1.16) \] 对于质量 m 和弹簧常数 k. 这个拉格朗日量实现为

(define ((L-harmonic m k) local)
  (let ((q (coordinate local))
        (v (velocity local)))
    (- (* 1/2 m (square v)) (* 1/2 k (square q)))))

我们可以找到谐振子在 \(m=1\) 和 \(k=1\) 时, 在 \(q(0)=1\) 和 \(q(\pi/2)=0\) 之间的近似路径如下:47

(define q (find-path (L-Harmonic 1.0 1.0) 0. 1. :pi/2 0. 3))

我们知道, 对于 \(m=1\) 和 \(k=1\), 这个谐振子的轨迹是 \[ q(t) = A \cos(t + \phi) \quad (1.17) \] 其中振幅 A 和相位 \(\phi\) 由初始条件确定. 对于所选的端点条件, 解是 \(q(t) = \cos(t)\). 近似路径应该是 \(\cos\) 在 0 到 \(\pi/2\) 范围内的近似. 图 1.1 显示了该过程产生的多项式近似中的误差. 使用三个中间点的近似中的最大误差小于 \(1.7 \times 10^{-4}\). 我们发现, 正如预期的那样, 随着中间点数量的增加, 近似误差减小. 对于四个中间点, 误差大约好 15 倍.

figure-1.1.png

Figure 1: 图 1.1 作用量最小化的多项式近似与谐振子实际轨迹之间的差异. 横坐标是时间, 纵坐标是误差.

2.4.4. 练习 1.5: 求解过程

我们可以通过修改过程 parametric-path-action, 在每次计算作用量时绘制路径, 来观察最小化的过程. 试试这个:

(define win2 (frame 0. :pi/2 0. 1.2))

(define ((parametric-path-action Lagrangian t0 q0 t1 q1)
         intermediate-qs)
  (let ((path (make-path t0 q0 t1 q1 intermediate-qs)))
    ;; display path
    (graphics-clear win2)
    (plot-function win2 path t0 t1 (/ (- t1 t0) 100))
    ;; compute action
    (Lagrangian-action Lagrangian path t0 t1)))

(find-path (L-harmonic 1. 1.) 0. 1. :pi/2 0. 2)

2.4.5. 练习 1.6: 最小化作用量

假设我们试图通过最小化一个不可能问题的作用量来获得路径. 例如, 假设我们有一个自由粒子, 并且我们施加了与粒子自由运动不一致的速度和位置端点条件. 形式主义会保护自己免受这种不愉快的攻击吗? 你可能会发现编程并看看会发生什么很有启发性.

2.5. 1.5 欧拉-拉格朗日方程

作用量平稳原理将位形空间中系统的可实现路径刻画为那些作用量具有平稳值的路径. 在初等微积分中, 我们知道函数的临界点是导数消失的点. 以类似的方式, 作用量平稳的路径是满足某个微分方程组的解. 这个系统称为欧拉-拉格朗日方程 (Euler-Lagrange equations) 或简称拉格朗日方程 (Lagrange equations), 它是允许我们使用作用量平稳原理来计算力学系统运动的纽带, 并关联变分和牛顿力学表述.48

2.5.1. 拉格朗日方程

我们将会发现, 如果 L 是一个依赖于时间, 坐标和速度的系统的拉格朗日量, 并且如果 q 是一个坐标路径, 其作用量 \(S[q](t_1, t_2)\) 是平稳的 (相对于任何保持路径端点固定的变分), 那么 \[ D(\partial_2 L \circ \Gamma[q]) - \partial_1 L \circ \Gamma[q] = 0. \quad (1.18) \] 这里 L 是一个局部元组的实值函数; \(\partial_1 L\) 和 \(\partial_2 L\) 表示 L 对其广义位置和广义速度参数的偏导数.49 函数 \(\partial_2 L\) 将一个局部元组映射到一个结构, 其分量是 L 相对于广义速度的每个分量的导数. 函数 \(\Gamma[q]\) 将时间映射到局部元组: \(\Gamma[q](t) = (t, q(t), Dq(t), \dots)\). 因此, 复合 \(\partial_1 L \circ \Gamma[q]\) 和 \(\partial_2 L \circ \Gamma[q]\) 是单参数 (时间) 的函数. 拉格朗日方程断言 \(\partial_2 L \circ \Gamma[q]\) 的导数等于 \(\partial_1 L \circ \Gamma[q]\), 在任何时刻. 给定一个拉格朗日量, 拉格朗日方程构成一个必须由可实现路径满足的常微分方程组.50

2.5.2. 1.5.1 拉格朗日方程的推导

我们将证明作用量平稳原理意味着可实现路径满足一组常微分方程. 首先, 我们将开发工具来研究路径依赖函数如何随路径变化而变化. 然后, 我们将把这些工具应用于作用量, 以推导拉格朗日方程.

  1. 路径变分

    假设我们有一个依赖于路径 q 的函数 \(f[q]\). 当路径变化时, 函数如何变化? 令 q 为坐标路径, \(q + \epsilon \eta\) 为变分路径, 其中函数 \(\eta\) 是可以添加到路径 q 的类路径函数, 因子 \(\epsilon\) 是一个比例因子. 我们定义函数 f 在路径 q 上的变分 \(\delta_\eta f[q]\) 为51 \[ \delta_\eta f[q] = \lim_{\epsilon \to 0} \frac{f[q + \epsilon \eta] - f[q]}{\epsilon}. \quad (1.19) \] f 的变分是路径微小变分时函数 f 变化的线性近似. f 的变分依赖于 \(\eta\). 一个简单的例子是恒等路径函数的变分: \(I[q] = q\). 应用定义 \[ \delta_\eta I[q] = \lim_{\epsilon \to 0} \frac{(q + \epsilon \eta) - q}{\epsilon} = \eta. \quad (1.20) \] 传统上将 \(\delta_\eta I[q]\) 简单地写为 \(\delta q\). 另一个例子是返回路径导数的路径函数的变分. 我们有 \[ \delta_\eta g[q] = \lim_{\epsilon \to 0} \frac{D(q + \epsilon \eta) - Dq}{\epsilon} = D\eta \quad \text{其中 } g[q] = Dq. \quad (1.21) \] 传统上将 \(\delta_\eta g[q]\) 写为 \(\delta Dq\). 变分可以用导数来表示. 令 \(g(\epsilon) = f[q + \epsilon \eta]\), 那么 \[ \delta_\eta f[q] = \lim_{\epsilon \to 0} \frac{g(\epsilon) - g(0)}{\epsilon} = Dg(0). \quad (1.22) \] 变分具有以下类似导数的性质. 对于路径依赖函数 f 和 g 以及常数 c: \[ \delta_\eta (f g)[q] = (\delta_\eta f[q]) g[q] + f[q] (\delta_\eta g[q]) \quad (1.23) \] \[ \delta_\eta (f + g)[q] = \delta_\eta f[q] + \delta_\eta g[q] \quad (1.24) \] \[ \delta_\eta (c f)[q] = c \, \delta_\eta f[q]. \quad (1.25) \] 令 F 为路径无关函数, g 为路径依赖函数, 那么 \[ \delta_\eta h[q] = (DF \circ g[q]) \delta_\eta g[q] \quad \text{其中 } h[q] = F \circ g[q]. \quad (1.26) \] 算符 D (微分) 和 \(\delta\) (变分) 在以下意义上是可交换的: \[ D \delta_\eta f[q] = \delta_\eta g[q] \quad \text{其中 } g[q] = D(f[q]). \quad (1.27) \] 变分在类似意义上也与积分可交换. 如果一个路径依赖函数 f 对于特定路径 q 相对于该路径的微小变化是平稳的, 那么它对于由将特定函数 \(\eta\) 的小倍数加到 q 所产生的那些变分的子集是平稳的. 因此, 对于任意 \(\eta\), 声明 \(\delta_\eta f[q] = 0\) 意味着函数 f 对于围绕 q 的路径微小变分是平稳的.

    1. 练习 1.7: \(\delta\) 的性质

      证明 \(\delta\) 具有性质 1.23-1.27.

    2. 练习 1.8: \(\delta\) 的实现

      a. 假设我们有一个实现路径依赖函数 f 的过程: 对于路径 q 和时间 t, 它的值是 ((f q) t). 过程 delta 计算变分 \((\delta_\eta f)[q](t)\) 作为 ((((delta eta) f) q) t) 的值. 完成 delta 的定义:

      (define ((((delta eta) f) q) t)
        ...)
      

      b. 使用你的 delta 过程来验证练习 1.7 中列出的 \(\delta\) 的性质, 对于诸如由过程 f 实现的简单函数:

      (define ((F q) t)
        ((literal-function 'f) (q t)))
      

      这实现了一个简单的路径依赖函数, 它仅依赖于路径在每个时刻的坐标.

  2. 作用量变分

    作用量是拉格朗日量沿路径的积分: \[ S[q](t_1, t_2) = \int_{t_1}^{t_2} L \circ \Gamma[q]. \quad (1.28) \] 对于可实现路径 q, 作用量相对于任何保持端点不变的变分 \(\eta\) (\(\eta(t_1) = \eta(t_2) = 0\)) 的变分为零: \[ \delta_\eta S[q](t_1, t_2) = 0. \quad (1.29) \] 作用量的变分是 \[ \delta_\eta S[q](t_1, t_2) = \int_{t_1}^{t_2} \delta_\eta h[q] \quad \text{其中 } h[q] = L \circ \Gamma[q]. \quad (1.30) \] 这源于变分与积分可交换的事实. 利用以下事实 \[ \delta_\eta \Gamma[q] = (0, \eta, D\eta), \quad (1.31) \] 这由方程 (1.20) 和 (1.21) 得出, 并使用变分的链式法则 (1.26), 我们得到52 \[ \delta_\eta S[q](t_1, t_2) = \int_{t_1}^{t_2} (DL \circ \Gamma[q]) \delta_\eta \Gamma[q] \] \[ = \int_{t_1}^{t_2} ((\partial_1 L \circ \Gamma[q]) \eta + (\partial_2 L \circ \Gamma[q]) D\eta). \quad (1.32) \] 将方程 (1.32) 的最后一项分部积分, 得到 \[ \delta_\eta S[q](t_1, t_2) = (\partial_2 L \circ \Gamma[q]) \eta \Big|_{t_1}^{t_2} \] \[ + \int_{t_1}^{t_2} \{ (\partial_1 L \circ \Gamma[q]) - D(\partial_2 L \circ \Gamma[q]) \} \eta. \quad (1.33) \] 对于我们的变分 \(\eta\), 我们有 \(\eta(t_1) = \eta(t_2) = 0\), 所以第一项消失. 因此, 作用量的变分当且仅当以下条件成立时为零 \[ 0 = \int_{t_1}^{t_2} \{ (\partial_1 L \circ \Gamma[q]) - D(\partial_2 L \circ \Gamma[q]) \} \eta. \quad (1.34) \] 根据假设, q 是一条可实现路径, 作用量的变分为零. 因此 (1.34) 必须对任何在端点处为零的函数 \(\eta\) 都成立. 我们在变分的选择中保留了足够的自由度, 这迫使积分中乘以 \(\eta\) 的因子在路径上的每个点都为零. 我们通过反证法论证: 假设这个因子在某个特定时间不为零. 那么它至少在一个分量上不为零. 但是如果我们选择 \(\eta\) 是一个仅在该分量上, 在该时间的邻域内非零, 而在其他地方都为零的凸起函数, 那么积分将不为零. 因此我们可以得出结论, 花括号中的因子恒等于零:53 \[ D(\partial_2 L \circ \Gamma[q]) - (\partial_1 L \circ \Gamma[q]) = 0. \quad (1.35) \] 这正是我们要获得的拉格朗日方程. 满足拉格朗日方程的路径是作用量平稳的路径, 并且作用量平稳的事实仅取决于路径上每一点处 L 的值 (以及邻近路径上每一点处的值), 而不取决于我们用来计算这些值的坐标系. 因此, 如果系统的路径在某个特定坐标系中满足拉格朗日方程, 那么它必须在任何坐标系中都满足拉格朗日方程. 因此, 变分力学方程在任何位形空间和任何坐标系中都以相同的方式导出.

  3. 谐振子

    作为一个例子, 考虑谐振子. 拉格朗日量是 \[ L(t, x, v) = \frac{1}{2} m v^2 - \frac{1}{2} k x^2. \quad (1.36) \] 那么 \[ \partial_1 L(t, x, v) = -kx \quad \text{和} \quad \partial_2 L(t, x, v) = mv. \quad (1.37) \] 拉格朗日量应用于时间, 一个坐标和一个速度的元组. 符号 t, x 和 v 是任意的; 它们用于指定拉格朗日量的形式参数. 现在假设我们有一个位形路径 y, 它给出振子在每个时间 t 的坐标 y(t). 相应局部元组在时间 t 的初始段是 \[ \Gamma[y](t) = (t, y(t), Dy(t)). \quad (1.38) \] 所以 \[ \partial_1 L \circ \Gamma[y](t) = -ky(t) \quad \text{和} \quad \partial_2 L \circ \Gamma[y](t) = mDy(t), \quad (1.39) \] 并且 \[ D(\partial_2 L \circ \Gamma[y])(t) = mD^2y(t), \quad (1.40) \] 所以拉格朗日方程是 \[ mD^2y(t) + ky(t) = 0, \quad (1.41) \] 这就是谐振子的运动方程.

  4. 轨道运动

    作为另一个例子, 考虑一个质量为 m 的粒子在二维运动, 其引力势能为 \(-\mu/r\), 其中 r 是到引力中心的距离. 一个拉格朗日量是54 \[ L(t; \xi, \eta; v_\xi, v_\eta) = \frac{1}{2} m (v_\xi^2 + v_\eta^2) + \frac{\mu}{\sqrt{\xi^2 + \eta^2}}, \quad (1.42) \] 其中 \(\xi\) 和 \(\eta\) 是粒子直角坐标的形式参数, \(v_\xi\) 和 \(v_\eta\) 是相应的直角速度分量的形式参数. 那么55 \[ \partial_1 L(t; \xi, \eta; v_\xi, v_\eta) = [\partial_{1,0} L(t; \xi, \eta; v_\xi, v_\eta), \partial_{1,1} L(t; \xi, \eta; v_\xi, v_\eta)] \] \[ = \left[ \frac{-\mu\xi}{(\xi^2 + \eta^2)^{3/2}}, \frac{-\mu\eta}{(\xi^2 + \eta^2)^{3/2}} \right]. \quad (1.43) \] 类似地, \[ \partial_2 L(t; \xi, \eta; v_\xi, v_\eta) = [m v_\xi, m v_\eta]. \quad (1.44) \] 现在假设我们有一个位形路径 \(q = (x, y)\), 使得时间 t 的坐标元组是 \(q(t) = (x(t), y(t))\). 局部元组在时间 t 的初始段是 \[ \Gamma[q](t) = (t; x(t), y(t); Dx(t), Dy(t)). \quad (1.45) \] 所以 \[ \partial_1 L \circ \Gamma[q](t) = \left[ \frac{-\mu x(t)}{((x(t))^2 + (y(t))^2)^{3/2}}, \frac{-\mu y(t)}{((x(t))^2 + (y(t))^2)^{3/2}} \right] \] \[ \partial_2 L \circ \Gamma[q](t) = [m Dx(t), m Dy(t)] \quad (1.46) \] 并且 \[ D(\partial_2 L \circ \Gamma[q])(t) = [m D^2x(t), m D^2y(t)]. \quad (1.47) \] 分量拉格朗日方程在时间 t 是 \[ m D^2x(t) + \frac{\mu x(t)}{((x(t))^2 + (y(t))^2)^{3/2}} = 0 \] \[ m D^2y(t) + \frac{\mu y(t)}{((x(t))^2 + (y(t))^2)^{3/2}} = 0. \quad (1.48) \]

2.5.3. 练习 1.9: 拉格朗日方程

推导以下系统的拉格朗日方程, 展示所有中间步骤, 就像我们在谐振子和轨道运动示例中所做的那样. a. 一个质量为 m 的粒子在二维势 \(V(x, y) = (x^2 + y^2)/2 + x^2y - y^3/3\) 中运动, 其中 x 和 y 是粒子的直角坐标. 该系统的拉格朗日量是 \(L(t; x, y; v_x, v_y) = \frac{1}{2}m(v_x^2 + v_y^2) - V(x, y)\). b. 一个理想的平面摆由质量为 m 的摆锤通过长度为 l 的无质量杆连接到枢轴, 受到均匀引力加速度 g 的作用. 该系统的拉格朗日量是 \(L(t, \theta, \dot{\theta}) = \frac{1}{2}ml^2 \dot{\theta}^2 + mgl \cos \theta\). L 的形式参数是 t, \(\theta\) 和 \(\dot{\theta}\); \(\theta\) 测量摆杆与铅垂线的夹角, \(\dot{\theta}\) 是杆的角速度.56 c. 一个质量为 m 的粒子约束在半径为 R 的球面上运动的拉格朗日量是 \(L(t; \theta, \phi; \alpha, \beta) = \frac{1}{2}mR^2(\alpha^2 + (\beta \sin \theta)^2)\). 角度 \(\theta\) 是粒子的余纬度, \(\phi\) 是经度; 余纬度的变化率是 \(\alpha\), 经度的变化率是 \(\beta\).

2.5.4. 练习 1.10: 高阶导数拉格朗日量

推导依赖于加速度的拉格朗日量的拉格朗日方程. 特别地, 证明对于形式为 \(L(t, q, \dot{q}, \ddot{q})\) 且包含 \(\ddot{q}\) 项的拉格朗日量, 其拉格朗日方程为:57 \[ D^2(\partial_3 L \circ \Gamma[q]) - D(\partial_2 L \circ \Gamma[q]) + \partial_1 L \circ \Gamma[q] = 0. \quad (1.49) \] 通常, 这些首先由泊松推导的方程将涉及 q 的四阶导数. 注意, 推导过程与没有加速度的拉格朗日方程的推导完全类似; 只是更长一些. 我们必须对变分施加什么限制, 以使临界路径满足一个微分方程?

2.5.5. 1.5.2 计算拉格朗日方程

计算拉格朗日方程的过程反映了函数表达式 (1.18), 其中过程 Gamma 实现了 \(\Gamma\):58

(define ((Lagrange-equations Lagrangian) q)
  (- (D (compose ((partial 2) Lagrangian) (Gamma q)))
     (compose ((partial 1) Lagrangian) (Gamma q))))

Lagrange-equations 的参数是计算拉格朗日量的过程. 它返回一个过程, 当应用于路径 q 时, 该过程返回一个单参数 (时间) 的过程, 该过程计算拉格朗日方程 (1.18) 的左侧. 如果 q 是拉格朗日作用量平稳的路径, 这些残差值为零. 注意 Lagrange-equations 过程, 就像拉格朗日方程本身一样, 对任何广义坐标系都有效. 当我们编写程序来研究特定系统时, 实现拉格朗日函数和路径 q 的过程将反映为表示系统所选择的实际坐标, 但我们在每种情况下都使用相同的 Lagrange-equations 过程. 这种抽象反映了一个重要的事实,

  1. 自由粒子

    再次考虑自由粒子的情况. 拉格朗日量由过程 L-free-particle 实现. 与其像我们在 1.4 节那样数值积分和最小化作用量, 我们可以检查任意直线路径 \(t \to (at+a_0, bt+b_0, ct+c_0)\) 的拉格朗日方程

    (define (test-path t)
      (up (+ (* 'a t) 'a0)
          (+ (* 'b t) 'b0)
          (+ (* 'c t) 'c0)))
    (print-expression
     (((Lagrange-equations (L-free-particle 'm))
       test-path)
      't))
    

    残差为零表明测试路径满足拉格朗日方程.59 除了检查三维空间中单个路径的方程外, 我们还可以将 Lagrange-equations 过程应用于任意函数:60

    (show-expression
     (((Lagrange-equations (L-free-particle 'm))
       (literal-function 'x))
      't))
    

    \[ m D^2x(t) \] 结果是一个包含任意时间 t 和质量 m 的表达式, 因此它恰好在 \(D^2 x = 0\) 时为零, 这是自由粒子的预期方程.

  2. 谐振子

    再次考虑谐振子, 其拉格朗日量为 (1.16). 我们知道谐振子的运动是具有给定振幅, 频率和相位的正弦波: \[ x(t) = a \cos(\omega t + \phi). \quad (1.50) \] 假设我们忘记了解中的常数与振子的物理参数之间的关系. 让我们代入建议的解并查看残差:

    (define (proposed-solution t)
      (* 'a (cos (+ (* 'omega t) 'phi))))
    (show-expression
     (((Lagrange-equations (L-harmonic 'm 'k))
       proposed-solution)
      't))
    

    \[ \cos(\omega t + \phi) a (k - m \omega^2) \] 此处的残差表明, 对于非零振幅, 唯一允许的解是满足 \((k - m\omega^2) = 0\), 或 \(\omega = \sqrt{k/m}\).

2.5.6. 练习 1.11:

使用 Lagrange-equations 过程计算练习 1.9 中拉格朗日量的拉格朗日方程. 另外, 使用计算机执行 Lagrange-equations 过程中的每个步骤并显示中间结果. 将这些步骤与你在练习 1.9 的手动推导中显示的步骤联系起来.

2.5.7. 练习 1.12:

a. 编写一个过程来计算依赖于加速度的拉格朗日量的拉格朗日方程, 如练习 1.10 中所示. b. 使用你的过程计算拉格朗日量 \(L(t, x, v, a) = -\frac{1}{2} m x a - \frac{1}{2} k x^2\) 的拉格朗日方程. 你认出由此产生的运动方程吗? c. 为了更有趣, 编写一个通用的拉格朗日方程过程, 它接受任意阶的拉格朗日量和阶数, 以产生所需的运动方程.

2.6. 1.6 如何寻找拉格朗日量

拉格朗日方程是一个二阶微分方程组. 为了使用它们来计算力学系统的演化, 我们必须为系统找到一个合适的拉格朗日量. 对于每个系统, 并没有通用的方法来构造拉格朗日量, 但有一类重要的系统, 我们可以直接根据动能和势能来确定拉格朗日量. 关键思想是构造一个拉格朗日量 L, 使得拉格朗日方程就是牛顿方程 \(F=ma\). 假设我们的系统由 N 个粒子组成, 由 \(\alpha\) 索引, 质量为 \(m_\alpha\), 矢量位置为 \(x_\alpha(t)\). 进一步假设作用在粒子上的力可以写成势能 V 的梯度, V 是粒子位置的函数, 可能还与时间有关, 但不依赖于速度. 换句话说, 粒子 \(\alpha\) 上的力是 \(F_\alpha = -\nabla_{x_\alpha} V\), 其中 \(\nabla_{x_\alpha} V\) 是 V 相对于粒子 \(\alpha\) 位置的梯度. 我们可以将牛顿方程写为 \[ D(m_\alpha D x_\alpha)(t) + \nabla_{x_\alpha} V(t, x_0(t), \dots, x_{N-1}(t)) = 0. \quad (1.51) \] 矢量可以用直角坐标基上的分量元组表示. 因此 \(x_1(t)\) 表示为元组 \(x_1(t)\). 令 V 为用分量表示的势能函数: \[ V(t; x_0(t), \dots, x_{N-1}(t)) = V(t, x_0(t), \dots, x_{N-1}(t)). \quad (1.52) \] 牛顿方程是 \[ D(m_\alpha D x_\alpha)(t) + \partial_{1,\alpha} V(t; x_0(t), \dots, x_\alpha(t), \dots, x_{N-1}(t)) = 0, \quad (1.53) \] 其中 \(\partial_{1,\alpha} V\) 是 V 相对于 \(x_\alpha(t)\) 参数槽的偏导数. 为了形成拉格朗日方程, 我们将所有粒子的所有位置分量收集到一个元组 \(x(t)\) 中, 因此 \(x(t) = (x_0(t), \dots, x_{N-1}(t))\). 坐标路径 x 的拉格朗日方程是 \[ D(\partial_2 L \circ \Gamma[x]) - (\partial_1 L \circ \Gamma[x]) = 0. \quad (1.54) \] 观察到牛顿方程 (1.51) 正是拉格朗日方程 (1.54) 的分量形式, 如果我们选择 L 具有以下性质 \[ \partial_2 L \circ \Gamma[x](t) = [m_0 D x_0(t), \dots, m_{N-1} D x_{N-1}(t)] \] \[ \partial_1 L \circ \Gamma[x](t) = [-\partial_{1,0} V(t, x(t)), \dots, -\partial_{1,N-1} V(t, x(t))], \quad (1.55) \] 其中 \(V(t, x(t)) = V(t; x_0(t), \dots, x_{N-1}(t))\) 且 \(\partial_{1,\alpha} V(t, x(t))\) 是 V 相对于粒子 \(\alpha\) 坐标的导数元组, 在时间 t 和坐标 x(t) 处求值. 如果对于每个 \(a_\alpha\) 和 \(b_\alpha\), 以下条件成立, 则满足这些条件 \[ \partial_2 L(t; a_0, \dots, a_{N-1}; b_0, \dots, b_{N-1}) \] \[ = [m_0 b_0, \dots, m_{N-1} b_{N-1}] \quad (1.56) \] 并且 \[ \partial_1 L(t; a_0, \dots, a_{N-1}; b_0, \dots, b_{N-1}) \] \[ = [-\partial_{1,0} V(t, a), \dots, -\partial_{1,N-1} V(t, a)], \quad (1.57) \] 其中 \(a = (a_0, \dots, a_{N-1})\). 我们使用符号 a 和 b 来强调这些只是拉格朗日量的形式参数. 具有所需性质 (1.56-1.57) 的 L 的一种选择是 \[ L(t, x, v) = \frac{1}{2} \sum_\alpha m_\alpha v_\alpha^2 - V(t, x), \quad (1.58) \] 其中 \(v_\alpha^2\) 是 \(v_\alpha\) 分量的平方和.61

2.6.1. 哈密顿原理

给定一个点粒子系统, 其力可以确定为与速度无关的势能 V 的 (负) 导数, 我们已经证明系统沿着满足拉格朗日方程且 \(L = T - V\) 的路径演化. 确定了这类系统的拉格朗日量后, 我们可以用能量来重述作用量平稳原理. 这个表述被称为哈密顿原理 (Hamilton's Principle): 一个点粒子系统, 其力由与速度无关的势能导出, 沿着路径 q 演化, 使得作用量 \[ S[q](t_1, t_2) = \int_{t_1}^{t_2} L \circ \Gamma[q] \] 相对于保持端点固定的路径 q 的变分是平稳的, 其中 \(L = T - V\) 是动能和势能之差.63

2.6.2. 匀加速运动

考虑一个质量为 m 的粒子在加速度为 g 的均匀引力场中运动. 势能是 mgh, 其中 h 是粒子的高度. 动能就是 \(\frac{1}{2}mv^2\). 系统的拉格朗日量是动能和势能之差. 在直角坐标系中, y 测量垂直位置, x 测量水平位置, 拉格朗日量是 \(L(t; x, y; v_x, v_y) = \frac{1}{2}m(v_x^2 + v_y^2) - mgy\). 我们有

(define ((L-uniform-acceleration m g) local)
  (let ((q (coordinate local))
        (v (velocity local)))
    (let ((y (ref q 1)))
      (- (* 1/2 m (square v)) (* m g y)))))
(show-expression
 (((Lagrange-equations
    (L-uniform-acceleration 'm 'g))
   (up (literal-function 'x)
       (literal-function 'y)))
  't))

\[ \begin{pmatrix} m D^2x(t) \\ gm + m D^2y(t) \end{pmatrix} \] 这个方程描述了水平方向的无加速运动 (\(mD^2x(t)=0\)) 和垂直方向的匀加速运动 (\(mD^2y(t)=-gm\)).

2.6.3. 中心力场

考虑一个质量为 m 的粒子在中心力场中的平面运动, 其任意势能 U(r) 仅取决于到引力中心的距离 r. 我们将用直角坐标和极坐标两种方式推导该系统的拉格朗日方程. 在直角坐标系 (x, y) 中, 原点在引力中心, 势能为 \(V(t; x, y) = U(\sqrt{x^2+y^2})\). 动能为 \(T(t; x, y; v_x, v_y) = \frac{1}{2}m(v_x^2 + v_y^2)\). 系统的拉格朗日量是 \(L = T - V\): \[ L(t; x, y; v_x, v_y) = \frac{1}{2} m (v_x^2 + v_y^2) - U(\sqrt{x^2 + y^2}). \quad (1.59) \] 作为一个过程:

(define ((L-central-rectangular m U) local)
  (let ((q (coordinate local))
        (v (velocity local)))
    (- (* 1/2 m (square v))
       (U (sqrt (square q))))))

拉格朗日方程是

(show-expression
 (((Lagrange-equations
    (L-central-rectangular 'm (literal-function 'U)))
   (up (literal-function 'x)
       (literal-function 'y)))
  't))

\[ \begin{bmatrix} m D^2x(t) + \frac{DU\left(\sqrt{(y(t))^2 + (x(t))^2}\right) x(t)}{\sqrt{(y(t))^2 + (x(t))^2}} \\ m D^2y(t) + \frac{DU\left(\sqrt{(x(t))^2 + (y(t))^2}\right) y(t)}{\sqrt{(x(t))^2 + (y(t))^2}} \end{bmatrix} \] 我们可以重写这些拉格朗日方程为: \[ m D^2x(t) = -\frac{x(t)}{r(t)} DU(r(t)) \quad (1.60) \] \[ m D^2y(t) = -\frac{y(t)}{r(t)} DU(r(t)), \quad (1.61) \] 其中 \(r(t) = \sqrt{(x(t))^2 + (y(t))^2}\). 我们可以这样解释它们. 粒子受到一个径向指向的力, 大小为 \(-DU(r)\). 牛顿方程将力与质量和加速度的乘积相等同. 这两个拉格朗日方程正是牛顿方程的直角坐标分量. 我们可以用极坐标描述同一个系统. 直角坐标 (x, y) 和极坐标 (r, \(\phi\)) 之间的关系是: \[ x = r \cos \phi \] \[ y = r \sin \phi. \quad (1.62) \] 广义速度的关系由坐标变换推导得出. 考虑一个位形路径, 它在直角坐标和极坐标中都有表示. 令 \(\bar{x}\) 和 \(\bar{y}\) 为直角坐标路径的分量, 令 \(\bar{r}\) 和 \(\bar{\phi}\) 为相应极坐标路径的分量. 时间 t 的直角坐标分量是 \((\bar{x}(t), \bar{y}(t))\), 时间 t 的极坐标是 \((\bar{r}(t), \bar{\phi}(t))\). 它们通过 (1.62) 相关联: \[ \bar{x}(t) = \bar{r}(t) \cos \bar{\phi}(t) \] \[ \bar{y}(t) = \bar{r}(t) \sin \bar{\phi}(t). \quad (1.63) \] 时间 t 的直角速度是 \((D\bar{x}(t), D\bar{y}(t))\). 微分 (1.63) 得到速度之间的关系 \[ D\bar{x}(t) = D\bar{r}(t) \cos \bar{\phi}(t) - \bar{r}(t) D\bar{\phi}(t) \sin \bar{\phi}(t) \] \[ D\bar{y}(t) = D\bar{r}(t) \sin \bar{\phi}(t) + \bar{r}(t) D\bar{\phi}(t) \cos \bar{\phi}(t). \quad (1.64) \] 这些关系在任何时刻对任何位形路径都有效, 因此我们可以将它们抽象为任意速度的坐标表示之间的关系. 令 \(v_x\) 和 \(v_y\) 为速度的直角坐标分量; 令 \(\dot{r}\) 和 \(\dot{\phi}\) 为 r 和 \(\phi\) 的变化率. 那么 \[ v_x = \dot{r} \cos \phi - r \dot{\phi} \sin \phi \] \[ v_y = \dot{r} \sin \phi + r \dot{\phi} \cos \phi. \quad (1.65) \] 动能是 \(\frac{1}{2} m (v_x^2 + v_y^2)\): \[ T(t; r, \phi; \dot{r}, \dot{\phi}) = \frac{1}{2} m (\dot{r}^2 + r^2 \dot{\phi}^2), \quad (1.66) \] 拉格朗日量是 \[ L(t; r, \phi; \dot{r}, \dot{\phi}) = \frac{1}{2} m (\dot{r}^2 + r^2 \dot{\phi}^2) - U(r). \quad (1.67) \] 我们将这个拉格朗日量表达如下:

(define ((L-central-polar m U) local)
  (let ((q (coordinate local))
        (qdot (velocity local)))
    (let ((r (ref q 0)) (phi (ref q 1))
          (rdot (ref qdot 0)) (phidot (ref qdot 1)))
      (- (* 1/2 m
            (+ (square rdot)
               (square (* r phidot))))
         (U r)))))

拉格朗日方程是:

(show-expression
 (((Lagrange-equations
    (L-central-polar 'm (literal-function 'U)))
   (up (literal-function 'r)
       (literal-function 'phi)))
  't))

\[ \begin{pmatrix} m D^2r(t) - m r(t) (D\phi(t))^2 + DU(r(t)) \\ 2m Dr(t) r(t) D\phi(t) + m D^2\phi(t) (r(t))^2 \end{pmatrix} \] 我们可以将第一个方程解释为质量与径向加速度的乘积等于势能力和离心力之和. 第二个方程可以解释为角动量 \(mr^2 D\phi\) 的导数为零; 因此角动量守恒.64 注意, 我们在两种坐标系中都使用了相同的 Lagrange-equations 过程来推导. 拉格朗日量的坐标表示对于不同的坐标系是不同的, 并且拉格朗日方程在不同的坐标系中看起来也不同. 然而, 在任何坐标系中都使用相同的方法来推导拉格朗日方程.

2.6.4. 练习 1.13:

检查中心力运动在极坐标中的拉格朗日方程和在直角坐标中的拉格朗日方程是等价的. 通过将路径代入变换方程并计算导数来确定二阶导数之间的关系, 然后将这些关系代入运动方程.

2.7. 1.6.1 坐标变换

系统的运动独立于我们用来描述它的坐标. 运动的这种无坐标性质在作用量原理中很明显. 作用量仅取决于沿路径的拉格朗日量的值, 而不取决于拉格朗日量表示中使用的特定坐标. 我们可以利用这个性质来根据一个坐标系中的拉格朗日量找到另一个坐标系中的拉格朗日量. 假设我们有一个力学系统, 其运动由依赖于时间, 坐标和速度的拉格朗日量 L 描述. 并假设我们有一个坐标变换 F, 使得 \(x = F(t, x')\). 拉格朗日量 L 用未加撇的坐标表示. 我们想找到一个用加撇坐标表示的拉格朗日量 \(L'\) 来描述同一个系统. 一种方法是要求沿任何位形路径的拉格朗日量的值与坐标系无关. 如果 q 是未加撇坐标中的路径, \(q'\) 是相应的加撇坐标中的路径, 那么拉格朗日量必须满足: \[ L' \circ \Gamma[q'] = L \circ \Gamma[q]. \quad (1.68) \] 我们已经看到, 从直角坐标到极坐标的变换意味着广义速度以某种方式变换. 速度变换可以从要求极坐标中的路径和直角坐标中的相应路径与坐标变换一致的要求中推导出来. 通常, 要求两个不同坐标系中的路径与坐标变换一致可用于推导局部元组的所有分量如何变换. 给定一个坐标变换 F, 令 C 为相应的函数, 它将加撇坐标系中的局部元组映射到未加撇坐标系中的相应局部元组 \[ C \circ \Gamma[q'] = \Gamma[q]. \quad (1.69) \] 我们将在下面推导 C 的一般形式. 给定这样一个局部元组变换 C, 满足方程 (1.68) 的拉格朗日量 \(L'\) 是 \[ L' = L \circ C. \quad (1.70) \] 我们可以通过将 \(L'\) 代入方程 (1.68) 来看到这一点 \[ L' \circ \Gamma[q'] = L \circ C \circ \Gamma[q'] = L \circ \Gamma[q]. \quad (1.71) \] 要推导给定坐标变换 F 的局部元组变换 C, 我们推导局部元组的每个分量如何变换. 当然, 坐标变换指定了局部元组的坐标分量如何变换. 局部元组变换的广义速度分量可以推导如下. 令 q 和 \(q'\) 为在两个坐标系中表示的相同位形路径. 将这些路径代入坐标变换并计算导数, 我们发现 \[ Dq(t) = \partial_0 F(t, q'(t)) + \partial_1 F(t, q'(t)) Dq'(t). \quad (1.72) \] 通过任何一点总有一条具有任何给定速度的路径, 所以我们可以推广, 并得出结论, 沿相应坐标路径的广义速度满足 \[ v = \partial_0 F(t, x') + \partial_1 F(t, x') v'. \quad (1.73) \] 如果需要, 可以用类似的方式确定局部元组更高阶导数分量的规则. 将加撇系统中的局部元组映射到未加撇系统中的局部元组的局部元组变换由分量变换构造而成: \[ (t, x, v, \dots) = C(t, x', v', \dots) \] \[ = (t, F(t, x'), \partial_0 F(t, x') + \partial_1 F(t, x') v', \dots). \quad (1.74) \] 因此, 如果我们取拉格朗日量 \(L'\) 为 \[ L' = L \circ C \quad (1.75) \] 那么作用量的值与用于计算它的坐标系无关. 稳态作用量的位形路径不依赖于用于描述路径的坐标系. 从这些拉格朗日量导出的拉格朗日方程通常看起来会非常不同, 但它们必须是等价的.

2.7.1. 练习 1.14:

通过直接计算证明, 如果 L 的拉格朗日方程得到满足, 则 \(L'\) 的拉格朗日方程也得到满足.

给定一个坐标变换 F, 我们可以使用方程 (1.74) 找到变换局部元组的函数 C. 过程 F->C 实现了这一点65

(define ((F->C F) local)
  (->local (time local)
           (F local)
           (+ (((partial 0) F) local)
              (* (((partial 1) F) local)
                 (velocity local)))))

作为一个例子, 考虑从极坐标到直角坐标的变换: \(x = r \cos \phi\) 和 \(y = r \sin \phi\), 其实现如下:

(define (p->r local)
  (let ((polar-tuple (coordinate local)))
    (let ((r (ref polar-tuple 0))
          (phi (ref polar-tuple 1)))
      (let ((x (* r (cos phi)))
            (y (* r (sin phi))))
        (up x y)))))

就极坐标和极坐标变化率而言, 直角坐标分量的变化率是:

(show-expression
 (velocity
  ((F->C p->r)
   (->local 't (up 'r 'phi) (up 'rdot 'phidot)))))

\[ \begin{pmatrix} -\dot{\phi} r \sin(\phi) + \dot{r} \cos(\phi) \\ \dot{\phi} r \cos(\phi) + \dot{r} \sin(\phi) \end{pmatrix} \] 我们可以使用 F->C, 利用方程 (1.70), 从直角坐标中的拉格朗日量找到中心力运动在极坐标中的拉格朗日量,

(define (L-central-polar m U)
  (compose (L-central-rectangular m U) (F->C p->r)))
(show-expression
 ((L-central-polar 'm (literal-function 'U))
  (->local 't (up 'r 'phi) (up 'rdot 'phidot))))

\[ \frac{1}{2} m \dot{\phi}^2 r^2 + \frac{1}{2} m \dot{r}^2 - U(r) \] 结果与拉格朗日量 (1.67) 相同.

2.7.2. 练习 1.15: 中心力运动

在直角坐标和球坐标中找到三维中心力运动的拉格朗日量. 首先, 解析地找到拉格朗日量, 然后通过推广我们给出的程序来用计算机检查结果.

2.8. 1.6.2 带有刚性约束的系统

我们发现 \(L = T - V\) 是一个适用于受势能导出的力作用的点粒子系统的合适拉格朗日量. 延展体有时可以方便地理想化为一个由刚性约束连接的点粒子系统. 我们会发现, 用冗余坐标表示的 \(L = T - V\) 是一个模拟带有刚性约束的点粒子系统的合适拉格朗日量. 我们将首先说明该方法, 然后提供理由.

2.8.1. 刚性约束系统的拉格朗日量

假设系统由 N 个质点组成, 由 \(\alpha\) 索引, 在普通三维空间中. 第一步是选择一组方便的冗余广义坐标 q 并用它们重新描述系统. 就广义坐标而言, 粒子 \(\alpha\) 的直角坐标是: \[ x_\alpha = f_\alpha(t, q). \quad (1.76) \] 对于冗余坐标 q, 所有坐标约束都内置在函数 \(f_\alpha\) 中. 我们通过将路径函数代入方程 (1.76), 微分, 并抽象为任意速度来推导广义速度 v 与组成粒子速度 \(v_\alpha\) 的关系.66 我们发现 \[ v_\alpha = \partial_0 f_\alpha(t, q) + \partial_1 f_\alpha(t, q) v. \quad (1.77) \] 我们使用方程 (1.76) 和 (1.77) 来表示动能关于广义坐标和速度. 令 T 为动能作为直角坐标和速度的函数: \[ T(t; x_0, \dots, x_{N-1}; v_0, \dots, v_{N-1}) = \sum_\alpha \frac{1}{2} m_\alpha v_\alpha^2, \quad (1.78) \] 其中 \(v_\alpha^2\) 是 \(v_\alpha\) 的平方大小. 作为广义坐标元组 q 和广义速度元组 v 的函数, 动能是 \[ T(t, q, v) = T(t, f(t, q), \partial_0 f(t, q) + \partial_1 f(t, q) v) \] \[ = \sum_\alpha \frac{1}{2} m_\alpha (\partial_0 f_\alpha(t, q) + \partial_1 f_\alpha(t, q) v)^2. \quad (1.79) \] 类似地, 我们使用方程 (1.76) 来重新表示势能关于广义坐标. 令 \(V(t, x)\) 为时间 t 时由直角坐标元组 x 指定的位形下的势能. 用广义坐标表示的势能是 \[ \mathcal{V}(t, q, v) = V(t, f(t, q)). \quad (1.80) \] 我们取拉格朗日量为动能和势能之差: \(L = T - \mathcal{V}\).

2.8.2. 枢轴驱动的摆锤

考虑一个摆锤 (见图 1.2), 长度为 l, 质量为 m, 建模为质点, 由一个枢轴支撑, 该枢轴在垂直方向上由给定的时间函数 \(y_s\) 驱动.

figure-1.2.png 该系统的位形空间维度为一; 我们选择图 1.2 中所示的 \(\theta\) 作为广义坐标. 摆锤的位置由直角坐标给出 \[ x = l \sin \theta \quad \text{和} \quad y = y_s(t) - l \cos \theta. \quad (1.81) \] 速度是 \[ v_x = l \dot{\theta} \cos \theta \quad \text{和} \quad v_y = D y_s(t) + l \dot{\theta} \sin \theta, \quad (1.82) \] 通过沿路径微分并抽象为瞬时速度得到. 动能是 \(T(t; x, y; v_x, v_y) = \frac{1}{2} m (v_x^2 + v_y^2)\). 用广义坐标表示的动能是 \[ T(t, \theta, \dot{\theta}) = \frac{1}{2} m \left( l^2 \dot{\theta}^2 + (D y_s(t))^2 + 2 l D y_s(t) \dot{\theta} \sin \theta \right). \quad (1.83) \] 势能是 \(\mathcal{V}(t; x, y) = mgy\). 用广义坐标表示的势能是 \[ \mathcal{V}(t, \theta, \dot{\theta}) = gm (y_s(t) - l \cos \theta). \quad (1.84) \] 拉格朗日量是 \(L = T - \mathcal{V}\). 拉格朗日量表示为

(define ((T-pend m l g ys) local)
  (let ((t (time local))
        (theta (coordinate local))
        (thetadot (velocity local)))
    (let ((vys (D ys)))
      (* 1/2 m
         (+ (square (* l thetadot))
            (square (vys t))
            (* 2 l (vys t) thetadot (sin theta)))))))
(define ((V-pend m l g ys) local)
  (let ((t (time local))
        (theta (coordinate local)))
    (* m g (- (ys t) (* l (cos theta))))))
(define L-pend (- T-pend V-pend))

该系统的拉格朗日方程是67

(show-expression
 (((Lagrange-equations
    (L-pend 'm 'l 'g (literal-function 'y_s)))
   (literal-function 'theta))
  't))

\[ D^2\theta(t) l^2 m + D^2y_s(t) \sin(\theta(t)) lm + \sin(\theta(t)) glm \]

2.8.3. 练习 1.16:

推导练习 1.9 中的拉格朗日量的拉格朗日方程.

2.8.4. 练习 1.17: 螺旋线上的珠子

一个质量为 m 的珠子被约束在一根无摩擦的螺旋线上运动. 螺旋线的轴线是水平的. 螺旋线的直径是 d, 螺距 (每单位长度的圈数) 是 h. 系统处于均匀引力场中, 垂直加速度为 g. 建立描述该系统的拉格朗日量, 并找到拉格朗日运动方程.

2.8.5. 练习 1.18: 三轴椭球面上的珠子

一个质量为 m 的珠子无摩擦地在三轴椭球面上运动. 在直角坐标系中, 该曲面满足 \[ \frac{x^2}{a^2} + \frac{y^2}{b^2} + \frac{z^2}{c^2} = 1, \quad (1.85) \] 对于某些常数 a, b 和 c. 确定合适的广义坐标, 建立拉格朗日量, 并找到拉格朗日方程.

2.8.6. 练习 1.19: 双杆联动装置

图 1.3 中所示的双杆联动装置被约束在平面内运动. 它由三个小的有质量物体组成, 由两个无质量的刚性杆连接, 在均匀的垂直加速度为 g 的引力场中. 杆通过一个允许联动装置折叠的铰链连接到中心物体上. 系统的布置使得铰链完全自由: 构件可以经历所有构型而不会发生碰撞. 建立描述该系统的拉格朗日量并找到拉格朗日运动方程. 使用计算机来完成这个任务, 因为方程相当庞大.

figure-1.3.png

Figure 2: 图 1.3 一个双杆联动装置被建模为由刚性无质量支柱连接的三个质点. 该联动装置受到均匀垂直引力加速度的作用.

figure-1.4.png

Figure 3: 图 1.4 这个摆锤的枢轴是一个质量为 m1 的质点, 允许在水平导轨上滑动. 摆锤是一个质量为 m2 的质点, 受到垂直重力作用.

2.8.7. 练习 1.20: 滑动摆锤

考虑一个长度为 l 的摆锤连接到一个可以自由水平移动的支撑物上, 如图 1.4 所示. 设支撑物的质量为 m1, 摆锤的质量为 m2. 建立拉格朗日量并推导该系统的拉格朗日方程.

2.8.8. 为何有效

在本节中, 我们证明 \(L = T - V\) 确实是适用于刚性约束系统的合适拉格朗日量. 我们通过要求拉格朗日方程等价于带有矢量约束力的牛顿矢量动力学来实现.68 我们考虑一个粒子系统. 索引为 \(\alpha\) 的粒子在时间 t 的质量为 \(m_\alpha\), 位置为 \(x_\alpha(t)\). 这个粒子系统可能非常大, 也可能只有少数几个粒子. 某些位置也可能是时间的指定函数, 例如驱动摆锤的枢轴位置. 粒子之间存在刚性位置约束; 我们假设所有这些约束的形式为 \[ (x_\alpha(t) - x_\beta(t)) \cdot (x_\alpha(t) - x_\beta(t)) = l_{\alpha\beta}^2, \quad (1.86) \] 也就是说, 粒子 \(\alpha\) 和 \(\beta\) 之间的距离是 \(l_{\alpha\beta}\). 粒子 \(\alpha\) 的牛顿运动方程表明, 质量乘以粒子 \(\alpha\) 的加速度等于势能力和约束力之和. 势能力由势能的负梯度导出, 并且可能取决于其他粒子的位置和时间. 约束力 \(F_{\alpha\beta}\) 是与粒子 \(\alpha\) 和粒子 \(\beta\) 之间的刚性约束相关的矢量约束力. 所以 \[ D(m_\alpha D x_\alpha)(t) = -\nabla_{x_\alpha} V(t, x_0(t), \dots, x_{N-1}(t)) + \sum_{\{\beta | \beta \leftrightarrow \alpha\}} F_{\alpha\beta}(t), \quad (1.87) \] 其中求和 \(\beta\) 仅遍历那些与索引为 \(\alpha\) 的粒子存在刚性约束的粒子索引; 我们使用记号 \(\beta \leftrightarrow \alpha\) 表示指定粒子之间存在刚性约束的关系. 约束力沿着粒子之间的连线方向, 所以我们可以写 \[ F_{\alpha\beta}(t) = \mathcal{F}_{\alpha\beta}(t) \frac{x_\beta(t) - x_\alpha(t)}{l_{\alpha\beta}} \quad (1.88) \] 其中 \(\mathcal{F}_{\alpha\beta}(t)\) 是时间 t 时约束中的标量张力大小. 注意 \(\mathcal{F}_{\alpha\beta} = -\mathcal{F}_{\beta\alpha}\). 通常, 标量约束力随系统演化而变化. 形式上, 我们可以用拉格朗日量重现牛顿方程69 \[ L(t; x, \mathcal{F}; \dot{x}, \dot{\mathcal{F}}) = \sum_\alpha \frac{1}{2} m_\alpha \dot{x}_\alpha^2 - V(t, x) \] \[ - \sum_{\{\alpha, \beta | \alpha < \beta, \alpha \leftrightarrow \beta\}} \frac{\mathcal{F}_{\alpha\beta}}{2l_{\alpha\beta}} \left[ (x_\beta - x_\alpha)^2 - l_{\alpha\beta}^2 \right] \quad (1.89) \] 其中约束力被视为额外的广义坐标. 这里 x 是由所有 \(x_\alpha\) 的所有直角坐标分量组成的结构, \(\dot{x}\) 是由所有速度矢量 \(v_\alpha\) 的所有直角坐标分量 \(\dot{x}_\alpha\) 组成的结构, \(\mathcal{F}\) 是由所有 \(\mathcal{F}_{\alpha\beta}\) 组成的结构. \(\mathcal{F}\) 的速度不出现在拉格朗日量中, \(\mathcal{F}\) 本身只线性出现. 所以与 \(\mathcal{F}\) 相关的拉格朗日方程是 \[ (x_\beta(t) - x_\alpha(t))^2 - l_{\alpha\beta}^2 = 0 \quad (1.90) \] 但这只是约束的重述. 粒子坐标的拉格朗日方程是牛顿方程 (1.87) \[ D(m D x_\alpha)(t) = -\partial_{1,\alpha} V(t, x(t)) + \sum_{\{\beta | \alpha \leftrightarrow \beta\}} \mathcal{F}_{\alpha\beta}(t) \frac{x_\beta(t) - x_\alpha(t)}{l_{\alpha\beta}}. \quad (1.91) \]

2.8.9. 更一般的情况

考虑形式为 \[ \phi(t, x(t)) = 0, \quad (1.98) \] 的约束, 其中 x(t) 是时间 t 时所有直角坐标分量 \(x_\alpha(t)\) 的结构. 在 1.10 节中, 我们将使用变分原理证明, 该系统的合适拉格朗日量是 \[ L(t; x, \lambda; \dot{x}, \dot{\lambda}) = \sum_\alpha \frac{1}{2} m_\alpha \dot{x}_\alpha^2 - V(t, x) + \lambda \phi(t, x), \quad (1.99) \] 其中 \(\lambda\) 是一个额外的坐标, \(\dot{\lambda}\) 是相应的广义速度. 与 \(\lambda\) 相关的拉格朗日方程只是约束的重述: \(\phi(t, x(t)) = 0\). 粒子坐标的拉格朗日方程是: \[ D(m_\alpha D x_\alpha)(t) = -\partial_{1,\alpha} V(t, x(t)) + \lambda(t) \partial_{1,\alpha} \phi(t, x(t)). \quad (1.100) \] 这种约束也可以通过在牛顿方程中包含适当的约束力来建模: \[ D(m_\alpha D x_\alpha)(t) = -\nabla_{x_\alpha} V(t; x_0(t) \dots x_{N-1}(t)) + \sum_\alpha \mathcal{F}_\alpha(t). \quad (1.101) \] 为了使方程 (1.100) 与方程 (1.101) 相同, 我们必须将 \(\lambda(t) \partial_{1,\alpha} \phi(t, x(t))\) 等同于粒子 \(\alpha\) 上的约束力. 注意这些约束力与约束表面在每个时刻的法线成正比, 因此对于遵守约束的运动不做功. 拉格朗日量 (1.89), 我们上面为包含位置约束的牛顿约束力而开发的, 正是这种形式. 我们可以确定 \[ \lambda(t) \phi(t, x(t)) = \sum_{\{\alpha, \beta | \alpha < \beta, \alpha \leftrightarrow \beta\}} \frac{\mathcal{F}_{\alpha\beta}(t)}{2l_{\alpha\beta}} \left[ (x_\beta(t) - x_\alpha(t))^2 - l_{\alpha\beta}^2 \right]. \quad (1.102) \] 约束力满足 \[ \lambda(t) \partial_{1,\alpha} \phi(t, x(t)) = \sum_{\{\beta | \alpha \leftrightarrow \beta\}} \mathcal{F}_{\alpha\beta}(t) \frac{x_\beta(t) - x_\alpha(t)}{l_{\alpha\beta}}. \quad (1.103) \] 接受拉格朗日量 (1.99) 描述形式为 (1.98) 的约束系统, 我们可以如上所述进行从冗余坐标 x 到冗余广义坐标 q 和约束坐标 \(c = \phi(t, x)\) 的坐标变换. 坐标 \(\lambda\) 不会出现在 q 的拉格朗日方程中, 因为在解路径上它们将乘以一个恒等于零的因子. 如果我们只对广义坐标的演化感兴趣, 我们可以假设约束被恒等满足, 并取拉格朗日量为用广义坐标表示的动能和势能之差.

2.8.10. 练习 1.21: 哑铃

在这个练习中, 我们将为一个特定的简单系统重述约束系统的拉格朗日量的推导. 考虑由无质量刚性杆约束在平面内保持距离 l 分开的两个有质量粒子, 如图 1.5 所示. 对于平面内的两个有质量粒子, 显然有四个自由度, 但刚性杆将这个数字减少到三个.

figure-1.5.png 我们可以用粒子的冗余坐标唯一地指定位形, 比如 \(x_0(t)\), \(y_0(t)\) 和 \(x_1(t)\), \(y_1(t)\). 约束 \((x_1(t) - x_0(t))^2 + (y_1(t) - y_0(t))^2 = l^2\) 消除了一个自由度. a. 写出两个粒子的四个直角坐标的力平衡的牛顿方程, 给定杆中的标量张力为 \(\mathcal{F}\). b. 写出形式拉格朗日量 \[ L(t; x_0, y_0, x_1, y_1, \mathcal{F}; \dot{x}_0, \dot{y}_0, \dot{x}_1, \dot{y}_1, \dot{\mathcal{F}}) \] 使得拉格朗日方程将产生你在 a 部分推导出的牛顿方程. c. 进行坐标变换, 变换到具有质心坐标 \(x_{cm}\), \(y_{cm}\), 角度 \(\theta\), 粒子间距离 c 和张力 \(\mathcal{F}\) 的坐标系. 用这些坐标写出拉格朗日量, 并写出拉格朗日方程. d. 你可以从这些方程中的一个推断出 \(c(t) = l\). 根据这个事实, 我们得到 \(Dc=0\) 和 \(D^2c=0\). 将这些代入你刚计算出的拉格朗日方程, 得到 \(x_{cm}\), \(y_{cm}\), \(\theta\) 的运动方程. e. 为系统建立一个用冗余广义坐标 \(x_{cm}\), \(y_{cm}\), \(\theta\) 描述的拉格朗日量 (\(= T - V\)), 并从此拉格朗日量计算拉格朗日方程. 它们应该与你从 d 部分推导出的相同坐标的方程相同.

2.8.11. 练习 1.22: 驱动摆锤

证明拉格朗日量 (1.89) 可用于描述驱动摆锤, 其中枢轴的位置是时间的指定函数: 使用牛顿约束力规定推导运动方程, 并证明它们与拉格朗日方程相同. 确保检查约束力的方程以及摆锤位置的方程.

2.8.12. 练习 1.23: 填补细节

证明拉格朗日量 (1.97) 的拉格朗日方程与拉格朗日量 (1.95) 在代入 \(c(t) = l\), \(Dc(t) = D^2c(t) = 0\) 后的拉格朗日方程相同.

2.8.13. 练习 1.24: 约束力

求未驱动平面摆中的张力.

2.9. 1.6.3 作为坐标变换的约束

约束系统的拉格朗日量的推导涉及的步骤类似于坐标变换推导中的步骤. 对于约束系统, 人们指定组成粒子的直角坐标作为包含约束的广义坐标的函数. 然后我们确定组成粒子的直角速度作为广义坐标和广义速度的函数. 然后可以将我们知道如何用直角坐标和组成粒子的速度表示的拉格朗日量重新表达为广义坐标和速度的函数. 要执行坐标变换, 人们指定一个系统在一个广义坐标集中的位形如何可以重新表达为另一个广义坐标集的函数. 然后我们确定由广义坐标变换所蕴含的广义速度的变换. 然后可以将用其中一个广义坐标集表示的拉格朗日量重新表达为另一个广义坐标集的函数. 这实际上是同一过程的两个应用, 所以我们可以通过将无约束粒子的拉格朗日量与包含约束的坐标变换复合来制作约束系统的拉格朗日量. 我们推断 \(L = T - V\) 是约束系统的合适拉格朗日量, 实际上是基于从受约束的坐标集到一组冗余坐标加上值为常数的约束坐标的坐标变换. 令 \(x_\alpha\) 为索引为 \(\alpha\) 的组成粒子的直角坐标元组, \(v_\alpha\) 为其速度. 拉格朗日量 \[ L_f(t; x_0, \dots, x_{N-1}; v_0, \dots, v_{N-1}) \] \[ = \sum_\alpha \frac{1}{2} m_\alpha v_\alpha^2 - V(t; x_0, \dots, x_{N-1}) \quad (1.104) \] 是组成粒子的动能和势能之差. 这是具有势能 V 的一组无约束自由粒子的合适拉格朗日量. 令 q 为冗余广义坐标的元组, v 为相应的广义速度元组. 坐标 q 通过 \(x_\alpha = f_\alpha(t, q)\) 与组成粒子的坐标 \(x_\alpha\) 相关联, 如前所述. 组成粒子之间的约束被考虑在 \(f_\alpha\) 的定义中. 在这里我们将此视为坐标变换. 这个坐标变换的不寻常之处在于 x 的维度与 q 的维度不同. 从这个坐标变换我们可以找到局部元组变换函数 (参见 1.6.1 节) \[ (t; x_0, \dots, x_{N-1}; v_0, \dots, v_{N-1}) = C(t, q, v). \quad (1.105) \] 约束系统的拉格朗日量可以通过将无约束系统的拉格朗日量与从约束坐标到无约束坐标的局部元组变换函数复合来获得: \[ L = L_f \circ C. \quad (1.106) \] 约束仅在变换中起作用. 为了说明这一点, 我们将找到在 1.6.2 节中介绍的驱动摆锤的拉格朗日量. 受引力势能作用且加速度为 g 的质量为 m 的自由粒子在垂直平面内的 \(T-V\) 拉格朗日量是 \[ L_f(t; x, y; v_x, v_y) = \frac{1}{2} m (v_x^2 + v_y^2) - mgy, \quad (1.107) \] 其中 y 测量质点的高度. 作为一个程序

(define ((Lf m g) local)
  (let ((q (coordinate local))
        (v (velocity local)))
    (let ((y (ref q 1)))
      (- (* 1/2 m (square v)) (* m g y)))))

从广义坐标 \(\theta\) 到直角坐标的坐标变换是 \(x = l \sin \theta\), \(y = y_s(t) - l \cos \theta\), 其中 l 是摆长, \(y_s\) 给出支撑点的高度作为时间的函数. 有趣的是, 驱动仅通过约束的指定进入. 作为一个程序

(define ((dp-coordinates l y_s) local)
  (let ((t (time local))
        (theta (coordinate local)))
    (let ((x (* l (sin theta)))
          (y (- (y_s t) (* l (cos theta)))))
      (up x y))))

使用 F->C 我们可以推导出局部元组变换, 并通过复合定义驱动摆锤的拉格朗日量:

(define (L-pend m l g y_s)
  (compose (Lf m g)
           (F->C (dp-coordinates l y_s))))

拉格朗日量是

(show-expression
 ((L-pend 'm 'l 'g (literal-function 'y_s))
  (->local 't 'theta 'thetadot)))

\[ glm \cos(\theta) - gm y_s(t) + \frac{1}{2} l^2 m \dot{\theta}^2 + lm \dot{\theta} D y_s(t) \sin(\theta) + \frac{1}{2} m (D y_s(t))^2 \] 这与 1.6.2 节中找到的拉格朗日量相同. 我们发现了一个非常有趣的约束系统拉格朗日量的分解. 一部分由组成部分的动能和势能之差组成. 另一部分描述了特定系统位形的约束.

2.10. 1.6.4 拉格朗日量不是唯一的

拉格朗日量与物理系统并非一一对应——许多拉格朗日量可以用来描述同一个物理系统. 在本节中, 我们将通过证明向拉格朗日量添加一个坐标和时间的函数的“全时间导数”不会改变稳态作用量的路径或从作用量原理推导出的运动方程来证明这一点.

2.10.1. 全时间导数

让我们首先解释我们所说的“全时间导数”是什么意思. 令 F 为时间和坐标的函数. 那么 F 沿路径 q 的时间导数是 \[ D(F \circ \Gamma[q]) = (DF \circ \Gamma[q]) D\Gamma[q]. \quad (1.108) \] 因为 F 仅依赖于时间和坐标: \[ DF \circ \Gamma[q] = [\partial_0 F \circ \Gamma[q], \partial_1 F \circ \Gamma[q]]. \quad (1.109) \] 所以我们只需要 \(D\Gamma[q]\) 的前两个分量, \[ (D\Gamma[q])(t) = (1, Dq(t), D^2q(t), \dots), \quad (1.110) \] 来形成乘积 \[ D(F \circ \Gamma[q]) = \partial_0 F \circ \Gamma[q] + (\partial_1 F \circ \Gamma[q]) Dq \] \[ = (\partial_0 F + (\partial_1 F) \dot{Q}) \circ \Gamma[q], \quad (1.111) \] 其中 \(\dot{Q} = I_2\) 是一个选择器函数:72 \(c = \dot{Q}(a, b, c)\), 所以 \(Dq = \dot{Q} \circ \Gamma[q]\). 函数 \[ D_t F = \partial_0 F + (\partial_1 F) \dot{Q} \quad (1.112) \] 称为 F 的全时间导数; 它是三个参数的函数: 时间, 广义坐标和广义速度. 通常, 局部元组函数 F 的全时间导数是那个函数 \(D_t F\), 当它与局部元组路径复合时, 是函数 F 与相同局部元组路径复合的时间导数: \[ D_t F \circ \Gamma[q] = D(F \circ \Gamma[q]). \quad (1.113) \] 全时间导数 \(D_t F\) 显式给出为 \[ D_t F(t, q, v, a, \dots) = \partial_0 F(t, q, v, a, \dots) \] \[ + \partial_1 F(t, q, v, a, \dots) v \] \[ + \partial_2 F(t, q, v, a, \dots) a + \dots, \quad (1.114) \] 其中我们根据需要取尽可能多的项来穷尽 F 的参数.

2.10.2. 练习 1.25: \(D_t\) 的性质

全时间导数 \(D_t F\) 不是函数 F 的导数. 然而, 全时间导数与导数共享许多性质. 证明 \(D_t\) 对于局部元组函数 F 和 G, 数 c, 以及定义域包含 G 值域的函数 H 具有以下性质. a. \(D_t(F + G) = D_t F + D_t G\) b. \(D_t(c F) = c D_t F\) c. \(D_t(F G) = F D_t G + (D_t F) G\) d. \(D_t(H \circ G) = (DH \circ G) D_t G\).

2.10.3. 向拉格朗日量添加全时间导数

考虑两个拉格朗日量 L 和 \(L'\), 它们相差一个仅依赖于时间和坐标的函数 F 的全时间导数的加法 \[ L' = L + D_t F. \quad (1.115) \] 相应的动作积分是 \[ S'[q](t_1, t_2) = \int_{t_1}^{t_2} L' \circ \Gamma[q] \] \[ = \int_{t_1}^{t_2} (L + D_t F) \circ \Gamma[q] \] \[ = \int_{t_1}^{t_2} L \circ \Gamma[q] + \int_{t_1}^{t_2} D(F \circ \Gamma[q]) \] \[ = S[q](t_1, t_2) + (F \circ \Gamma[q]) \Big|_{t_1}^{t_2}. \quad (1.116) \] 变分原理指出, 沿可实现轨迹的作用量积分相对于保持轨迹端点处位形固定的变分是平稳的. 作用量积分 \(S[q](t_1, t_2)\) 和 \(S'[q](t_1, t_2)\) 相差一项 \[ (F \circ \Gamma[q]) \Big|_{t_1}^{t_2} = F(t_2, q(t_2)) - F(t_1, q(t_1)) \quad (1.117) \] 它仅依赖于端点处的坐标和时间, 而这些不允许变化. 因此, 如果 \(S[q](t_1, t_2)\) 对一条路径是平稳的, 那么 \(S'[q](t_1, t_2)\) 也将是平稳的. 因此, 任何一个拉格朗日量都可以用来区分可实现的路径. 向拉格朗日量添加全时间导数不会影响作用量对于给定路径是否临界. 因此, 如果我们有两个相差一个全时间导数的拉格朗日量, 相应的拉格朗日方程是等价的, 因为相同的路径满足每一个方程. 此外, 全时间导数引入到作用量中的附加项仅出现在端点条件中, 因此不影响从作用量变分推导出的拉格朗日方程, 所以拉格朗日方程是相同的. 因此, 向拉格朗日量添加全时间导数不会改变拉格朗日方程.

2.10.4. 练习 1.26: 全时间导数的拉格朗日方程

令 \(F(t, q)\) 仅为 t 和 q 的函数, 其全时间导数为 \[ D_t F = \partial_0 F + \partial_q F \dot{Q}. \quad (1.118) \] 明确证明 \(D_t F\) 的拉格朗日方程恒等于零, 因此向拉格朗日量添加 \(D_t F\) 不会影响拉格朗日方程.

驱动摆锤提供了一个向拉格朗日量添加全时间导数的好例子. 驱动摆锤的运动方程 (见 1.6.2 节), \[ m l^2 D^2\theta(t) + m l (g + D^2 y_s(t)) \sin\theta(t) = 0, \quad (1.119) \] 有一个有趣且暗示性的解释: 它与未驱动摆锤的运动方程相同, 只是重力加速度 g 被枢轴的加速度 \(D^2 y_s\) 增强了. 这个直观的解释在作为动能和势能之差推导出的拉格朗日量 (见 1.6.2 节) 中并不明显. 然而, 我们可以写出另一个具有相同运动方程的备选拉格朗日量, 它与运动方程一样易于解释: \[ L'(t, \theta, \dot{\theta}) = \frac{1}{2} m l^2 \dot{\theta}^2 + m l (g + D^2 y_s(t)) \cos\theta. \quad (1.120) \] 有了这个拉格朗日量, 很明显加速枢轴的作用是修改重力加速度. 然而, 注意到它不是动能和势能之差. 让我们比较驱动摆锤的两个拉格朗日量. 差值 \(\Delta L = L - L'\) 是 \[ \Delta L(t, \theta, \dot{\theta}) = \frac{1}{2} m (D y_s(t))^2 + m l D y_s(t) \dot{\theta} \sin\theta \] \[ - g m y_s(t) - m l D^2 y_s(t) \cos\theta. \quad (1.121) \] \(\Delta L\) 中不依赖于 \(\theta\) 或 \(\dot{\theta}\) 的两项不影响运动方程. 其余两项是函数 \(F(t, \theta) = -ml D y_s(t) \cos\theta\) 的全时间导数, 它不依赖于 \(\dot{\theta}\). 向拉格朗日量添加此类项不影响运动方程.

2.10.5. 全时间导数的识别

如果局部元组函数 G, 参数为 \((t, q, v)\), 是某个函数 F, 参数为 \((t, q)\), 的全时间导数, 那么 G 必须具有某些性质. 从方程 (1.112), 我们看到 G 必须在广义速度中是线性的 \[ G(t, q, v) = G_1(t, q, v) v + G_2(t, q, v) \quad (1.122) \] 其中 G1 和 G2 都不依赖于广义速度: \(\partial_2 G_1 = \partial_2 G_2 = 0\). 如果 G 是 F 的全时间导数, 那么 \(G_1 = \partial_1 F\) 且 \(G_2 = \partial_0 F\), 所以 \[ \partial_0 G_1 = \partial_0 \partial_1 F \] \[ \partial_1 G_2 = \partial_1 \partial_0 F. \quad (1.123) \] 相对于时间参数的偏导数没有结构, 所以 \(\partial_0 \partial_1 F = \partial_1 \partial_0 F\). 因此如果 G 是 F 的全时间导数, 则 \[ \partial_0 G_1 = \partial_1 G_0. \quad (1.124) \] 此外, \(G_1 = \partial_1 F\), 所以 \[ \partial_1 G_1 = \partial_1 \partial_1 F. \quad (1.125) \] 如果自由度大于一, 这些偏导数实际上是偏导数的结构, 相对于每个坐标. 相对于两个不同坐标的偏导数必须相同, 与微分顺序无关. 所以 \(\partial_1 G_1\) 必须是对称的.

2.10.6. 练习 1.27: 识别全时间导数

对于以下每个函数, 要么证明它不是全时间导数, 要么产生一个可以从中推导出的函数. a. \(G(t, x, v_x) = m v_x\) b. \(G(t, x, v_x) = m v_x \cos t\) c. \(G(t, x, v_x) = v_x \cos t - x \sin t\) d. \(G(t, x, v_x) = v_x \cos t + x \sin t\) e. \(G(t; x, y; v_x, v_y) = 2(x v_x + y v_y) \cos t - (x^2 + y^2) \sin t\) f. \(G(t; x, y; v_x, v_y) = 2(x v_x + y v_y) \cos t - (x^2 + y^2) \sin t + y^3 v_x + x v_y\)

2.11. 1.7 动力学状态的演化

拉格朗日方程是路径必须满足的常微分方程. 它们可以用来检验建议的路径是否是系统的可实现路径. 然而, 我们也可以使用它们来发展路径, 从初始条件开始. 系统的状态 (state) 被定义为必须指定以便确定后续演化的信息. 回想一下我们的杂耍者: 他或她必须以某种方式抛出杂耍棒才能执行所需的动作. 杂耍者控制着杂耍棒的初始位置和方向, 以及初始速度和旋转. 我们在杂耍和类似系统方面的经验表明, 初始位形和位形的变化率足以确定随后的运动. 其他系统可能需要更高阶的位形导数. 对于用一组广义坐标和速度表示的拉格朗日量, 我们已经证明拉格朗日方程是二阶常微分方程. 如果微分方程可以解出最高阶导数, 并且如果微分方程满足适当的条件73, 那么初值问题存在唯一解: 给定解及其较低阶导数在特定时刻的值, 存在唯一的解函数. 给定冗余坐标, 拉格朗日方程满足这些条件.74 因此, 轨迹由任意时刻的广义坐标和广义速度确定. 这是指定动力学状态所需的信息. 路径的完整局部描述由路径及其在某个时刻的所有导数组成. 路径的完整局部描述可以从局部元组的初始段重建, 给定一个用于计算路径高阶导数相对于低阶导数的处方. 系统的状态由局部元组的那个初始段指定, 从中可以推导出完整的局部描述的其余部分. 完整的局部描述给了我们该时刻附近的路径. 实际上, 我们只需要一个计算下一个更高阶导数的规则; 我们可以从中得到其余所有导数. 假设系统的状态由元组 \((t, q, v)\) 给出. 如果我们给定一个计算加速度 \(a = A(t, q, v)\) 的处方, 那么 \[ D^2 q = A \circ \Gamma[q], \quad (1.126) \] 我们因此得到 \[ D^3 q = D(A \circ \Gamma[q]) = D_t A \circ \Gamma[q], \quad (1.127) \] 依此类推. 因此局部元组的高阶导数分量由函数 \(D_t A, D_t^2 A, \dots\) 给出. 这些函数中的每一个都依赖于局部元组的较低阶导数分量. 我们从状态推导路径所需的所有信息就是一个给出局部描述下一个更高阶导数分量相对于状态的函数. 我们使用拉格朗日方程来找到这个函数.

2.11.1. 数值积分

给出状态导数相对于状态的一阶常微分方程组可以被积分以找到从给定初始状态出发的状态路径. 数值积分器通过图 1.6 中所示的过程找到此类微分方程的近似解. 由 Lagrangian->state-derivative 产生的状态导数可以被一个数值积分系统的一阶常微分方程的包使用. 过程 state-advancer 可用于找到系统在指定时间的状态, 给定一个初始状态 (包括初始时间) 和一个参数化状态导数过程.76

figure-1.6.png 例如, 要推进二维谐振子的状态, 我们写77

(print-expression
 ((state-advancer harmonic-state-derivative 2. 1.)
  (up 0. (up 1. 2.) (up 3. 4.))
  10
  1.e-12))

state-advancer 的参数是一个参数化的状态导数, harmonic-state-derivative, 和状态导数参数 (质量 2. 和弹簧常数 1.). 返回一个过程, 该过程接受一个初始状态, (up 0. (up 1. 2.) (up 3. 4.)), 一个目标时间, 10, 和一个相对误差容限, 1.e-12. 输出是指定最终时间的状态的近似值. 考虑上面描述的驱动摆锤, 具有周期性驱动. 我们选择 \(y_s(t) = a \cos \omega t\).

(define ((periodic-drive amplitude frequency phase) t)
  (* amplitude (cos (+ (* frequency t) phase))))
(define (L-periodically-driven-pendulum m l g a omega)
  (let ((ys (periodic-drive a omega 0)))
    (L-pend m l g ys)))

该系统的拉格朗日方程是:

(show-expression
 (((Lagrange-equations
    (L-periodically-driven-pendulum 'm 'l 'g 'a 'omega))
   (literal-function 'theta))
  't))

\[ D^2\theta(t) l^2 m - \cos(\omega t) \sin(\theta(t)) a l m \omega^2 + \sin(\theta(t)) g l m \] 驱动摆锤的参数化状态导数是

(define (pend-state-derivative m l g a omega)
  (Lagrangian->state-derivative
   (L-periodically-driven-pendulum m l g a omega)))
(show-expression
 ((pend-state-derivative 'm 'l 'g 'a 'omega)
  (up 't 'theta 'thetadot)))

\[ \begin{pmatrix} 1 \\ \dot{\theta} \\ \frac{a \omega^2 \cos(\omega t) \sin(\theta)}{l} - \frac{g \sin(\theta)}{l} \end{pmatrix} \] 为了检查驱动摆锤的演化, 我们需要一种机制来演化一个系统一段时间, 同时监控系统演化的某些方面. 过程 evolve 提供了这项服务, 使用 state-advancer 重复地将状态推进到所需的时刻. 过程 evolve 接受一个参数化的状态导数及其参数, 并返回一个过程, 该过程将系统从指定的初始状态演化到其他多个时间, 监控状态的某些方面. 为了生成角度随时间变化的图, 我们制作一个监控过程, 在演化进行时生成绘图:78

(define ((monitor-theta win) state)
  (let ((theta ((principal-value :pi) (coordinate state))))
    (plot-point win (time state) theta)))
(define plot-win (frame 0. 100. :-pi :pi))
((evolve pend-state-derivative
         1.0                               ;m=1kg
         1.0                               ;l=1m
         9.8                               ;g=9.8m/s^2
         0.1                               ;a=1/10 m
         (* 2.0 (sqrt 9.8)))              ;omega
 (up 0.0                                   ;t0=0
     1.                                    ;theta0=1 radian
     0.)                                   ;thetadot0=0 radians/s
 (monitor-theta plot-win)
 0.01                                      ;step between plotted points
 100.0                                     ;final time
 1.0e-13)                                  ;local error tolerance

图 1.7 显示了驱动摆锤几个轨道的角度 \(\theta\) 随时间的变化. 两个运行的初始条件相同, 只是在一个运行中, 摆锤被赋予了一个微小的速度, 等于 \(10^{-10}\) m/s, 大约一个原子宽度的秒速. 初始段

2.12. 1.8 守恒量

系统状态的一个函数, 它沿着解路径保持不变, 称为守恒量 (conserved quantity) 或运动常数 (constant of motion). 如果 C 是一个守恒量, 那么 \[ D(C \circ \Gamma[q]) = D_t C \circ \Gamma[q] = 0 \quad (1.129) \] 对于解路径 q. 遵循历史惯例, 我们也将运动常数称为运动积分 (integrals of the motion).79 在本节中, 我们将研究具有对称性的系统, 并发现对称性与守恒量相关联. 例如, 具有平移对称性的系统线性动量守恒, 具有旋转对称性的系统角动量守恒, 如果系统不依赖于时间原点则能量守恒. 我们首先考虑那些可以选择自然表达对称性的坐标系的系统, 稍后讨论那些无法选择同时表达所有对称性的坐标系的系统.

2.12.1. 1.8.1 守恒动量

如果一个拉格朗日量 \(L(t, q, v)\) 不依赖于某个特定坐标 \(q^i\), 那么 \[ (\partial_1 L)_i = 0, \quad (1.130) \] 相应的拉格朗日方程的第 i 个分量是 \[ (D(\partial_2 L \circ \Gamma[q]))_i = 0. \quad (1.131) \] 这与80 \[ D((\partial_2 L)_i \circ \Gamma[q])) = 0. \quad (1.132) \] 相同. 所以我们看到 \[ P_i = (\partial_2 L)_i \quad (1.133) \] 是一个守恒量. 函数 P 称为动量状态函数 (momentum state function). 动量状态函数的值是广义动量 (generalized momentum). 我们将广义动量的第 i 个分量称为与第 i 个坐标共轭的动量 (momentum conjugate).81 不显式出现在拉格朗日量中的广义坐标分量称为循环坐标 (cyclic coordinate). 与任何循环坐标共轭的广义动量分量是运动常数. 它的值沿可实现路径保持不变; 它在不同路径上可能有不同的值. 正如我们将看到的, 即使动量不守恒, 它也是一个重要的量. 给定坐标路径 q 和拉格朗日量 L, 动量路径 p 是 \[ p = \partial_2 L \circ \Gamma[q] = P \circ \Gamma[q], \quad (1.134) \] 分量为 \[ p_i = P_i \circ \Gamma[q]. \quad (1.135) \] 动量路径 p 对任何路径 q 都是明确定义的. 如果路径是可实现的, 并且拉格朗日量不依赖于 \(q^i\), 那么 \(p_i\) 是一个常数函数 \[ D p_i = 0. \quad (1.136) \] \(p_i\) 的常数值对于不同的轨迹可能不同.

  1. 守恒动量的例子

    自由粒子的拉格朗日量 \(L(t, x, v) = \frac{1}{2} m v^2\) 与 x 无关. 因此动量状态函数 \(P(t, q, v) = mv\) 沿可实现路径守恒. 坐标路径 q 的动量路径 p 是 \(p(t) = P \circ \Gamma[q](t) = m Dq(t)\). 对于可实现路径 \(Dp(t)=0\). 对于自由粒子, 通常的线性动量沿可实现路径守恒. 对于中心力场中的粒子 (1.6 节), 拉格朗日量 \[ L(t; r, \phi; \dot{r}, \dot{\phi}) = \frac{1}{2} m (\dot{r}^2 + r^2 \dot{\phi}^2) - V(r) \] 依赖于 r 但与 \(\phi\) 无关. 动量状态函数是 \[ P(t; r, \phi; \dot{r}, \dot{\phi}) = [m \dot{r}, m r^2 \dot{\phi}]. \] 它有两个分量. 第一个分量, “径向动量”, 不守恒. 第二个分量, “角动量”, 沿任何解轨迹守恒. 如果中心势问题用直角坐标表示, 那么所有坐标都会出现在拉格朗日量中. 在那种情况下, 不会有任何明显的守恒量. 然而, 系统的运动不依赖于坐标的选择; 因此角动量仍然守恒. 我们看到, 明智地选择坐标系有很大优势. 如果我们可以选择坐标, 使得系统的对称性通过某个坐标分量的缺失反映在拉格朗日量中, 那么相应守恒量的存在将是自动的.82

2.12.2. 1.8.2 能量守恒

如果拉格朗日量不依赖于相应的坐标, 则动量在运动中守恒. 如果拉格朗日量 \(L(t, q, \dot{q})\) 不显式依赖于时间: \(\partial_0 L = 0\), 则存在另一个运动常数, 即能量. 考虑拉格朗日量沿解路径 q 的时间导数: \[ D(L \circ \Gamma[q]) = \partial_0 L \circ \Gamma[q] + (\partial_1 L \circ \Gamma[q]) Dq + (\partial_2 L \circ \Gamma[q]) D^2 q. \quad (1.137) \] 使用拉格朗日方程重写第二项 \[ D(L \circ \Gamma[q]) = (\partial_0 L) \circ \Gamma[q] + D(\partial_2 L \circ \Gamma[q]) Dq + (\partial_2 L \circ \Gamma[q]) D^2 q. \quad (1.138) \] 分离 \(\partial_0 L\) 并组合右侧的前两项 \[ (\partial_0 L) \circ \Gamma[q] = D(L \circ \Gamma[q]) - D((\partial_2 L \circ \Gamma[q]) Dq) \] \[ = D(L \circ \Gamma[q]) - D((\partial_2 L \circ \Gamma[q]) (\dot{Q} \circ \Gamma[q])) \] \[ = D((L - P \dot{Q}) \circ \Gamma[q]), \quad (1.139) \] 其中, 如前所述, \(\dot{Q}\) 从状态中选择速度. 因此我们看到, 如果 \(\partial_0 L = 0\), 那么 \[ \mathcal{E} = P \dot{Q} - L, \quad (1.140) \] 沿可实现路径是守恒的. 函数 \(\mathcal{E}\) 称为能量状态函数 (energy state function).83 令 \(E = \mathcal{E} \circ \Gamma[q]\) 表示路径 q 上的能量函数. 如果拉格朗日量没有显式的时间依赖性, 能量函数沿任何可实现轨迹具有恒定值; 能量 E 对于不同的轨迹可能有不同的值. 没有显式时间依赖性的系统称为自治系统 (autonomous). 给定一个拉格朗日量 L, 我们可以计算能量:

(define (Lagrangian->energy L)
  (let ((P ((partial 2) L)))
    (- (* P velocity) L)))
  1. 用动能和势能表示的能量

    在某些情况下, 能量可以写成动能和势能之和. 假设系统由具有直角坐标 \(x_\alpha\) 的粒子组成, 其运动可能受到约束, 并且这些直角坐标是广义坐标 q 和可能的时间 t 的某些函数: \(x_\alpha = f_\alpha(t, q)\). 我们将拉格朗日量构造为 \(L = T - V\), 并通过用广义速度表示直角速度来计算动能关于 q: \[ v_\alpha = \partial_0 f_\alpha(t, q) + \partial_1 f_\alpha(t, q) v. \quad (1.141) \] 动能是 \[ T(t, q, v) = \frac{1}{2} \sum_\alpha m_\alpha v_\alpha^2, \quad (1.142) \] 其中 \(v_\alpha\) 是 \(v_\alpha\) 的大小. 如果函数 \(f_\alpha\) 不显式依赖于时间 (\(\partial_0 f_\alpha = 0\)), 那么直角速度是广义速度的一次齐次函数, 并且 T 是广义速度的二次齐次函数, 因为它是通过对一次齐次函数的平方求和形成的. 如果 T 是广义速度的二次齐次函数, 那么 \[ P \dot{Q} = (\partial_2 T) \dot{Q} = 2 T, \quad (1.143) \] 其中第二个等式由欧拉齐次函数定理得出.84 能量状态函数是 \[ \mathcal{E} = P \dot{Q} - L = P \dot{Q} - T + V. \quad (1.144) \] 因此, 如果 \(f_\alpha\) 与时间无关, 能量函数可以重写为 \[ E = 2 T - T + V = T + V. \quad (1.145) \] 注意, 如果 V 依赖于时间, 能量仍然是动能和势能之和, 但能量不守恒. 能量状态函数总是一个明确定义的函数, 无论它是否可以写成 \(T+V\) 的形式, 也无论它是否沿可实现路径守恒.

2.12.3. 练习 1.28:

当 \(f_\alpha\) 确实显式依赖于时间时, 类似的结果也成立. a. 证明在这种情况下, 动能在广义速度中包含线性项. b. 证明, 通过添加一个全时间导数, 拉格朗日量可以写成形式 \(L' = A - B\), 其中 A 是广义速度的齐次二次型, B 与速度无关. c. 证明, 使用欧拉定理, 能量函数是 \(\mathcal{E}' = A + B\). 一个例子是, 通过添加一个全时间导数, 从拉格朗日量中移除了速度线性项: 驱动摆锤.

2.12.4. 练习 1.29:

一个质量为 m 的粒子在一个半径为 R 的水平圆柱体上滑下, 圆柱体处于加速度为 g 的均匀引力场中. 如果粒子从靠近顶部以零初始速度开始, 粒子离开圆柱体时的角速度是多少?

2.12.5. 1.8.3 三维中心力

一个重要的物理系统是粒子在三维中心场中的运动, 其任意势能 V(r) 仅取决于半径. 我们将用球坐标 r, \(\theta\) 和 \(\phi\) 来描述这个系统, 其中 \(\theta\) 是余纬度, \(\phi\) 是经度. 动能有三项: \[ T(t; r, \theta, \phi; \dot{r}, \dot{\theta}, \dot{\phi}) = \frac{1}{2} m (\dot{r}^2 + r^2 \dot{\theta}^2 + r^2 (\sin \theta)^2 \dot{\phi}^2). \] 作为一个过程:

(define ((T3-spherical m) state)
  (let ((t (time state))
        (q (coordinate state))
        (qdot (velocity state)))
    (let ((r (ref q 0))
          (theta (ref q 1))
          (phi (ref q 2))
          (rdot (ref qdot 0))
          (thetadot (ref qdot 1))
          (phidot (ref qdot 2)))
      (* 1/2 m
         (+ (square rdot)
            (square (* r thetadot))
            (square (* r (sin theta) phidot)))))))

然后通过减去势能来形成拉格朗日量:

(define (L3-central m Vr)
  (define (Vs state)
    (let ((r (ref (coordinate state) 0)))
      (Vr r)))
  (- (T3-spherical m) Vs))

让我们首先看一下广义力 (拉格朗日量相对于广义坐标的导数). 我们用相对于坐标参数的偏导数来计算它们:

(show-expression
 (((partial 1) (L3-central 'm (literal-function 'V)))
  (up 't
      (up 'r 'theta 'phi)
      (up 'rdot 'thetadot 'phidot))))

\[ \begin{bmatrix} m \dot{\phi}^2 r (\sin(\theta))^2 + m r \dot{\theta}^2 - DV(r) \\ m \dot{\phi}^2 r^2 \cos(\theta) \sin(\theta) \\ 0 \end{bmatrix} \] 力的 \(\phi\) 分量为零, 因为 \(\phi\) 没有出现在拉格朗日量中 (它是一个循环变量). 相应的动量分量守恒. 计算动量:

(show-expression
 (((partial 2) (L3-central 'm (literal-function 'V)))
  (up 't
      (up 'r 'theta 'phi)
      (up 'rdot 'thetadot 'phidot))))

\[ \begin{bmatrix} m \dot{r} \\ m r^2 \dot{\theta} \\ m r^2 \dot{\phi} (\sin(\theta))^2 \end{bmatrix} \] 与 \(\phi\) 共轭的动量守恒. 这是角动量 \(r \times (mv)\) 的 z 分量, 对于矢量位置 r 和线性动量 mv. 我们可以通过用球坐标写出角动量的 z 分量来证明这一点:

(define ((ang-mom-z m) state)
  (let ((q (coordinate state))
        (v (velocity state)))
    (ref (cross-product q (* m v)) 2)))
(define (s->r state)
  (let ((q (coordinate state)))
    (let ((r (ref q 0))
          (theta (ref q 1))
          (phi (ref q 2)))
      (let ((x (* r (sin theta) (cos phi)))
            (y (* r (sin theta) (sin phi)))
            (z (* r (cos theta))))
        (up x y z))))))
(show-expression
 ((compose (ang-mom-z 'm) (F->C s->r))
  (up 't
      (up 'r 'theta 'phi)
      (up 'rdot 'thetadot 'phidot))))

\[ m r^2 \dot{\phi} (\sin(\theta))^2 \] z 轴的选择是任意的, 因此任何角动量分量的守恒意味着所有分量的守恒. 因此总角动量守恒. 我们可以选择 z 轴, 使得所有角动量都在 z 分量中. 角动量必须垂直于半径矢量和线性动量矢量. 因此运动是平面的, \(\theta = \pi/2\), 且 \(\dot{\theta} = 0\). 中心力场中的平面运动已在 1.6 节中讨论过. 我们也可以看到, 从中心力场的拉格朗日量计算出的能量状态函数实际上是 \(T + V\):

(show-expression
 ((Lagrangian->energy (L3-central 'm (literal-function 'V)))
  (up 't
      (up 'r 'theta 'phi)
      (up 'rdot 'thetadot 'phidot))))

\[ \frac{1}{2} m \dot{\phi}^2 r^2 (\sin(\theta))^2 + \frac{1}{2} m r^2 \dot{\theta}^2 + \frac{1}{2} m \dot{r}^2 + V(r) \] 能量是守恒的, 因为拉格朗日量没有显式的时间依赖性.

2.12.6. 练习 1.30: 驱动球面摆

球面摆是一个有质量的摆锤, 受均匀重力作用, 可以在三维空间中摆动, 但与枢轴保持给定距离. 为球面摆建立一个拉格朗日量, 由枢轴的垂直运动驱动. 你能找到什么对称性? 找到表达对称性的坐标. 什么量是守恒的? 给出守恒量的解析表达式.

2.12.7. 1.8.4 诺特定理

我们已经看到, 如果一个系统具有对称性, 并且可以选择一个坐标系, 使得拉格朗日量不依赖于与对称性相关的坐标, 那么就存在一个与该对称性相关的守恒量. 然而, 存在更一般的对称性, 对于这些对称性, 没有能够完全表达对称性的坐标系. 例如, 中心势中的运动是球对称的, 动力学系统在绕任何轴的旋转下都是不变的, 但是用球坐标表示的系统拉格朗日量只表现出绕一个轴的对称性. 更一般地说, 如果存在一个坐标变换使拉格朗日量保持不变, 那么拉格朗日量就具有对称性. 连续对称性 (continuous symmetry) 是一个参数化的对称性族. 这里我们证明对于任何连续对称性都存在一个守恒量. 考虑一个参数为 s 的参数化坐标变换 F:85 \[ x = F(s)(t, x'). \quad (1.146) \] 对这个参数化坐标变换对应一个参数化状态变换 C: \[ (t, x, v) = C(s)(t, x', v'). \quad (1.147) \]

  1. 插图: 中心势中的运动

    例如, 考虑中心势拉格朗日量, 用直角坐标表示: \[ L(t; x, y, z; v_x, v_y, v_z) \] \[ = \frac{1}{2} m (v_x^2 + v_y^2 + v_z^2) - U(\sqrt{x^2 + y^2 + z^2}), \quad (1.155) \] 以及绕 z 轴的参数化旋转 \(R_z(s)\) \[ \begin{pmatrix} x \\ y \\ z \end{pmatrix} = R_z(s) \begin{pmatrix} x' \\ y' \\ z' \end{pmatrix} = \begin{pmatrix} x' \cos s - y' \sin s \\ x' \sin s + y' \cos s \\ z' \end{pmatrix}. \quad (1.156) \] 旋转是一个正交变换, 所以 \[ x^2 + y^2 + z^2 = (x')^2 + (y')^2 + (z')^2. \quad (1.157) \] 沿路径微分, 我们得到 \[ (v_x, v_y, v_z) = R_z(s) (v_x', v_y', v_z'), \quad (1.158) \] 所以速度也通过正交变换进行变换, 并且 \(v_x^2 + v_y^2 + v_z^2 = (v_x')^2 + (v_y')^2 + (v_z')^2\). 因此 \[ L'(t; x', y', z'; v_x', v_y', v_z') \] \[ = \frac{1}{2} m ((v_x')^2 + (v_y')^2 + (v_z')^2) - U(\sqrt{(x')^2 + (y')^2 + (z')^2}), \quad (1.159) \] 我们看到 \(L'\) 与 L 是完全相同的函数. 动量是 \[ \partial_2 L(t; x, y, z; v_x, v_y, v_z) = [m v_x, m v_y, m v_z]. \quad (1.160) \] 并且 \[ \left(\frac{dF}{ds}\right)(0)(t; x, y, z) = \left(\frac{d R_z}{ds}\right)(0)(x, y, z) = (y, -x, 0). \quad (1.161) \] 所以诺特积分是 \[ I(t; x, y, z; v_x, v_y, v_z) = ((\partial_2 L) ((\frac{dF}{ds})(0)))(t; x, y, z; v_x, v_y, v_z) \] \[ = m (y v_x - x v_y), \quad (1.162) \] 我们认出它就是角动量 \(x \times (mv)\) 的负 z 分量. 由于拉格朗日量在任何连续旋转对称性下都保持不变, 矢量角动量的所有分量对于中心势问题都是守恒的. 过程调用 ((Rx angle-x) q), ((Ry angle-y) q), 和 ((Rz angle-z) q) 将直角元组 q 分别绕指示轴旋转指示角度.87 我们用它们来制作一个参数化坐标变换 F-tilde:

    (define (F-tilde angle-x angle-y angle-z)
      (compose (Rx angle-x) (Ry angle-y) (Rz angle-z) coordinate))
    

    中心势运动的拉格朗日量是:

    (define ((L-central-rectangular m U) tqp)
      (let ((q (coordinate state))
            (v (velocity state)))
        (- (* 1/2 m (square v)) (U (sqrt (square q))))))
    

    诺特积分则为

2.13. 1.9 路径函数的抽象

从坐标变换 F 推导局部元组变换函数 C 的一个基本步骤是推导两个坐标系中速度之间的关系. 我们通过将坐标路径代入坐标变换函数 F, 微分, 然后将路径上的结果推广到任意时刻的速度来实现. 最后一步是从路径函数中抽象出局部元组函数的一个例子. 给定一个局部元组的函数 f, 相应的路径依赖函数 \(\bar{f}[q]\) 是 \(\bar{f}[q] = f \circ \Gamma[q]\). 给定 \(\bar{f}\), 我们如何重构 f? 局部元组函数 f 仅依赖于局部元组的有限数量的分量, 并且 \(\bar{f}\) 仅依赖于路径的相应局部组分. 因此 \(\bar{f}\) 对于所有具有相同数量的共同局部元组组分的路径具有相同的值. 给定 \(\bar{f}\), 我们可以通过取 f 的参数 (它是局部元组的有限初始段), 构造一个具有此局部描述的路径, 并找到此路径的 \(\bar{f}\) 值来重构 f. 两个具有相同直到 n 阶导数的局部描述的路径被称为具有 n 阶接触 (osculate). 例如, 一条路径和该路径直到 n 阶的截断幂级数表示具有 n 阶接触; 如果局部元组函数需要的导数少于 n 个, 则路径和截断幂级数表示是等价的. 令 O 为生成具有给定局部元组分量的密切路径的函数. 因此 \(O(t, q, v, \dots)(t) = q\), \(D(O(t, q, v, \dots))(t) = v\), 依此类推 \[ (t, q, v, \dots) = \Gamma[O(t, q, v, \dots)](t). \quad (1.163) \] 所需的局部元组分量数量是有限的, 但未指定. 构造 O 的一种方法是通过截断幂级数 \[ O(t, q, v, a, \dots)(t') = q + v(t'-t) + \frac{1}{2} a (t'-t)^2 + \dots, \quad (1.164) \] 其中项的数量与指定的局部元组分量的数量相同. 给定路径函数 \(\bar{f}\), 我们如下重构 f 函数. 我们取 f 的参数并构造一个具有此局部描述的密切路径. 那么 f 的值就是此密切路径的 \(\bar{f}\) 值: \[ f(t, q, v, \dots) = f \circ \Gamma[O(t, q, v, \dots)](t) = \bar{f}[O(t, q, v, \dots)](t). \quad (1.165) \] 令 \(\bar{\Gamma}\) 为接受路径函数并返回相应局部元组函数的函数: \[ f = \bar{\Gamma}(\bar{f}). \quad (1.166) \] 从方程 (1.165) 我们看到 \[ \bar{\Gamma}(\bar{f})(t, q, v, \dots) = \bar{f}[O(t, q, v, \dots)](t). \quad (1.167) \] 过程 Gamma-bar 实现了将路径依赖函数重构成局部元组函数的函数 \(\bar{\Gamma}\):

(define ((Gamma-bar f-bar) local)
  ((f-bar (osculating-path local)) (time local)))

过程 osculating-path 接受多个局部分量并返回具有这些分量的路径; 它实现为幂级数. 我们可以使用 Gamma-bar 来构造 F->C 过程, 该过程接受坐标变换 F 并生成变换局部元组的过程. 过程 F->C 构造一个路径依赖过程 f-bar, 该过程接受加撇系统中的坐标路径并返回相应未加撇坐标系中的局部元组. 然后它使用 Gamma-bar 将 f-bar 抽象为加撇坐标系中的任意局部元组.

(define (F->C F)
  (define (f-bar q-prime)
    (define q
      (compose F (Gamma q-prime)))
    (Gamma q))
  (Gamma-bar f-bar))
(show-expression
 ((F->C p->r)
  (->local 't (up 'r 'theta) (up 'rdot 'thetadot))))

\[ \begin{pmatrix} t \\ \begin{pmatrix} r \cos(\theta) \\ r \sin(\theta) \end{pmatrix} \\ \begin{pmatrix} -\dot{\theta} r \sin(\theta) + \dot{r} \cos(\theta) \\ \dot{\theta} r \cos(\theta) + \dot{r} \sin(\theta) \end{pmatrix} \end{pmatrix} \] 注意在这个 F->C 的定义中, 我们没有显式计算任何导数. 导致状态变换 (1.74) 的计算是不需要的. 我们也可以使用 \(\bar{\Gamma}\) 来制作一个计算函数 F 的全时间导数 \(D_t F\) 的优雅公式: \[ D_t F = \bar{\Gamma}(\bar{G}), \quad \text{其中 } \bar{G}[q] = D(F \circ \Gamma[q]). \quad (1.168) \] 将全时间导数实现为一个程序遵循这个定义. 给定一个实现局部元组函数 F 的过程和一个路径 q, 我们可以构造一个新过程 (compose F (Gamma q)). 过程 G-bar 实现了这个时间函数的导数. 然后我们用 Gamma-bar 将其从路径中抽象出来, 得到全时间导数.

(define (Dt F)
  (define (G-bar q)
    (D (compose F (Gamma q))))
  (Gamma-bar G-bar))

2.13.1. 练习 1.31: 速度变换

使用 Gamma-bar 过程构造一个给定坐标变换就变换速度的过程. 将此过程应用于 p->r 过程以推导出 (再次) 方程 (1.65).

2.13.2. 练习 1.32: 路径函数和状态函数

局部元组函数 f 与局部元组函数 \(\bar{\Gamma}(\bar{f})\) 相同, 其中 \(\bar{f}[q] = f \circ \Gamma[q]\). 另一方面, 路径函数 \(\bar{f}[q]\) 和路径函数 \(\bar{\Gamma}(\bar{f}) \circ \Gamma[q]\) 不一定相同. 解释. 给出它们相同和不同的例子. 编写程序来说明这种行为.

2.13.3. 瞬时拉格朗日方程

给定一个拉格朗日量, 拉格朗日方程检验路径是否是系统的可实现路径. 拉格朗日方程关联路径及其导数. 拉格朗日方程必须在每个时刻都满足的事实表明, 我们可以将拉格朗日方程从路径中抽象出来, 并将它们写成可实现路径的局部元组分量之间的关系. 令 \(\bar{E}[L]\) 为产生拉格朗日量 L 的拉格朗日方程 (1.18) 残差的路径依赖函数: \[ \bar{E}[L][q] = D(\partial_2 L \circ \Gamma[q]) - \partial_1 L \circ \Gamma[q]. \quad (1.169) \] 可实现路径 q 满足拉格朗日方程 \[ \bar{E}[L][q] = 0. \quad (1.170) \] 路径依赖的拉格朗日方程可以使用 \(\bar{\Gamma}\) 转换为局部拉格朗日方程 \[ E[L] = \bar{\Gamma}(\bar{E}[L]). \quad (1.171) \] 算符 E 称为欧拉-拉格朗日算符 (Euler-Lagrange operator). 就这个算符而言, 拉格朗日方程是 \[ E[L] \circ \Gamma[q] = 0. \quad (1.172) \] 应用 \(\bar{\Gamma}\) 的定义 (1.167) \[ E[L](t, q, v, \dots) = \bar{\Gamma}(\bar{E}[L])(t, q, v, \dots) \] \[ = D(\partial_2 L \circ \Gamma[O(t, q, v, \dots)]) \] \[ - \partial_1 L \circ \Gamma[O(t, q, v, \dots)] \]

\[ = (D_t(\partial_2 L))(t, q, v, \dots) - \partial_1 L(t, q, v, \dots) \] \[ = (D_t \partial_2 L - \partial_1 L)(t, q, v, \dots). \quad (1.173) \] 因此欧拉-拉格朗日算符显式地为 \[ E[L] = D_t \partial_2 L - \partial_1 L. \quad (1.174) \] 过程 Euler-Lagrange-operator 实现 E

(define (Euler-Lagrange-operator L)
  (- (Dt ((partial 2) L)) ((partial 1) L))).

例如, 应用于谐振子的拉格朗日量,

(print-expression
 ((Euler-Lagrange-operator
   (L-harmonic 'm 'k))
  (->local 't 'x 'v 'a)))

注意局部元组的分量是单独指定的. 使用方程 (1.172), 谐振子的拉格朗日方程是:88

(print-expression
 ((compose
   (Euler-Lagrange-operator (L-harmonic 'm 'k))
   (Gamma (literal-function 'x) 4))
  't))

2.13.4. 练习 1.33: E 的性质

令 F 和 G 为两个类拉格朗日量的局部元组函数, C 为局部元组变换函数, c 为常数. 证明以下性质: a. \(E[F + G] = E[F] + E[G]\) b. \(E[c F] = c E[F]\) c. \(E[F G] = E[F] G + F E[G] + (D_t F) \partial_2 G + \partial_2 F (D_t G)\) d. \(E[F \circ C] = D_t(DF \circ C) \partial_2 C + DF \circ C E[C]\)

2.14. 1.10 约束运动

拉格朗日方法的一个优点是通常可以选择坐标来精确描述系统的自由度, 自动包含任何约束. 我们也可以使用比系统实际具有的自由度更多的坐标, 并考虑坐标之间的显式约束. 例如, 平面摆有一个一维位形空间. 我们已经用与垂直方向的夹角作为位形坐标来表述了这个问题. 或者, 我们可以选择将摆表示为一个在平面内运动的物体, 约束在围绕枢轴的正确半径的圆上. 我们希望对这两种选择都有有效的描述, 并证明它们是等价的. 在本节中, 我们开发处理具有显式约束问题的工具. 这里考虑的约束比证明刚性约束系统的拉格朗日量可以写成动能和势能之差时考虑的约束更一般 (参见 1.6.2 节). 假设一个具有 n 个自由度的系统的位形由 n+1 个坐标指定, 并且位形路径 q 被约束满足某种形式的关系 \[ \phi(t, q(t), Dq(t)) = 0. \quad (1.175) \] 我们如何表述运动方程? 一种方法是使用约束方程来消除一个坐标以支持其余坐标, 然后简化的广义坐标集的演化将由通常的拉格朗日方程描述. 控制不完全独立坐标演化的方程应该是等价的. 我们可以通过回到作用量原理来解决表述具有冗余坐标系统运动方程的问题. 可实现路径与其他路径的区别在于具有平稳作用量. 平稳指的是作用量相对于路径的某些微小变分不发生变化. 应该考虑哪些变分? 我们已经看到, 与速度无关的刚性约束可以用来消除冗余坐标. 在冗余坐标中, 我们通过构造满足约束的变分来区分可实现路径. 因此, 在约束可以用来消除冗余坐标的情况下, 我们可以将路径的变分限制为那些与约束一致的变分. 那么, 可能的变分限制如何影响导致拉格朗日方程的论证 (参见 1.5 节)? 实际上, 大部分计算不受影响. 作用量平稳的条件仍然简化为条件 (1.34): \[ 0 = \int_{t_1}^{t_2} \{ (\partial_1 L \circ \Gamma[q]) - D(\partial_2 L \circ \Gamma[q]) \} \eta. \quad (1.176) \] 此时我们论证说, 因为变分 \(\eta\) 是任意的 (除了端点条件外), 积分要为零的唯一方法是积分对象为零. 此外, 我们选择 \(\eta\) 的自由度允许我们推断出乘以 \(\eta\) 的因子必须恒等于零, 从而推导出拉格朗日方程. 现在 \(\eta\) 的选择并不完全自由. 我们仍然可以从 \(\eta\) 的任意性推断出积分对象必须为零,89 但我们可能不再能推断出乘以 \(\eta\) 的因子为零 (只知道该因子在可接受变分上的投影为零). 所以我们有 \[ \{ (\partial_1 L \circ \Gamma[q]) - D(\partial_2 L \circ \Gamma[q]) \} \eta = 0, \quad (1.177) \] \(\eta\) 受约束条件限制. 路径 q 满足约束条件, 如果 \(\bar{\phi}[q] = \phi \circ \Gamma[q] = 0\). 约束条件甚至必须对变分路径也满足, 所以我们只允许那些约束条件的变分为零的变分 \(\eta\): \[ \delta_\eta(\bar{\phi}) = 0. \quad (1.178) \] 我们可以说变分必须与约束曲面“相切”. 用链式法则展开, 如果满足以下条件, 则变分 \(\eta\) 与约束曲面 \(\phi\) 相切 \[ (\partial_1 \phi \circ \Gamma[q]) \eta + (\partial_2 \phi \circ \Gamma[q]) D\eta = 0. \quad (1.179) \] 注意这些是时间的函数; 给定时间的变分与该时刻的约束相切.

2.14.1. 1.10.1 坐标约束

考虑不依赖于速度的约束: \[ \partial_2 \phi \equiv 0. \] 在这种情况下, 如果满足以下条件, 则变分与约束曲面相切 \[ (\partial_1 \phi \circ \Gamma) \eta = 0. \quad (1.180) \] 总之, 方程 (1.177) 和 (1.180) 应该确定运动, 但我们如何消除 \(\eta\)? 拉格朗日方程的残差与任何正交于约束曲面法线的 \(\eta\) 都正交.90 一个与所有正交于给定向量的向量都正交的向量与给定向量平行. 因此, 拉格朗日方程的残差与约束曲面的法线平行; 两者必须成比例: \[ D(\partial_2 L \circ \Gamma[q]) - \partial_1 L \circ \Gamma[q] = \lambda (\partial_1 \phi) \circ \Gamma[q]. \quad (1.181) \] 两个向量沿路径处处平行并不能保证比例因子在路径上每个时刻都相同, 因此比例因子 \(\lambda\) 是某个时间的函数, 可能取决于所考虑的路径. 这些方程, 连同约束方程 \(\phi \circ \Gamma[q] = 0\), 是控制方程. 这些方程足以确定路径 q 并消除未知函数 \(\lambda\).

现在注意看这个 假设我们形成一个增广拉格朗日量, 将 \(\lambda\) 视为坐标之一 \[ L'(t; q, \lambda; \dot{q}, \dot{\lambda}) = L(t, q, \dot{q}) + \lambda \phi(t, q, \dot{q}). \quad (1.182) \] 与坐标 q 相关的拉格朗日方程正是修正后的拉格朗日方程 (1.181), 而与 \(\lambda\) 相关的拉格朗日方程只是约束方程. (注意 \(\dot{\lambda}\) 没有出现在增广拉格朗日量中.) 因此, 这个增广拉格朗日量的拉格朗日方程完全概括了通过添加显式坐标约束而施加于拉格朗日方程的修正, 代价是引入了额外的自由度. 注意这个拉格朗日量与我们在推导刚性系统 \(L=T-V\) (1.6.2 节) 中使用的拉格朗日量 (1.89) 形式相同.

或者 我们怎么知道我们有足够的信息来消除方程 (1.181) 中的未知函数 \(\lambda\), 或者在拉格朗日量 (1.182) 中引入的额外自由度纯粹是形式上的? 如果 \(\lambda\) 可以写成解状态路径的函数, 那么很明显它由状态确定, 因此可以被消除. 好的, 假设 \(\lambda\) 可以写成状态依赖函数与路径的复合: \(\lambda = \Lambda \circ \Gamma[q]\). 考虑拉格朗日量 \[ L'' = L + \Lambda \phi. \quad (1.183) \] 这个新的拉格朗日量没有额外的自由度. L'' 的拉格朗日方程是 L 的拉格朗日方程加上由 \(\Lambda \phi\) 乘积产生的附加项. 应用欧拉-拉格朗日算符 E (参见 1.9 节) 到这个拉格朗日量得到91 \[ E[L''] = E[L] + E[\Lambda \phi] \] \[ = E[L] + \Lambda E[\phi] + E[\Lambda] \phi + D_t \Lambda \partial_2 \phi + \partial_2 \Lambda D_t \phi. \quad (1.184) \] 将 E[L''] 与 \(\Gamma[q]\) 复合得到路径 q 的拉格朗日方程. 利用约束在路径 \(\phi \circ \Gamma[q] = 0\) 上满足的事实, 因此 \(D_t \phi \circ \Gamma[q] = 0\), 我们有 \[ E[L''] \circ \Gamma[q] = (E[L] + \lambda E[\phi] + D\lambda (\partial_2 \phi)) \circ \Gamma[q], \quad (1.85) \]

  1. 使用约束的摆锤

    摆锤可以表述为在垂直平面内受约束的质点运动, 约束条件是到枢轴的距离恒定 (见图 1.8).

    figure-1.8.png 在这种表述中, 拉格朗日量中的动能和势能是均匀引力加速度下无约束粒子的动能和势能. 无约束粒子的拉格朗日量是 \[ L(t; x, y; v_x, v_y) = \frac{1}{2} m (v_x^2 + v_y^2) - mgy. \quad (1.187) \] 摆锤在围绕枢轴的半径为 l 的圆上运动的约束是92 \[ x^2 + y^2 - l^2 = 0. \quad (1.188) \] 增广拉格朗日量是 \[ L'(t; x, y, \lambda; v_x, v_y, \dot{\lambda}) = \frac{1}{2} m (v_x^2 + v_y^2) - mgy + \lambda (x^2 + y^2 - l^2). \quad (1.189) \] 增广拉格朗日量的拉格朗日方程是 \[ m D^2 x - 2 \lambda x = 0 \quad (1.190) \] \[ m D^2 y + mg - 2 \lambda y = 0 \quad (1.191) \] \[ x^2 + y^2 - l^2 = 0. \quad (1.192) \] 这些方程足以求解摆锤的运动. 如果我们切换到“极”坐标, 这些方程会简化, 这并不奇怪 \[ x = r \sin \theta \quad y = -r \cos \theta. \quad (1.193) \] 将此代入约束方程, 我们确定 r=l, 一个常数. 形成导数并代入其他两个方程, 我们发现 \[ ml(\cos \theta D^2 \theta - \sin \theta (D\theta)^2) - 2 \lambda l \sin \theta = 0 \quad (1.194) \] \[ ml(\sin \theta D^2 \theta + \cos \theta (D\theta)^2) + mg + 2 \lambda l \cos \theta = 0. \quad (1.195) \] 将第一个方程乘以 \(\cos \theta\), 第二个方程乘以 \(\sin \theta\), 然后相加, 我们发现 \[ ml D^2 \theta + mg \sin \theta = 0, \quad (1.196) \]

  2. 从部件构建系统

    使用增广拉格朗日量在动力学系统上强制约束的方法为我们提供了一种通过组合系统部件的分析结果和它们之间的耦合来构建复合系统分析的方法. 考虑图 1.9 顶部所示的复合弹簧-质量系统. 我们可以将其分析为一个具有两个位形坐标 \(x_1\) 和 \(x_2\) 的整体系统, 分别表示弹簧从其平衡长度 \(X_1\) 和 \(X_2\) 的伸长量. 另一种方法是将系统分解为几个部分. 在我们的弹簧-质量系统中, 我们可以选择两个部分, 一个是连接到墙壁的弹簧和质量, 另一个是弹簧和质量, 其附着点位于附加位形坐标 \(\xi\) 处. 我们可以分别为每个部分建立拉格朗日量. 然后我们可以选择一个复合系统的拉格朗日量作为两个分量拉格朗日量之和, 并加上一个约束 \(\xi = X_1 + x_1\) 来完成耦合.

    figure-1.9.png 让我们看看这是如何工作的. 连接到墙壁的子系统的拉格朗日量是 \[ L_1(t, x_1, \dot{x}_1) = \frac{1}{2} m_1 \dot{x}_1^2 - \frac{1}{2} k_1 x_1^2 \quad (1.198) \] 连接到它的子系统的拉格朗日量是 \[ L_2(t; \xi, x_2; \dot{\xi}, \dot{x}_2) = \frac{1}{2} m_2 (\dot{\xi} + \dot{x}_2)^2 - \frac{1}{2} k_2 x_2^2. \quad (1.199) \] 我们通过将每个独立部分的拉格朗日量求和, 再加上一个耦合项来强制约束, 来构造由这些部分组成的系统的拉格朗日量: \[ L(t; x_1, x_2, \xi, \lambda; \dot{x}_1, \dot{x}_2, \dot{\xi}, \dot{\lambda}) \] \[ = L_1(t, x_1, \dot{x}_1) + L_2(t; \xi, x_2; \dot{\xi}, \dot{x}_2) + \lambda(\xi - (X_1 + x_1)) \quad (1.200) \] 因此我们可以写出四个位形坐标的拉格朗日方程, 顺序如下: \[ m_1 D^2 x_1 = -k_1 x_1 - \lambda \quad (1.201) \] \[ m_2 (D^2 \xi + D^2 x_2) = -k_2 x_2 \quad (1.202) \] \[ m_2 (D^2 \xi + D^2 x_2) = \lambda \quad (1.203) \] \[ 0 = \xi - (X_1 + x_1) \quad (1.204) \] 注意在这个系统中 \(\lambda\) 是约束力, 将系统保持在一起. 我们现在可以消除“胶水”坐标 \(\xi\) 和 \(\lambda\) 以获得坐标 \(x_1\) 和 \(x_2\) 的运动方程: \[ m_1 D^2 x_1 + m_2 (D^2 x_1 + D^2 x_2) + k_1 x_1 = 0 \quad (1.205) \] \[ m_2 (D^2 x_1 + D^2 x_2) + k_2 x_2 = 0 \quad (1.206) \] 这个策略可以推广. 我们可以制作一个原始组件库. 每个组件可能由一个拉格朗日量表征, 并具有用于连接该组件到其他组件的终端的额外自由度. 然后我们可以通过使用约束将终端粘合在一起来组合组件来构造复合拉格朗日量.

2.14.2. 练习 1.34: 组合拉格朗日量

a. 制作另一个与本节描述的弹簧质量结构兼容的原始组件. 例如, 制作一个可以连接到弹簧-质量系统的摆锤. 构建一个组合并推导运动方程. 小心, 如果你选择不好的坐标, 代数会很可怕. b. 对于一个不错的小项目, 构建一个由适当拉格朗日量表征的兼容机械部件族, 可以以各种方式组合以制作有趣的机构. 记住, 在一个好的语言中, 组合部件的结果应该是同一类型的部件, 可以与其他部件进一步组合.

2.14.3. 练习 1.35: 三轴椭球面上的珠子

再次考虑练习 1.18 中约束在三轴椭球面上运动的珠子的运动. 使用直角坐标作为广义坐标, 并带有明确的约束条件, 即珠子停留在表面上, 来重新表述这个问题. 找到一个拉格朗日量并证明拉格朗日方程等价于练习 1.18 中找到的方程.

2.14.4. 练习 1.36: 微型高尔夫球的运动

考虑一个理想化为质点的高尔夫球的运动, 该质点约束在一个高度变化的无摩擦光滑表面 \(h(x, y)\) 上, 在加速度为 g 的均匀引力场中. a. 为该系统找到一个增广拉格朗日量, 并推导控制质点在 x 和 y 中运动的方程. b. 在什么条件下, 这可以用势能函数 \(V(x, y) = mgh(x, y)\) 来近似? c. 假设我们有一个关于 \(x=y=0\) 轴对称的 \(h(x, y)\). 你能找到这样一个 h, 它产生具有闭合轨道的运动吗?

2.15. 1.10.2 导数约束

这里我们研究速度相关的约束, 它们是速度无关约束的“全时间导数”. 到目前为止介绍的方法不适用, 因为约束是速度相关的. 考虑一个速度相关的约束 \(\psi = 0\). \(\psi\) 是全时间导数意味着存在一个速度无关的函数 \(\phi\), 使得 \[ \psi \circ \Gamma[q] = D(\phi \circ \Gamma[q]). \quad (1.207) \] \(\phi\) 与速度无关意味着 \(\partial_2 \phi = 0\). 作为状态函数, \(\psi\) 和 \(\phi\) 之间的关系是 \[ \psi = D_t \phi = \partial_0 \phi + \partial_1 \phi \dot{Q}. \quad (1.208) \] 给定一个 \(\psi\), 我们可以通过解这个线性偏微分方程来找到 \(\phi\). 解由一个常数决定, 因此 \(\psi = 0\) 蕴含 \(\phi = K\) 对于某个常数 K. 另一方面, 如果我们知道 \(\phi = K\), 那么 \(\psi = 0\) 也随之成立. 因此, 速度相关的约束 \(\psi = 0\) 等价于速度无关的约束 \(\phi = K\), 我们知道如何为此类系统找到拉格朗日方程. 如果 L 是无约束问题的拉格朗日量, 那么带有约束 \(\phi = K\) 的拉格朗日方程是 \[ (E[L] + \lambda E[\phi]) \circ \Gamma[q] = 0, \quad (1.209) \] 其中 \(\lambda\) 是一个时间函数, 将在求解过程中被消除. 常数 K 不影响拉格朗日方程. 函数 \(\phi\) 与速度无关, \(\partial_2 \phi = 0\), 因此拉格朗日方程变成 \[ (E[L] - \lambda \partial_1 \phi) \circ \Gamma[q] = 0. \quad (1.210) \] 从方程 (1.208) 我们看到 \[ \partial_1 \phi = \partial_2 \psi, \quad (1.211) \] 因此带有约束 \(\psi = 0\) 的拉格朗日方程是 \[ E[L] \circ \Gamma[q] = \lambda \partial_2 \psi \circ \Gamma[q]. \quad (1.212) \] 重要的特征是我们可以直接用 \(\psi\) 来写拉格朗日方程, 而不必产生积分 \(\phi\). 当然, 这些拉格朗日方程的有效性取决于积分 \(\phi\) 的存在. 事实证明, 增广拉格朗日量的技巧在这里也适用. 如果我们将拉格朗日量增广约束 \(\psi\) 乘以时间函数 \(\lambda'\), 则给出这些拉格朗日方程: \[ L' = L + \lambda' \psi. \quad (1.213) \] \(L'\) 的拉格朗日方程结果是 \[ E[L] \circ \Gamma[q] = -D\lambda' \partial_2 \psi \circ \Gamma[q], \quad (1.214) \] 通过识别 \(\lambda = -D\lambda'\), 这与拉格朗日方程 (1.212) 相同. 有时一个问题自然地以速度相关的约束形式表述. 我们开发的这种形式主义将处理任何可以写成坐标约束导数形式的速度相关约束. 这种约束称为可积约束 (integrable constraint). 任何约束可以写成坐标约束形式, 或者已经处于那种形式的系统, 都称为完整系统 (holonomic system).

2.16. 1.10.3 非完整系统

约束不可积的系统称为非完整系统 (non-holonomic systems). 如果约束不能写成等价坐标约束的形式, 则该约束不可积. 非完整系统的一个例子是在碗中无滑滚动的球. 球滚动时必须转动, 使得球的表面在接触点相对于碗不移动. 这看起来可能建立球在碗中的位置和球的方向之间的关系, 但实际上并非如此. 球可能回到碗中的相同位置, 但根据期间所走的路径不同而具有不同的方向. 因此, 约束不能用来消除任何坐标. 控制非完整系统运动的方程是什么? 对于速度线性约束的受限系统集合, 广泛报道94运动方程如下. 令 \(\psi\) 具有形式 \[ \psi(t, q, v) = G_1(t, q) v + G_2(t, q), \quad (1.224) \] 一个速度线性的状态函数. 我们假设 \(\psi\) 不是全时间导数. 如果 L 是无约束系统的拉格朗日量, 那么运动方程据称是 \[ E[L] \circ \Gamma[q] = \lambda G_1 \circ \Gamma[q] = \lambda \partial_2 \psi \circ \Gamma[q]. \quad (1.225) \] 结合约束 \(\psi = 0\), 系统是封闭的, 系统的演化是确定的. 注意这些方程与 \(\psi\) 是全时间导数情况下的拉格朗日方程 (1.212) 相同, 但这里那些方程的推导不再有效. 推导坐标约束 \(\phi = 0\) 且 \(\partial_2 \phi = 0\) 的拉格朗日方程的一个基本步骤是注意到必须满足两个条件 \[ (E[L] \circ \Gamma[q]) \eta = 0, \quad (1.226) \]

2.17. 1.11 总结

为了分析力学系统, 我们构造了一个作用量函数, 它为我们提供了一种区分系统的可实现运动与其他可想象运动的方法. 作用量函数的构造使得它仅在描述可实现运动的路径上, 相对于路径的变分是平稳的. 这被称为作用量平稳原理. 作用量平稳原理是对可实现路径的无坐标规范. 对于有约束或无约束的系统, 我们可以选择唯一确定系统位形的任何坐标系. 对于各种各样的力学系统, 作用量是沿路径的一个函数 (称为拉格朗日量) 的积分. 对于许多系统, 合适的拉格朗日量是系统动能和势能之差. 系统的拉格朗日量的选择不是唯一的. 对于我们有拉格朗日作用量的任何系统, 我们可以建立一个常微分方程组, 即拉格朗日方程, 任何可实现路径都必须满足该方程组. 从拉格朗日量推导拉格朗日方程的方法独立于用于表述拉格朗日量的坐标系. 我们在表述中的一个自由度是, 向系统的拉格朗日量添加一个全时间导数会产生另一个具有相同拉格朗日方程的拉格朗日量. 拉格朗日方程是一组常微分方程: 存在一个有限状态, 它总结了系统的历史并足以确定未来. 有一个有效的程序可以从某个瞬间的状态演化系统的运动. 对于许多系统, 状态由该瞬间的坐标和坐标变化率确定. 如果物理系统中存在连续对称性, 则存在与之相关的守恒量. 如果系统可以这样表述, 即对称性体现在拉格朗日量中缺少某些坐标, 那么就存在与这些坐标共轭的守恒动量. 如果拉格朗日量与时间无关, 则存在守恒能量.

2.18. 1.12 项目

2.18.1. 练习 1.38: 数值研究

考虑一个摆锤: 质量为 m 的物体支撑在长度为 l 的无质量杆上, 在均匀引力场中. 摆锤的拉格朗日量为: \[ L(t, \theta, \dot{\theta}) = \frac{m}{2} (l \dot{\theta})^2 + mgl \cos \theta \] 对于摆锤, 运动周期取决于振幅. 我们希望找到具有给定频率的摆锤轨迹. 有三种方法可以做到这一点: (1) 通过最小作用量原理求解, (2) 拉格朗日方程的数值积分, (3) 解析解 (这需要一些椭圆函数的知识). 我们将执行所有三种方法, 并比较解轨迹. 具体来说, 考虑参数 \(m=1\)kg, \(l=1\)m, \(g=9.8\)m s\(^{-2}\). 小振幅振荡的频率是 \(\omega_0 = \sqrt{g/l}\). 让我们找到频率为 \(\omega_1 = \frac{4}{5} \omega_0\) 的非平凡解. a. 角度随时间是周期性的, 因此傅里叶级数表示是合适的. 我们可以选择时间原点, 使得角度的零点交叉在时间零点. 由于势能在角度上是偶函数, 角度是时间的奇函数. 因此我们只需要一个正弦级数. 由于角度在半个周期后返回零, 角度关于中点是时间的奇函数. 因此级数中只有奇数项存在: \[ \theta(t) = \sum_{n=1}^\infty A_n \sin((2n-1)\omega_1 t). \] 轨迹的振幅是 \(A = \theta_{\max} = \sum_{n=1}^\infty (-1)^{n+1} A_n\). 通过最小化作用量找到前几个系数 \(A_n\) 的近似值. 你将需要编写一个类似于 1.4 节中 find-path 过程的程序. 注意: 最小化作用量的轨迹不止一条. b. 编写一个程序来数值积分摆锤轨迹的拉格朗日方程. 使用数值积分解决这个问题的麻烦在于我们不知道运动频率如何依赖于初始条件. 所以我们必须猜测, 然后逐渐改进我们的猜测. 定义一个函数 \(\Omega(\dot{\theta})\), 它数值计算运动频率作为初始角速度的函数 (当 \(\theta=0\) 时). 通过求解 \(\Omega(\dot{\theta}) = \omega_1\), 找到所需轨迹的初始角速度. 求解这个方程的方法包括逐次二分法, 最小化平方残差等——任选一种. c. 现在让我们制定频率作为振幅函数的解析解. 运动周期很简单 \[ T = 4 \int_0^{T/4} dt = 4 \int_0^A \frac{1}{\dot{\theta}} d\theta. \] 利用能量守恒, 解出 \(\dot{\theta}\) 关于振幅 A 和 \(\theta\), 以显式写出所需的积分. 这个积分可以用椭圆函数表示, 但在某种意义上这并不能解决问题——我们仍然需要计算椭圆函数. 让我们避免深入研究椭圆函数, 只使用 definite-integral 过程数值计算积分. 我们仍然面临一个问题, 我们可以指定振幅 A 并得到频率, 但要解决我们的问题, 我们需要解决反问题, 但这可以像 b 部分那样完成.

2.18.2. 练习 1.39: 双摆行为

考虑图 1.11 中所示的理想双摆.

figure-1.11.png a. 建立描述动力学的拉格朗日量. 推导用给定角度 \(\theta_1\) 和 \(\theta_2\) 表示的运动方程. 将方程写成适合数值积分的形式. 假设以下系统参数: g = 9.8 m/sec\(^2\) l1 = 1.0 m l2 = 0.9 m m1 = 1.0 kg m2 = 3.0 kg b. 准备图表, 显示当系统从以下初始条件开始时, 每个角度随时间变化的行为: \(\theta_1(0) = \pi/2\) 弧度 \(\theta_2(0) = \pi\) 弧度 \(\dot{\theta}_1(0) = 0\) 弧度/秒 \(\dot{\theta}_2(0) = 0\) 弧度/秒 使图表扩展到 50 秒. 将状态点以 0.125 秒的间隔保存在一个列表中. c. 制作一个图表, 显示系统能量随时间变化的行为. 能量应该是守恒的. 你得到的守恒性有多好? d. 重复 b 部分的实验, 但使 m2 摆锤比之前高 \(10^{-10}\) m. 形成两个实验中 m2 摆锤之间距离平方差的列表, 并绘制该值的对数随时间的变化. 你看到了什么? e. 重复之前的比较, 但这次使用以下初始条件: \(\theta_1(0) = \pi/2\) 弧度 \(\theta_2(0) = 0\) 弧度 \(\dot{\theta}_1(0) = 0\) 弧度/秒 \(\dot{\theta}_2(0) = 0\) 弧度/秒 你在这里看到了什么?

3. 第二章刚体

极迹线在不变平面上的赫波尔霍德曲线上无滑动地滚动.

Herbert Goldstein, <经典力学>, (1950), p 161 注脚.

刚体的运动呈现出许多令人惊讶的现象.

考虑一个陀螺的运动. 陀螺通常被认为是一个轴对称体, 受重力作用, 其对称轴上的一点固定在空间中. 陀螺被旋转起来, 通常会执行一些复杂的运动. 我们观察到陀螺通常会稳定下来, 进入一种不寻常的运动状态, 其中陀螺轴围绕垂直方向缓慢进动, 显然垂直于重力试图加速其运动的方向.

考虑一本被抛向空中的书的运动. 1 书有三个主轴. 理想化为具有矩形面的砖块, 这三个轴是穿过相对面中心的线. 尝试绕每个轴旋转书本. 绕最长轴和最短轴旋转的书本运动是简单的规则旋转, 可能带有一点摆动, 这取决于抛掷的仔细程度. 绕中间轴旋转的书本运动在性质上是不同的: 无论多么仔细地绕中间轴旋转书本, 书本都会翻滚.

月球的自转很特殊, 因为月球总是以同一面朝向地球, 这表明自转周期和轨道周期是相同的. 考虑到由于与太阳和其他行星的相互作用, 月球的轨道不断变化, 因此月球的轨道周期不断经历微小变化, 我们可能会预期我们看到的月球面会缓慢变化, 但事实并非如此. 我们看到的这一面有什么特别之处?

3.1. 2.1 转动动能

我们将刚体视为由大量组成粒子组成, 这些粒子具有质量 \(m_\alpha\), 位置 \(x_\alpha\) 和速度

\(\dot{x}_\alpha\), 它们之间存在刚性位置约束. 动能是 \[ \sum_\alpha \frac{1}{2} m_\alpha \dot{x}_\alpha \cdot \dot{x}_\alpha. \] 事实证明, 刚体的动能可以分解为两部分: 平动动能和转动动能. 让我们看看这是如何发生的.

刚体的构型由体中任意一点的位置和体的方向完全指定. 这表明将组成粒子的位置向量分解为到体中某个参考位置的向量 X 与从参考位置到特定索引 α 组成元素的向量 \(\xi_\alpha\) 之和会很有用: \[ x_\alpha = X + \xi_\alpha. \] 沿路径, 速度关系为 \[ \dot{x}_\alpha = \dot{X} + \dot{\xi}_\alpha. \] 因此, 用 \(\dot{X}\) 和 \(\dot{\xi}_\alpha\) 表示的动能是 \[ \sum_\alpha \frac{1}{2} m_\alpha (\dot{X} + \dot{\xi}_\alpha) \cdot (\dot{X} + \dot{\xi}_\alpha) = \sum_\alpha \frac{1}{2} m_\alpha (\dot{X} \cdot \dot{X} + 2 \dot{X} \cdot \dot{\xi}_\alpha + \dot{\xi}_\alpha \cdot \dot{\xi}_\alpha). \] 如果我们选择体中的参考位置为其质心, \[ X = \frac{1}{M} \sum_\alpha m_\alpha x_\alpha, \] 其中 \(M = \sum_\alpha m_\alpha\) 是物体的总质量, 则 \[ \sum_\alpha m_\alpha \xi_\alpha = \sum_\alpha m_\alpha (x_\alpha - X) = 0. \]

因此沿路径, 相对速度满足 \[ \sum_\alpha m_\alpha \dot{\xi}_\alpha = 0. \] 动能则为 \[ \sum_\alpha \frac{1}{2} m_\alpha \dot{X} \cdot \dot{X} + \sum_\alpha \frac{1}{2} m_\alpha \dot{\xi}_\alpha \cdot \dot{\xi}_\alpha. \] 动能是质心处总质量运动的动能 \[ \frac{1}{2} M \dot{X} \cdot \dot{X}, \] 与绕质心旋转的动能之和 \[ \sum_\alpha \frac{1}{2} m_\alpha \dot{\xi}_\alpha \cdot \dot{\xi}_\alpha. \] 用适当的广义坐标写出, 动能是自由刚体的拉格朗日量. 如果我们选择广义坐标, 使得质心位置完全由其中一些指定, 而方向完全由另一些指定, 那么自由刚体的拉格朗日方程将解耦为两组方程, 一组涉及质心运动, 另一组涉及方向.

这种分离可能发生在其他问题中, 例如在均匀引力场中运动的刚体, 但通常, 势能不能像动能那样分离. 因此, 质心运动和转动运动通常通过势能耦合. 即使在这些情况下, 通常也最好选择分别指定质心位置和方向的广义坐标.

3.2. 2.2 转动运动学

刚体绕旋转中心(相对于物体固定的参考位置)的运动, 在每个时刻

由一个旋转轴和一个旋转速率表征. 让我们详细说明.

我们可以通过物体的旋转从物体的任何一个方向到达物体的任何其他方向. 这是欧拉定理. 2 我们知道旋转具有不可交换的性质: 连续旋转的复合通常取决于操作的顺序. 将一本书绕 x 轴旋转, 然后绕 z 轴旋转, 会使书处于与先绕 z 轴旋转, 然后绕 x 轴旋转不同的方向. 尽管如此, 欧拉定理指出, 无论组合了多少次旋转来到达给定的方向, 都可以通过单次旋转达到该方向. 试试看! 我们拿一本书, 这样转一下, 再那样转一下, 然后再以其他方式转一下–然后找到一次完成任务的旋转. 所以一次旋转可以通过一个旋转轴和旋转的角度量来指定.

如果一个物体的方向在某个时间间隔内演化, 那么区间开始和结束时的方向可以通过单次旋转连接起来. 在区间持续时间趋于零的极限下, 旋转轴接近唯一的瞬时旋转轴. 并且在这个极限下, 旋转角度与区间持续时间之比接近瞬时旋转速率. 我们用角速度向量 ω 来表示这种瞬时转动运动, 它指向旋转轴的方向(用右手定则给出绕轴旋转的方向), 其大小等于旋转速率.

如果物体的角速度向量是 ω, 那么组成粒子的速度垂直于到组成粒子的向量, 并且与物体的旋转速率以及组成粒子到瞬时旋转轴的距离成正比: \[ \dot{\xi}_\alpha = \omega \times \xi_\alpha. \] 有趣的是, 我们已经找到了一种简洁的方式来指定物体方向如何变化, 即使我们还没有描述一种指定方向本身的方法.

3.3. 2.3 转动惯量

转动动能是刚体每个组成部分的动能之和. 我们可以用角速度向量和由刚体中质量分布决定的某些聚合量来重写转动动能. 将我们相对速度向量的表示代入转动动能, 我们得到 \[ \sum_\alpha \frac{1}{2} m_\alpha \dot{\xi}_\alpha \cdot \dot{\xi}_\alpha = \sum_\alpha \frac{1}{2} m_\alpha (\omega \times \xi_\alpha) \cdot (\omega \times \xi_\alpha). \] 我们在旋转中心引入一个任意的直角坐标系, 其基向量为 \(\hat{e}_0, \hat{e}_1, \hat{e}_2\), 且满足性质 \(\hat{e}_0 \times \hat{e}_1 = \hat{e}_2\). ω 在这个坐标系上的分量是 \(\omega^0, \omega^1, \omega^2\). 用其分量重写 ω, 转动动能变为

\begin{align*} \sum_\alpha \frac{1}{2} m_\alpha \left( \left( \sum_i \hat{e}_i \omega^i \right) \times \xi_\alpha \right) \cdot \left( \left( \sum_j \hat{e}_j \omega^j \right) \times \xi_\alpha \right) &= \frac{1}{2} \sum_{ij} \omega^i \omega^j \sum_\alpha m_\alpha (\hat{e}_i \times \xi_\alpha) \cdot (\hat{e}_j \times \xi_\alpha) \\ &= \frac{1}{2} \sum_{ij} \omega^i \omega^j I_{ij}, \end{align*}

其中 \[ I_{ij} = \sum_\alpha m_\alpha (\hat{e}_i \times \xi_\alpha) \cdot (\hat{e}_j \times \xi_\alpha). \] 量 \(I_{ij}\) 是相对于所选坐标系的惯性张量的分量. 注意动能所呈现的显著形式. 我们所做的只是交换了求和的顺序, 但现在动能被写成角速度向量分量的乘积之和, 这些分量完全指定了物体方向如何变化, 以及量 \(I_{ij}\), 它仅取决于物体中相对于所选坐标系的质量分布.

我们将推导出惯性张量的一些性质. 首先, 我们为其找到一个稍微简单些的表达式. 向量 \(\xi_\alpha\) 的分量是 \((\xi_\alpha, \eta_\alpha, \zeta_\alpha)\). 3 将 \(\xi_\alpha\) 重写为其分量的和, 并简化基向量的基本向量积, 惯性张量的分量可以排列在惯性矩阵 I 中, 其形式如下: \[ \begin{pmatrix} \sum_\alpha m_\alpha(\eta_\alpha^2 + \zeta_\alpha^2) & -\sum_\alpha m_\alpha \xi_\alpha \eta_\alpha & -\sum_\alpha m_\alpha \xi_\alpha \zeta_\alpha \\ -\sum_\alpha m_\alpha \eta_\alpha \xi_\alpha & \sum_\alpha m_\alpha(\xi_\alpha^2 + \zeta_\alpha^2) & -\sum_\alpha m_\alpha \eta_\alpha \zeta_\alpha \\ -\sum_\alpha m_\alpha \zeta_\alpha \xi_\alpha & -\sum_\alpha m_\alpha \zeta_\alpha \eta_\alpha & \sum_\alpha m_\alpha(\xi_\alpha^2 + \eta_\alpha^2) \end{pmatrix} \] 惯性张量具有实分量且是对称的: \(I_{jk} = I_{kj}\). 我们定义绕一条线的转动惯量 I 为 \[ I = \sum_\alpha m_\alpha (\xi_\alpha^\perp)^2, \] 其中 \(\xi_\alpha^\perp\) 是从该线到索引为 α 的组成部分的垂直距离. 惯性张量的对角分量 \(I_{ii}\) 被识别为绕与坐标轴 \(\hat{e}_i\) 重合的线的转动惯量. 惯性张量的非对角分量称为惯性积.

物体的转动动能仅通过惯性张量依赖于物体的质量分布. 值得注意的是, 惯性张量仅涉及相对于质心的质量分布的二阶矩. 我们可能期望动能以某种复杂的方式依赖于质量分布的所有矩, 并以某种复杂的方式与角速度向量的分量交织在一起, 但事实并非如此. 这个事实有一个显著的推论: 对于自由刚体的运动, 物体的详细形状无关紧要. 如果一本书和一根香蕉具有相同的惯性张量, 即相同的二阶质量矩, 那么如果它们以相同的方式抛出, 随后的运动将是相同的, 无论该运动多么复杂. 书有角而香蕉有柄这一事实, 除了它们对惯性张量的贡献外, 不影响运动. 通常, 延展体的势能不那么简单

3.3.1. 练习 2.1: 转动动能

通过将 \(\xi_\alpha\) 分解为平行于和垂直于旋转轴 \(\hat{\omega}\) 的分量, 可以找到转动动能的一个有趣的替代形式. 证明转动动能也可以写成 \[ T_R = \frac{1}{2} I \omega^2, \] 其中 I 是物体绕穿过质心且方向为 \(\hat{\omega}\) 的线的转动惯量, ω 是瞬时旋转速率.

3.3.2. 练习 2.2: 施泰纳定理

设 I 是物体相对于穿过质心的某条给定线的转动惯量. 证明相对于平行于第一条线的第二条线的转动惯量 I' 是 \[ I' = I + MR^2 \] 其中 M 是物体的总质量, R 是两条线之间的距离.

3.3.3. 练习 2.3: 一些有用的转动惯量

证明以下物体的转动惯量如下所示: a. 质量为 M, 半径为 R 的均匀密度球体绕穿过其中心的任何直线的转动惯量是 \(\frac{2}{5} MR^2\). b. 质量为 M, 半径为 R 的球壳绕穿过其中心的任何直线的转动惯量是 \(\frac{2}{3} MR^2\). c. 质量为 M, 半径为 R 的均匀密度圆柱体绕其轴线的转动惯量是 \(\frac{1}{2} MR^2\). d. 单位长度密度均匀, 质量为 M, 长度为 L 的细杆绕穿过其质心且垂直于杆的轴线的转动惯量是 \(\frac{1}{12} ML^2\).

3.3.4. 练习 2.4: 木星

a. 行星的密度向中心增加. 给出一个论证, 说明行星的转动惯量小于具有相同质量和半径的均匀密度球体的转动惯量. b. 木星内部密度随半径的函数很好地近似为 \[ \rho(r) = \frac{M}{R^3} \frac{\sin(\pi r/R)}{4r/R}, \]

其中 M 是质量, R 是木星的半径. 求木星的转动惯量, 用 M 和 R 表示.

3.4. 2.4 惯性张量

转动动能关于惯性张量的表示是在基向量为 \(\hat{e}_i\) 的直角坐标系的帮助下推导出来的. 这个特定的直角基向量没有什么特别之处. 所以, 动能在任何直角坐标系中都必须具有相同的形式. 我们可以利用这个事实来推导惯性张量在物体或坐标系旋转时如何变化.

让我们稍微谈谈主动旋转和被动旋转. 向量 x 通过旋转 R 产生新向量 \(x' = Rx\). 我们可以用某个任意直角坐标系及其正交基向量 \(\hat{e}_i\) 来表示 x 的分量: \(x = x^0 \hat{e}_0 + x^1 \hat{e}_1 + x^2 \hat{e}_2\). 设 x 表示 x 的分量 \(x^0, x^1, x^2\) 的列矩阵, R 是相对于相同基的 R 的矩阵表示. 用这些术语, 旋转可以写成 \(x' = Rx\). 旋转矩阵 R 是一个实正交矩阵. 4 将向量变换为新向量的旋转称为主动旋转.

或者, 我们可以旋转坐标系, 即旋转基向量, 但保持可能用它们表示的其他向量不变. 如果一个向量保持不变, 但基向量被旋转, 那么该向量在旋转后的基向量上的分量与它在原始基向量上的分量不同. 用 \(\hat{e}'_i = R\hat{e}_i\) 表示旋转后的基向量. 向量沿基向量的分量是该向量与基向量的点积. 所以向量 x 沿旋转后的基 \(\hat{e}'_i\) 的分量是 \((x')^i = x \cdot \hat{e}'_i = x \cdot (R\hat{e}_i) = (R^{-1}x) \cdot \hat{e}_i\). 5 所以相对于旋转后的基元素的分量与旋转后的向量 \(R^{-1}x\) 相对于原始基的分量相同. 用分量表示, 如果向量 x 相对于原始基向量 \(\hat{e}_i\) 具有分量 x, 那么相同

3.5. 2.5 主惯性矩

我们可以利用惯性张量的变换性质 (2.24) 来证明存在特殊的直角坐标系, 使得惯性张量 I' 是对角的, 即 \(I'_{ij} = 0\) 对于 \(i \ne j\). 假设 I' 是对角的, 并求解完成这项工作的旋转矩阵 R. 将 (2.24) 两边左乘 R, 我们得到 \[ RI' = IR. \] 我们可以通过右乘一个挑出特定列的平凡列向量来检查这个矩阵方程的片段. 所以我们右乘每个坐标单位向量 \(\hat{e}_i\) 的列矩阵表示 \(e_i\). 这些列矩阵在第 i 行有一个 1, 其余为零. 使用 \(e'_i = Re_i\), 我们发现 \[ RI' e_i = I R e_i = I e'_i. \] 矩阵 I' 是对角的, 所以 \[ RI' e_i = R e_i I'_{ii} = I'_{ii} e'_i. \] 所以, 从方程 (2.26) 和 (2.27), 我们有 \[ I'_{ii} e'_i = I e'_i, \] 我们认出这是一个关于特征值 \(I'_{ii}\) 和 \(e'_i\)(相关特征向量的分量列矩阵)的方程.

从 \(e'_i = Re_i\), 我们看到 \(e'_i\) 是旋转矩阵 R 的列. 现在, 旋转矩阵是正交的, 所以 \(R^T R = 1\); 因此旋转矩阵的列必须是标准正交的 \((e'_i)^T e'_j = \delta_{ij}\), 即当 i=j 时为 1, 否则为 0. 但是作为方程 (2.28) 解的特征向量不一定甚至是正交的. 所以我们还没有完成.

如果一个矩阵是实对称的, 那么特征值是实的. 此外, 如果特征值是不同的, 那么特征向量是正交的. 然而, 如果特征值不不同, 那么对于退化特征值的特征向量方向不是唯一确定的–我们可以自由选择特定的

\(e'_i\) 是正交的. 8 方程 (2.28) 的线性意味着 \(e'_i\) 可以被归一化. 因此, 无论特征值是否不同, 我们都可以得到一组标准正交的 \(e'_i\). 这足以重构一个完成我们要求的任务的旋转矩阵 R: 旋转坐标系到一个构型, 使得惯性张量是对角的. 如果特征值不不同, 旋转矩阵 R 不是唯一确定的–存在多个完成这项工作的旋转矩阵 R.

特征向量和特征值由要求惯性张量相对于旋转后的坐标系是对角化的要求确定. 因此旋转后的坐标系相对于物体具有特殊的取向. 基向量 \(\hat{e}'_i\) 因此实际上指向物体中的特定方向. 我们定义物体中穿过质心且具有这些方向的轴为主轴. 相对于由 \(\hat{e}'_i\) 定义的坐标系, 惯性张量是对角的, 根据构造, 其对角线上具有特征值 \(I'_{ii}\). 因此绕主轴的转动惯量是特征值 \(I'_{ii}\). 我们称绕主轴的转动惯量为主惯性矩.

为方便起见, 我们通常根据它们的大小标记主惯性矩: \(A \le B \le C\), 分别对应主轴单位向量 \(\hat{a}, \hat{b}, \hat{c}\). 可以沿主轴选择正方向, 使得 \(\hat{a}, \hat{b}, \hat{c}\) 形成右手直角坐标基.

设 x 表示向量 x 相对于基向量 \(\hat{e}_i\) 的分量矩阵. 回想一下, 向量 x 相对于主轴单位向量 \(\hat{e}'_i\) 的分量 x' 满足 \[ x' = R^T x. \] 这说得通, 因为 R 的列是 \(e'_i\) 的分量. 将 x 的分量乘以 R 的转置就是取每个 \(\hat{e}'_i\) 与 x 的点积, 产生这些分量. 向量在主轴基上的分量有时称为向量的体分量.

3.5.1. 练习 2.5: 惯性矩的约束

证明任意两个惯性矩之和大于第三个惯性矩.

3.5.2. 练习 2.6: 主惯性矩

对于下面描述的每种构型, 找出相对于质心的主惯性矩; 找出相应的主轴. a. 一个正四面体, 由四个相等的质点用刚性无质量线连接而成. b. 一个均匀密度的立方体. c. 五个相等的质点由无质量材料刚性连接. 质点位于直角坐标: \((-1, 0, 0), (1, 0, 0), (1, 1, 0), (0, 0, 0), (0, 0, 1)\)

3.5.3. 练习 2.7: 这本书

测量这本书. 你会承认它相当密集. 别担心, 你稍后会扔掉它. 证明主轴是连接理想化近似该书的砖块相对面中心的线. 计算相应的主惯性矩.

3.6. 2.6 角速度向量的表示

我们可以通过指定将物体从某个参考方向带到该方向的旋转来指定物体的方向. 当物体移动时, 完成这项工作的旋转会发生变化. 角速度向量可以根据沿路径的这种变化旋转来写出.

设 q 是我们将用来描述物体运动的坐标路径. 设 M(q(t)) 是将

将物体从参考方向旋转到由 q(t) 指定的方向(见图 2.1). 设 \(\xi_\alpha(t)\) 是指向物体在由 q(t) 指定方向上某个组成部分的向量, 设 \(\mathring{\xi}_\alpha\) 是指向物体在参考方向上相同组成部分的向量. 那么 \[ \xi_\alpha(t) = M(q(t)) \mathring{\xi}_\alpha. \] 组成向量 \(\mathring{\xi}_\alpha\) 不依赖于构型, 因为它们是物体在固定参考方向上组成部分位置的向量. 我们已经找到了用角速度向量和惯性张量表示动能的表达式. 这里我们以不同的方式进行. 为了计算动能, 我们累积所有质量元素的贡献. 在给定时间 t, 组成粒子的位置是 \[ \xi_\alpha(t) = M(q(t)) \mathring{\xi}_\alpha = M(t) \mathring{\xi}_\alpha, \] 其中 \(M = M \circ q\). 速度是时间导数 \[ D\xi_\alpha(t) = DM(t) \mathring{\xi}_\alpha. \] 使用方程 (2.32), 我们可以写出 \[ D\xi_\alpha(t) = DM(t) (M(t))^{-1} \xi_\alpha(t). \]

回想一下, 速度是由旋转产生的, 并且速度是(见方程 2.11) \[ D\xi_\alpha(t) = \omega(t) \times \xi_\alpha(t). \] 因此我们可以将算子 \(\omega(t) \times\) 与 \(DM(t) (M(t))^{-1}\) 等同起来. 为了形成动能, 我们需要从中提取 \(\omega(t)\). 如果一个向量 u 由分量矩阵 u 表示, 其分量为 x, y, z, 则函数 A 从分量矩阵 u 产生 u× 的矩阵表示为 \[ A(u) = \begin{pmatrix} 0 & -z & y \\ z & 0 & -x \\ -y & x & 0 \end{pmatrix}. \] 该函数的逆可以应用于任何反对称矩阵, 因此我们可以使用 \(A^{-1}\) 从 ω× 的矩阵表示中提取角速度向量的分量 ω, 用 M 表示: \[ \omega = A^{-1}(DM M^T), \] 其中 M 和 DM 是函数 M 和 DM 的矩阵表示, 并且我们使用了旋转的矩阵表示的转置给出逆的事实. 角速度向量在主轴上的分量 ω' 是: \( \omega' = M^T \omega \). 所以 \[ \omega' = M^T A^{-1}(DM M^T). \] 角速度向量与路径的关系是一种运动学关系; 它对任何路径都有效. 因此我们可以将其抽象出来, 得到给定构型和速度下瞬时角速度的分量.

3.6.1. 角速度函数的实现

以下过程给出了沿路径

(define (((M-of-q->omega-of-t M-of-q) q) t)
  (define M-on-path (compose M-of-q q))
  (define (omega-cross t)
    (* ((D M-on-path) t)
       (m:transpose (M-on-path t))))
  (antisymmetric->column-matrix (omega-cross t)))

过程 omega-cross 产生 ω× 的矩阵表示. 过程 antisymmetric->column-matrix, 对应于函数 \(A^{-1}\), 用于从反对称 ω× 矩阵中提取角速度向量的分量. 沿路径的角速度向量的体分量是

(define (((M-of-q->omega-body-of-t M-of-q) q) t)
  (* (m:transpose (M-of-q (q t)))
     (((M-of-q->omega-of-t M-of-q) q) t)))

我们可以通过沿具有给定坐标和速度的任意路径抽象这些过程来获得给出角速度分量的局域状态过程. 状态过程的抽象由 Gamma-bar 完成(见 1.6.1 节):

(define (M->omega M-of-q)
  (Gamma-bar
   (M-of-q->omega-of-t M-of-q)))
(define (M->omega-body M-of-q)
  (Gamma-bar
   (M-of-q->omega-body-of-t M-of-q)))

这些过程给出角速度作为状态的函数. 我们将在得到一些可以使用的 M-of-q 之后看到它们的实际应用.

3.7. 2.7 欧拉角

要更进一步, 我们最终必须指定一组广义坐标. 我们首先使用传统的欧拉角来做到这一点. 稍后, 我们会找到描述刚体方向的其他方法. 我们使用 M 的中间表示, 即广义坐标的函数, 它给出

从某个参考方向将物体旋转到由广义坐标指定的方向的旋转. 这里我们取参考方向, 使得主轴单位向量 \(\hat{a}, \hat{b}, \hat{c}\) 与这里标记为 \(\hat{x}, \hat{y}, \hat{z}\) 的基向量 \(\hat{e}_i\) 重合. 我们用绕坐标轴的简单旋转来定义欧拉角. 设 \(R_x(\psi)\) 是绕 x 轴右手旋转角度 ψ, 设 \(R_z(\psi)\) 是绕 z 轴右手旋转角度 ψ. 欧拉角的函数 M 写成这三个简单坐标轴旋转的复合: \[ M(\theta, \phi, \psi) = R_z(\phi) R_x(\theta) R_z(\psi), \] 对于欧拉角 θ, φ, ψ. 欧拉角可以指定物体的任何方向, 但该方向并不总是对应于唯一的欧拉角集. 特别是, 如果 θ=0, 则方向仅取决于和 φ+ψ, 因此方向不能唯一确定 φ 或 ψ.

3.7.1. 练习 2.8: 欧拉角

并非所有方向都可以用欧拉角表示这一点并不明显. 为了证明欧拉角足以表示所有方向, 请解出给出任意旋转 R 的欧拉角. 请记住, 某些方向不对应于欧拉角的唯一表示.

虽然欧拉角允许我们指定所有方向, 因此可以用作广义坐标, 但欧拉角的定义是相当随意的. 事实上, 没有任何推理引导我们找到它们, 这反映在我们仅仅说" 它们就在这里" 的表述方式中. 欧拉角适用于某些问题, 而对其他问题则很麻烦. 还有其他定义类似角度集的方法. 例如, 我们也可以取我们的广义坐标来满足 \[ M'(\theta, \phi, \psi) = R_x(\phi) R_y(\theta) R_z(\psi). \] 欧拉角的这种替代方案有时会派上用场.

每个基本旋转都可以表示为一个矩阵. 表示绕 z 轴右手旋转角度 ψ 的旋转矩阵是 \[ R_z(\psi) = \begin{pmatrix} \cos\psi & -\sin\psi & 0 \\ \sin\psi & \cos\psi & 0 \\ 0 & 0 & 1 \end{pmatrix} \] 表示绕 x 轴右手旋转角度 ψ 的旋转矩阵是 \[ R_x(\psi) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos\psi & -\sin\psi \\ 0 & \sin\psi & \cos\psi \end{pmatrix}. \] 表示将物体从其参考方向带到实际方向的旋转矩阵是 \[ R_z(\phi) R_x(\theta) R_z(\psi). \] 旋转矩阵及其乘积可以通过简单的程序构造:

(define (rotate-z-matrix angle)
  (matrix-by-rows
   (list (cos angle) (- (sin angle))   0)
   (list (sin angle) (cos angle)     0)
   (list          0           0       1)))
(define (rotate-x-matrix angle)
  (matrix-by-rows
   (list          1           0               0)
   (list          0  (cos angle) (- (sin angle)))
   (list          0  (sin angle) (cos angle))))
(define (Euler->M angles)
  (let ((theta (ref angles 0))
        (phi   (ref angles 1))
        (psi   (ref angles 2)))
    (* (rotate-z-matrix phi)
       (rotate-x-matrix theta)
       (rotate-z-matrix psi))))

现在我们有了一个实现示例 M 的过程, 我们可以使用过程从 2.6 节中找到角速度向量的分量和角速度向量的体分量

M-of-q->omega-of-t 和 M-of-q->omega-body-of-t. 例如,

(show-expression
 (((M-of-q->omega-body-of-t Euler->M)
   (up (literal-function 'theta)
       (literal-function 'phi)
       (literal-function 'psi)))
  't))

为了构造动能, 我们需要给出角速度向量体分量的状态过程:

(show-expression
 ((M->omega-body Euler->M)
  (up 't
      (up 'theta 'phi 'psi)
      (up 'thetadot 'phidot 'psidot))))

我们将这个结果捕获为一个过程:

(define (Euler-state->omega-body local)
  (let ((q (coordinate local)) (qdot (velocity local)))
    (let ((theta (ref q 0))
          (psi (ref q 2))
          (thetadot (ref qdot 0))
          (phidot (ref qdot 1))
          (psidot (ref qdot 2)))
      (let ((omega-a (+ (* thetadot (cos psi))
                        (* phidot (sin theta) (sin psi))))
            (omega-b (+ (* -1 thetadot (sin psi))
                        (* phidot (sin theta) (cos psi))))
            (omega-c (+ (* phidot (cos theta)) psidot)))
        (column-matrix omega-a omega-b omega-c)))))

动能可以写作:

(define ((T-rigid-body A B C) local)
  (let ((omega-body (Euler-state->omega-body local)))
    (* 1/2
       (+ (* A (square (ref omega-body 0)))
          (* B (square (ref omega-body 1)))
          (* C (square (ref omega-body 2)))))))

3.8. 2.8 矢量角动量

粒子的矢量角动量是位置和线性动量的叉积. 对于刚体, 矢量角动量是其每个组成部分的矢量角动量之和. 这里我们用惯性张量和角速度向量来表示刚体的矢量角动量. 刚体的矢量角动量是: \[ \sum_\alpha x_\alpha \times (m_\alpha \dot{x}_\alpha), \] 其中 \(x_\alpha, \dot{x}_\alpha, m_\alpha\) 是组成粒子的位置, 速度和质量. 事实证明, 矢量角动量分解为质心角动量和绕质心转动角动量之和, 就像动能分解为质心动能和转动动能一样. 在动能演示中, 将位置分解为到质心的向量 X 和从质心到组成质量元素 \(\xi_\alpha\) 的向量: \[ x_\alpha = X + \xi_\alpha, \] 速度为 \[ \dot{x}_\alpha = \dot{X} + \dot{\xi}_\alpha. \] 代入, 角动量是 \[ \sum_\alpha m_\alpha (X + \xi_\alpha) \times (\dot{X} + \dot{\xi}_\alpha). \]

展开乘积, 并利用 X 是质心, 且 \(M = \sum_\alpha m_\alpha\) 是物体的总质量, 角动量是 \[ X \times (M\dot{X}) + \sum_\alpha \xi_\alpha \times (m_\alpha \dot{\xi}_\alpha). \] 质心的角动量是 \[ X \times (M\dot{X}), \] 转动角动量是 \[ \sum_\alpha \xi_\alpha \times (m_\alpha \dot{\xi}_\alpha). \] 我们可以用角速度向量和惯性张量重新表示转动角动量, 就像我们对动能所做的那样. 使用 \(\dot{\xi}_\alpha = \omega \times \xi_\alpha\). 转动角动量是 \[ L = \sum_\alpha m_\alpha \xi_\alpha \times (\omega \times \xi_\alpha). \] 用基 \(\hat{e}_i\) 的分量表示, 这是 \[ L_j = \sum_k I_{jk} \omega^k, \] 其中 \(I_{jk}\) 是惯性张量的分量 (2.14). 角动量和动能用相同的惯性张量表示. 相对于主轴基, 角动量分量具有特别简单的形式:

\begin{align*} L_a &= A \omega^a \\ L_b &= B \omega^b \\ L_c &= C \omega^c. \end{align*}

3.8.1. 练习 2.9:

验证转动角动量 (2.51) 的分量用惯性张量表示的表达式 (2.52) 是正确的.

我们可以定义计算主轴上角动量分量的过程:

(define ((Euler-state->L-body A B C) local)
  (let ((omega-body (Euler-state->omega-body local)))
    (column-matrix (* A (ref omega-body 0))
                   (* B (ref omega-body 1))
                   (* C (ref omega-body 2)))))

然后我们将主轴上的角动量分量变换到固定基 \(\hat{e}_i\) 上的分量:

(define ((Euler-state->L-space A B C) local)
  (let ((angles (coordinate local)))
    (* (Euler->M angles)
       ((Euler-state->L-body A B C) local))))

这些过程是局域状态函数, 像拉格朗日量一样.

3.9. 2.9 自由刚体的运动

用合适的广义坐标系表示的动能是自由刚体的拉格朗日量. 在 2.1 节中我们发现刚体的动能可以写成转动动能和平动动能之和. 通过选择一组坐标指定位置, 另一组坐标指定方向, 拉格朗日量变成平动拉格朗日量和转动拉格朗日量之和. 平动运动的拉格朗日方程与转动运动的拉格朗日方程不耦合. 对于自由刚体, 平动运动就是自由粒子的运动: 匀速运动. 这里我们集中讨论自由刚体的转动运动. 我们可以采用欧拉角作为指定方向的坐标; 转动动能已在上一节用欧拉角表示.

3.9.1. 守恒量

自由刚体的拉格朗日量没有显式时间依赖性, 所以我们可以推断能量, 即动能, 是运动守恒量. 拉格朗日量不依赖于欧拉角 φ, 所以我们可以推断与该坐标共轭的动量

是守恒的. 与 φ 共轭的动量的显式表达式是:

(define Euler-state
  (up 't
      (up 'theta 'phi 'psi)
      (up 'thetadot 'phidot 'psidot)))
(show-expression
 (ref (((partial 2) (T-rigid-body 'A 'B 'C)) Euler-state)
      1))

我们知道这个复杂的量是由于拉格朗日量的对称性而被刚体运动守恒的. 如果没有外部扭矩, 那么我们期望矢量角动量是守恒的. 我们可以使用问题的拉格朗日表述来验证这一点. 首先, 我们注意到 \(L_z\) 与 \(p_\phi\) 相同. 我们可以通过直接计算来检查这一点:

(print-expression
 (- (ref ((Euler-state->L-space 'A 'B 'C) Euler-state)
         2)
    (ref (((partial 2) (T-rigid-body 'A 'B 'C)) Euler-state)
         1)))
;Value: 0

我们知道 \(p_\phi\) 是守恒的, 因为自由刚体的拉格朗日量没有提到 φ, 所以现在我们知道 \(L_z\) 是守恒的. 由于坐标轴的方向是任意的, 我们知道如果任何直角分量是守恒的, 那么它们都是守恒的. 所以矢量角动量对于自由刚体是守恒的. 当然, 我们可以借助诺特定理(见 1.8.4 节)看到这一点. 存在一个连续的旋转族, 可以将任何方向变换为任何其他方向. 我们用来定义欧拉角的坐标轴方向是任意的, 并且动能(拉格朗日量)

对于任何坐标系选择都是相同的. 因此, 情况满足诺特定理的要求, 该定理告诉我们存在一个守恒量. 特别是, 绕每个坐标轴的旋转族为我们提供了该轴上角动量分量的守恒. 我们通过组合这些贡献来构造矢量角动量.

3.9.2. 练习 2.10: 矢量角动量

填写诺特定理蕴含矢量角动量被自由刚体运动守恒的论证细节.

3.9.3. 2.9.1 计算自由刚体的运动

用欧拉角表示的自由刚体运动的拉格朗日方程相当恶心, 所以我们不在这里展示它们. 然而, 我们将使用拉格朗日方程来探索自由刚体的运动.

在这样做之前, 值得注意的是, 用欧拉角表示的运动方程对于某些构型是奇异的, 因为对于这些构型, 欧拉角不是唯一定义的. 如果我们设 θ=0, 那么一个方向不对应于 φ 和 ψ 的唯一值; 只有它们的和决定方向.

当我们试图求解广义坐标的二阶导数, 用广义坐标和广义速度表示时(见 1.7 节), 奇异性出现在显式拉格朗日方程中. 隔离二阶导数需要乘以 \(\partial_2 \partial_2 L\) 的逆. 当欧拉角 θ 为零时, 这个量的行列式变为零.

(show-expression
 (determinant
  (((square (partial 2)) (T-rigid-body 'A 'B 'C))
   Euler-state)))

所以当 θ 为零时, 我们无法求解二阶导数. 当 θ 很小时, 欧拉角可以非常快速地移动, 因此可能难以可靠地计算. 当然, 刚体的运动对于任何方向都是行为良好的. 这是

欧拉角表示该运动的问题; 这是一个" 坐标奇异点" . 解决这个问题的一种方法是使用另一组欧拉型坐标, 其拉格朗日方程对于不同的方向具有奇异性, 例如方程 (2.40) 中定义的那些. 因此, 随着计算的进行, 如果我们接近一组坐标的奇异点, 我们可以切换并使用另一组一段时间, 直到它们遇到奇异点. 这解决了问题, 但很麻烦. 目前我们将忽略这个问题, 并计算一些轨迹, 小心地将我们的注意力限制在避免奇异性的轨迹上.

我们将通过数值积分计算一些轨迹, 并通过观察能量和角动量的守恒情况来检查我们的积分过程. 然后, 我们将研究主轴基上角动量分量的演化. 我们将发现, 通过组合我们从能量和角动量获得的信息, 我们可以学到很多关于刚体定性行为的知识.

要从初始条件发展轨迹, 我们积分拉格朗日方程, 就像我们在第 1 章中所做的那样. 系统导数从拉格朗日量获得:

(define (rigid-sysder A B C)
  (Lagrangian->state-derivative (T-rigid-body A B C)))

以下程序监视能量和角动量分量的误差:

(define ((monitor-errors win A B C L0 E0) state)
  (let ((t (time state))
        (L ((Euler-state->L-space A B C) state))
        (E ((T-rigid-body A B C) state)))
    (plot-point win t (relative-error (ref L 0) (ref L0 0)))
    (plot-point win t (relative-error (ref L 1) (ref L0 1)))
    (plot-point win t (relative-error (ref L 2) (ref L0 2)))
    (plot-point win t (relative-error E E0))))

(define (relative-error value reference-value)
  (if (zero? reference-value)
      (error "Zero reference value -- RELATIVE-ERROR")
      (/ (- value reference-value) reference-value)))

我们制作一个绘图窗口来显示误差:

(define win (frame 0. 100. -1.e-12 1.e-12))

默认积分方法是 Bulirsch-Stoer (bulirsch-stoer); 这里使用的积分方法是质量控制的龙格-库塔 (qcrk4):

(set! *ode-integration-method* 'qcrk4)

我们使用 evolve 来研究演化:

(let ((A 1.) (B (sqrt 2.)) (C 2.) ; moments of inertia
      (state0 (up 0.0             ; initial state
                  (up 1. 0. 0.)
                  (up 0.1 0.1 0.1))))
  (let ((L0 ((Euler-state->L-space A B C) state0))
        (E0 ((T-rigid-body A B C) state0)))
    ((evolve rigid-sysder A B C)
     state0
     (monitor-errors win A B C L0 E0)
     0.1                                ; step between plotted points
     100.0                              ; final time
     1.0e-12)))                         ; max local truncation error

角动量分量和能量的相对误差(见图 2.2)的发展图表明, 我们已经成功地控制了守恒量的误差. 这应该让我们对演化出的轨迹有一定的信心.

3.9.4. 2.9.2 自由刚体运动的定性特征

主轴上角动量分量的演化具有显著的特性. 对于几乎所有的初始条件, 角动量的体分量周期性地描绘出一条简单的闭合曲线. 我们可以通过研究多个轨迹, 并将物体在主轴上的角动量分量绘制出来(见图 2.3)来看到这一点. 对于大多数初始条件, 我们找到一条一维简单闭合曲线. 轨迹看起来交叉是因为它们被投影了. 存在特殊的初始条件会产生轨迹, 称为分界线, 它们似乎在两个点相交.

为了制作这个图, 计算了许多等能量的轨迹. 角动量体分量的三维空间

被投影到一个二维平面上进行显示. 这个恒定能量椭球投影背面上的点以比椭球前面上的点更低的密度绘制.

发生了什么? 自由刚体的状态空间是六维的: 三个欧拉角及其时间导数. 我们知道四个运动常数–角动量的三个空间分量 Lx, Ly, Lz, 以及能量 E. 因此, 运动被限制在状态空间的二维区域内. 9 我们的实验表明, 角动量的分量在角动量子空间中描绘出一维闭合曲线, 所以这里还有更多的事情发生.

如果所有分量都守恒, 则总角动量守恒, 所以我们也有常数 \[ L^2 = L_x^2 + L_y^2 + L_z^2. \]

3.10. 2.10 轴对称陀螺

我们都曾玩过陀螺. 为了分析的目的, 我们将考虑一个理想化的陀螺, 它不会四处游荡. 因此, 理想陀螺是一个旋转的刚体, 其上一点固定在空间中. 此外, 陀螺的质心不在固定点, 存在均匀的引力加速度.

对于我们的陀螺, 我们可以取拉格朗日量为动能和势能之差. 我们已经知道如何写动能了–这里的新情况是我们必须用构型来表示势能. 在均匀引力场中的物体的情况下, 这很容易. 势能是所有组成粒子" mgh" 的总和: \[ \sum_\alpha m_\alpha g h_\alpha, \] 其中 g 是引力加速度, \(h_\alpha = x_\alpha \cdot \hat{z}\), 单位向量 \(\hat{z}\) 指示向上的方向. 用质心向量 X 重写到组成部分的向量, 势能是:

\begin{align*} \sum_\alpha m_\alpha g (X + \xi_\alpha) \cdot \hat{z} &= g M X \cdot \hat{z} + g \left( \sum_\alpha m_\alpha \xi_\alpha \right) \cdot \hat{z} \\ &= g M X \cdot \hat{z}, \end{align*}

其中最后一项为零, 因为质心是 \(\xi_\alpha\) 的原点. 所以均匀加速度引力场中物体的势能非常简单: 就是 Mgh, 其中 M 是总质量, \(h = X \cdot \hat{z}\) 是质心的高度.

这里我们考虑一个轴对称陀螺(见图 2.4). 这样的陀螺具有质量分布的对称轴, 因此质心在对称轴上, 固定点也在对称轴上.

为了写拉格朗日量, 我们需要选择一组广义坐标. 如果我们选择得好, 我们可以利用问题的对称性. 如果拉格朗日量不依赖于某个特定坐标, 则共轭动量守恒, 系统的复杂性降低.

轴对称陀螺有两个明显的对称性. 质量分布是轴对称的事实意味着动能和势能都对绕该对称轴的陀螺方向不敏感. 此外, 动能和势能对绕垂直轴旋转物理系统不敏感, 因为引力场是均匀的.

我们可以通过选择适当的坐标来利用这些对称性, 我们已经有了一个坐标系

这能完成这项工作–欧拉角. 12 我们选择参考方向, 使对称轴是垂直的. 第一个欧拉角 ψ 表示绕对称轴的旋转. 下一个欧拉角 θ 是陀螺对称轴相对于垂直方向的倾斜角. 第三个欧拉角 φ 表示绕 z 轴旋转陀螺. 问题的对称性意味着第一个和第三个欧拉角不会出现在拉格朗日量中. 因此, 与这些角共轭的动量是守恒量. 让我们详细说明.

首先, 我们明确地计算拉格朗日量. 动能的一般形式已经计算出来了, 但这里有一个转折. 陀螺被约束使其绕一个固定点转动, 该点不是质心. 因此进入动能的转动惯量是陀螺相对于枢轴点的转动惯量, 而不是绕质心的转动惯量. 如果我们知道绕质心的转动惯量, 我们可以用它们来表示绕枢轴点的转动惯量(见练习 2.2). 因此, 让我们假设陀螺绕枢轴点的主惯性矩是 A, B, C, 并且由于对称性 A=B. 13 我们可以用计算机帮助我们计算这个特殊情况的拉格朗日量:

(show-expression
 ((T-rigid-body 'A 'A 'C)
  (up 't
      (up 'theta 'phi 'psi)
      (up 'thetadot 'phidot 'psidot))))

我们可以稍微重新排列一下得到

\begin{align*} T(t; \theta, \phi, \psi; \dot{\theta}, \dot{\phi}, \dot{\psi}) &= \frac{1}{2} A (\dot{\theta}^2 + \dot{\phi}^2 \sin^2\theta) + \frac{1}{2} C (\dot{\psi} + \dot{\phi} \cos\theta)^2. \end{align*}

3.10.1. 练习 2.11: 陀螺的动能

我们已经断言, 陀螺的动能是绕枢轴点的转动动能. 证明这与绕其质心的转动动能和质心运动的动能之和相同.

3.10.2. 练习 2.12: 陀螺的章动

a. 进行代数运算以获得用 θ 和 \(\dot{\theta}\) 表示的能量 (2.66). b. 数值积分陀螺的拉格朗日方程以获得图 2.5, θ 对时间. c. 注意能量是 \(\dot{\theta}\) 关于 θ 的微分方程, 其中守恒量 \(p_\phi, p_\psi\) 和 E 由初始条件确定. 我们能否使用这个微分方程来获得 θ 作为时间的函数? 解释.

3.10.3. 练习 2.13: 陀螺的进动

考虑一个旋转使得 θ 恒定的陀螺. a. 使用角动量积分, 计算进动速率 \(\dot{\phi}\). b. 假设 \(\dot{\psi}\) 非常大. 通过将角动量的变化率等同于质心上的引力扭矩, 推导进动速率的近似公式. c. 数值积分陀螺并检查你的估计. 研究进动速率如何随 θ 变化, 保持其他输入固定.

3.11. 2.11 自旋-轨道耦合

行星和天然卫星的自转受到来自其他天体的引力的影响. 作为我们对受力刚体运动方程发展的扩展应用, 我们考虑受引力作用的天体自转.

我们首先推导点质量与延展体引力相互作用的势能形式. 有了这个势能和通常的刚体动能, 我们可以构造模拟许多系统的拉格朗日量. 我们将初步了解月球和水星的自转; 稍后, 在我们开发了更多工具之后, 我们将回到研究这些系统.

3.11.1. 2.11.1 势能的推导

首要任务是推导刚体与远处点质量相互作用的引力势能的方便表达式. 刚体可以被认为是大量质量元素组成的, 受刚性坐标约束. 我们已经看到刚体的动能可以方便地用物体的转动惯量和角速度向量表示, 而角速度向量又可以用合适的广义坐标表示. 势能也可以用类似的方式推导. 我们首先用质量分布的矩来表示势能, 稍后将广义坐标作为势能的特定参数引入.

点质量和刚体(见图 2.9)的引力势能是点质量与每个质量元素相互作用的势能之和: \[ - \sum_\alpha \frac{GM' m_\alpha}{r_\alpha} \]

其中 M' 是外部点质量的质量, \(r_\alpha\) 是点质量与索引为 α 的组成质量元素之间的距离, \(m_\alpha\) 是该组成元素的质量, G 是引力常数. 设 R 是刚体质心到点质量的距离; R 是向量 \(x - X\) 的大小, 其中外部质量点位置为

x, 质心位置为 X. 从质心到索引为 α 的组成元素的向量是 \(\xi_\alpha\), 其大小为 \(\xi_\alpha\). 那么距离 \(r_\alpha\) 由余弦定理给出 \(r_\alpha^2 = R^2 + \xi_\alpha^2 - 2\xi_\alpha R \cos\theta_\alpha\), 其中 \(\theta_\alpha\) 是 \(x - X\) 与 \(\xi_\alpha\) 之间的夹角. 势能则为 \[ -GM' \sum_\alpha \frac{m_\alpha}{(R^2 + \xi_\alpha^2 - 2\xi_\alpha R \cos\theta_\alpha)^{1/2}}. \] 这很完整, 但我们需要找到一个不提及每个组成部分的表示.

通常, 天体的大小与它们之间的距离相比很小. 我们可以利用这一点来找到势能的更紧凑表示. 如果我们将势能展开为 \(\xi_\alpha/R\) 的小比率级数, 我们发现15 \[ -GM' \sum_\alpha m_\alpha \frac{1}{R} \sum_l \left( \frac{\xi_\alpha}{R} \right)^l P_l(\cos\theta_\alpha), \]

3.11.2. 练习 2.14:

a. 填写细节, 证明方程 (2.72) 中对组成部分的求和可以用转动惯量表示. 特别地, 证明 \[ \sum_\alpha m_\alpha \xi_\alpha \cos\theta_\alpha = 0, \] \[ \sum_\alpha m_\alpha \xi_\alpha^2 = 2(A + B + C), \] 并且 \[ \sum_\alpha m_\alpha \xi_\alpha^2 (\sin\theta_\alpha)^2 = I. \]

3.11.3. 2.11.2 月球和土卫七的自转

我们推导出的势能近似可以用于许多不同的问题. 例如, 它可以用来研究地球扁率对人造卫星演化的影响, 或者包含行星扁率对天然卫星轨道演化的影响, 例如月球或木星的伽利略卫星. 然而, 作为这里的主要应用, 我们将用它来研究天然卫星和行星的自转动力学.

势能取决于点质量相对于刚体的位置以及刚体的方向. 因此, 变化的方向与轨道演化耦合; 彼此相互影响. 然而, 在许多情况下, 物体方向对轨道演化的影响可以忽略不计. 理解这一点的一种方法是查看势能 (2.74) 中两项的相对大小. 我们已经知道, 第二项保证比第一项小一个因子 \((\xi_{\text{max}}/R)^2\), 但通常它甚至更小, 因为所涉及的物体近似球形. 例如, 月球的半径约为地球半径的三分之一, 到月球的距离约为 60 个地球半径. 因此, 由于尺寸因子, 第二项比第一项小约 \(10^{-4}\) 倍. 此外, 月球大致是球形的, 对于任何方向, 组合 \(A+B+C-3I\) 的数量级约为 \(10^{-4} C\). 现在 C 本身约为 \(\frac{2}{5} MR^2\), 因为月球的密度随半径变化不大. 所以对于月球, 第二项的数量级相对于第一项约为 \(10^{-8}\). 即使月球方向发生剧烈变化, 对月球轨道几乎没有动力学影响.

我们可以通过研究一个简化的模型问题来了解方向动力学的一些重要的定性方面. 首先, 我们假设物体绕其最大惯性矩旋转. 这是一个自然的假设. 记住, 对于一个自由

刚体, 能量损失同时保持角动量守恒导致绕最大惯性矩旋转. 对于太阳系中的大多数天体, 都观测到这种情况. 其次, 我们假设自转轴垂直于轨道运动. 这对于天然卫星的自转是一个很好的近似, 并且是潮汐摩擦的自然结果–由行星引力相互作用在卫星上引起的耗散固体潮汐. 最后, 为简单起见, 我们取刚体在固定的椭圆轨道上运动. 这可能近似某些物理系统的运动, 前提是轨道演化的时间尺度与我们研究的自转动力学相关的任何时间尺度相比很大. 所以我们有一个很好的玩具问题. 这个问题已被用来研究水星, 月球和其他天然卫星的自转动力学. 它对火星卫星火卫一的自转做出了具体预测, 可以与观测结果进行比较. 它提供了对水星每绕太阳两圈精确自转 3 次这一事实的基本理解, 并且是理解土星卫星土卫七混沌翻滚的起点.

我们假设轨道不改变或进动. 轨道是一个椭圆, 点质量位于椭圆的一个焦点上. 角度 f(见图 2.10)测量刚体在其轨道上相对于轨道上两体最接近点的相对位置. 18 我们假设轨道是一个固定的椭圆, 因此角度 f 和距离 R 是时间的周期函数, 周期等于轨道周期. 由于自转轴被约束垂直于轨道平面, 刚体的方向由单一自由度指定: 物体绕自转轴的方向. 我们用广义坐标 θ 指定这个方向, 它测量到 \(\hat{a}\) 主轴的角度, 从与我们测量 f 的同一条线, 即通过最近点的线开始.

指定了坐标系后, 我们可以计算动能和势能的细节, 从而找到拉格朗日量. 动能是 \[ T(t, \theta, \dot{\theta}) = \frac{1}{2} C \dot{\theta}^2, \] 其中 C 是绕自转轴的转动惯量, 物体绕 \(\hat{c}\) 轴的角速度是 \(\dot{\theta}\). 其他主轴上没有角速度分量.

要得到势能的显式表达式, 我们必须用 θ 和 f 写出方向余弦: \(\alpha = \cos\theta_a = -\cos(\theta-f)\), \(\beta = \cos\theta_b = \sin(\theta-f)\), \(\gamma = \cos\theta_c = 0\), 因为 \(\hat{c}\) 轴垂直于轨道平面. 势能则为 \[ - \frac{GM'M}{R} - \frac{1}{2} \frac{GM'}{R^3} [ (1 - 3\cos^2(\theta-f)) A + (1 - 3\sin^2(\theta-f)) B + C ]. \] 由于我们假设轨道是给定的, 我们只需要保留依赖于 θ 的项. 将余弦和正弦的平方用倍角展开, 并丢弃所有

3.12. 2.12 欧拉方程

对于自由刚体, 我们已经看到主轴上的角动量分量构成一个自洽的动力学系统: 主轴分量的变化仅取决于主轴分量. 这里我们推导控制这些分量演化的方程.

推导的起点是矢量角动量的守恒. 主轴上角动量的分量是 \[ L' = I' \omega' \]

其中 ω' 由主轴上角速度向量的分量组成, I' 是相对于主轴基的惯性张量的矩阵表示: \[ I' = \begin{pmatrix} A & 0 & 0 \\ 0 & B & 0 \\ 0 & 0 & C \end{pmatrix}. \] 角动量的体分量 L' 与固定直角基 \(\hat{e}_i\) 上的分量 L 相关: \[ L = M L', \] 其中 M 是将物体以及所有附着于其上的向量从物体的参考方向旋转到实际方向的旋转的矩阵表示. 矢量角动量对于自由刚体运动是守恒的, 其在固定直角基上的分量也是守恒的. 因此, 沿解路径 \[ 0 = DL = DM L' + M DL'. \] 求解, 我们发现 \[ DL' = -M^T DM L'. \] 用 ω' 表示, 这是

\begin{align*} I' D\omega' &= -M^T DM I' \omega' \\ &= -M^T A(M\omega') M I' \omega', \end{align*}

其中我们使用了方程 (2.38) 将 DM 用 A 表示. 函数 A 具有性质20 \[ R^T A(Rv) R = A(v) \]

3.12.1. 练习 2.15:

填写方程 (2.96) 推导的细节. 您可能需要使用计算机来帮助进行代数运算.

3.12.2. 受力刚体的欧拉方程

欧拉方程是为自由刚体推导出来的. 一般来说, 我们必须能够处理外部力. 我们该怎么做? 首先, 我们推导矢量扭矩的表达式. 然后我们将矢量扭矩包含在欧拉方程中.

我们以类似于推导矢量角动量的方式推导矢量扭矩. 也就是说, 我们推导一个分量, 然后论证由于坐标系是任意的, 所有分量都具有相同的形式.

假设我们有一个刚体, 受到某个仅取决于时间和构型的势能的影响. 拉格朗日量是 \(L=T-V\). 如果我们使用欧拉角作为广义坐标, 定义方向的三个主动欧拉旋转中的最后一个是绕 z 轴的旋转. 这个旋转的大小由角度 φ 给出. φ 的拉格朗日方程给出21 \[ Dp_\phi(t) = -\partial_{1,1} V(t; \theta(t), \phi(t), \psi(t)). \] 如果我们定义扭矩的 z 分量 \(T_z\) 为势能关于物体绕 z 轴旋转角度的导数的负值, \[ T_z(t) = -\partial_{1,1} V(t; \theta(t), \phi(t), \psi(t)), \] 那么我们看到 \[ Dp_\phi(t) = T_z(t). \] 我们已经将与 φ 共轭的动量确定为矢量角动量 L 的一个分量 \(L_z\)(见 2.9 节), 所以 \[ DL_z(t) = T_z. \] 由于参考直角基向量的方向是任意的, 我们可以选择它们以任何我们喜欢的方式. 因此, 如果我们想要矢量扭矩的任何分量, 我们可以选择 z 轴, 以便我们可以用这种方式计算它. 我们可以得出结论, 矢量扭矩给出了矢量角动量的变化率 \[ D\mathbf{L} = \mathbf{T}. \] 获得了矢量扭矩的一般规定后, 我们讨论如何将矢量扭矩包含在欧拉方程中. 欧拉方程表达了矢量角动量

3.13. 2.13 非奇异广义坐标

欧拉角提供了一种方便的方式来参数化刚体的方向. 然而, 为其推导出的运动方程具有奇异性. 虽然我们可以通过使用具有不同奇异性的其他类似欧拉角的组合来避免奇异性, 但这种修补并不令人满意. 让我们集思广益一下, 看看我们是否能想出更好的东西.

指定一个方向需要什么? 也许我们可以从欧拉定理中得到提示. 回想一下欧拉定理指出任何方向都可以通过单次旋转达到. 因此, 指定物体方向的一种想法是参数化完成这项工作的单次旋转. 要指定这个旋转, 我们需要指定旋转轴和旋转量. 我们将此与指定三个连续旋转的欧拉角进行对比. 这三次旋转不必与给出方向的单个复合旋转有任何关系. 欧拉角不利用欧拉定理, 这不是很奇怪吗?

我们可以想出几种指定旋转的方法. 一种方法是通过旋转轴穿透球体的纬度和经度来指定旋转轴. 将物体从参考位置带到当前位置所需的旋转量可以通过再一个角度来指定. 然而, 我们可以预测这种坐标选择将具有与欧拉角类似的问题: 如果旋转量为零, 则旋转轴的纬度和经度是未定义的. 所以这些角度的拉格朗日方程可能是奇异的. 另一个没有这个缺陷的想法是用方向向量 o 的直角分量来表示旋转; 我们取方向向量的方向与将物体从参考方向带到当前方向的旋转轴相同, 方向向量的长度是物体必须绕方向向量以右手定则旋转的角度. 通过这种坐标选择, 如果旋转角度为零, 则向量的长度为零, 并且没有不需要的方向. 这个选择看起来很有希望.

我们用 \((o_x, o_y, o_z)\) 表示 o 的直角分量; 这些是我们的广义坐标. 大小 \(o = \sqrt{o_x^2 + o_y^2 + o_z^2}\) 是旋转角度. 旋转轴是 \(\hat{o} = o/o\). 我们用 \(\hat{o}_x, \hat{o}_y, \hat{o}_z\) 表示 \(\hat{o}\) 的分量. 将方向向量的分量作为广义坐标实现的第一步是构造方向向量 o 对应的旋转 M. 设 \(\mathring{u}\) 是物体在参考方向上某个组成部分的向量, u 是该组成部分在旋转 M 后的向量: \[ u = M \mathring{u}. \]

我们可以通过考虑由 o 表示的旋转如何影响向量 \(\mathring{u}\) 来确定 M. \(\mathring{u}\) 平行于 o 的分量不受影响. 垂直分量按旋转角的余弦缩减, 并生成一个垂直于这两者的分量, 该分量与旋转角的正弦和垂直分量的大小成正比. 设 \((\mathring{u})_\parallel = (\mathring{u} \cdot \hat{o}) \hat{o}\) 且 \((\mathring{u})_\perp = \mathring{u} - (\mathring{u})_\parallel\), 则 \[ u = (\mathring{u})_\parallel + (\mathring{u})_\perp \cos o + \hat{o} \times (\mathring{u})_\perp \sin o. \] 从这个表达式我们可以构造等效的旋转矩阵. 首先定义一些有用的基元矩阵: \[ A = A(\hat{o}) = \begin{pmatrix} 0 & -\hat{o}_z & \hat{o}_y \\ \hat{o}_z & 0 & -\hat{o}_x \\ -\hat{o}_y & \hat{o}_x & 0 \end{pmatrix}, \] 和 \[ S = \begin{pmatrix} \hat{o}_x^2 & \hat{o}_x \hat{o}_y & \hat{o}_x \hat{o}_z \\ \hat{o}_x \hat{o}_y & \hat{o}_y^2 & \hat{o}_y \hat{o}_z \\ \hat{o}_x \hat{o}_z & \hat{o}_y \hat{o}_z & \hat{o}_z^2 \end{pmatrix}, \] 以及单位矩阵 \[ I = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}. \] 矩阵 A 是反对称的, S 是 \(\hat{o}\) 分量的对称外积. 矩阵 A 实现 \(\hat{o}\) 与其他向量的叉积, 矩阵 S 将向量投影到方向向量上. 我们有以下恒等式:

\begin{align*} AA &= S - I \\ SS &= S \\ SA &= 0 \\ AS &= 0. \end{align*}

用这些矩阵表示, 旋转矩阵是 \[ M = I \cos o + A \sin o + S(1 - \cos o) \]

旋转的逆是绕同一轴但旋转角度为负的旋转. 因此 M 的逆可以立即写出 \[ M^{-1} = I \cos o - A \sin o + S(1 - \cos o). \] 我们可以通过回顾 I 和 S 是对称的而 A 是反对称的来验证旋转矩阵的逆是旋转矩阵的转置.

从 \(M^T\) 和 DM 计算角速度向量是直接的, 虽然繁琐; 角速度向量结果有一个简单的形式: \[ \omega = \left[ I \frac{\sin o}{o} + A \frac{1 - \cos o}{o} + S \left( 1 - \frac{\sin o}{o} \right) \right] Do. \] 主轴上的角速度向量分量可以通过将上式乘以 \(M^{-1} = M^T\) 得到: \[ \omega' = \left[ I \frac{\sin o}{o} - A \frac{1 - \cos o}{o} + S \left( 1 - \frac{\sin o}{o} \right) \right] Do. \] 设 \[ W = \left[ I \frac{\sin o}{o} - A \frac{1 - \cos o}{o} + S \left( 1 - \frac{\sin o}{o} \right) \right]. \] 那么我们有 \[ \omega' = W Do. \] 求解, 我们发现 \[ Do = W^{-1} \omega'. \] 矩阵 W 不是正交矩阵, 所以它的逆不是平凡的, 但我们可以使用基元矩阵的性质来找到它. 假设我们有一个形式为 \[ N = aI + bA + cS \] 的矩阵, 我们希望求逆. 让我们猜测逆矩阵具有类似的形式. \[ N^{-1} = a' I + b' A + c' S. \]

我们希望找到系数 a', b', c' 使得 \(NN^{-1} = I\). 我们发现三个关于系数的条件

\begin{align*} 1 &= aa' - bb' r^2 \\ 0 &= ab' + ba' \\ 0 &= ac' + ca' + bb' + cc' r^2, \end{align*}

解为

\begin{align*} a' &= \frac{a}{a^2 + b^2} \\ b' &= \frac{-b}{a^2 + b^2} \\ c' &= \frac{b^2 - ac}{a^3 + a^2c + ab^2 + b^2c}. \end{align*}

我们现在可以用 W 的基元矩阵表示来求逆矩阵 W \[ W^{-1} = \frac{1}{2} I \left( \frac{o \sin o}{1 - \cos o} \right) + \frac{o}{2} A + \frac{1}{2} S \left( 2 - \frac{o \sin o}{1 - \cos o} \right) \] 注意所有项在 \(o \to 0\) 时都有有限极限. 然而存在一个新的奇异点. 当 \(o \to 2\pi\) 时, 两个分母变为奇异, 但分子中的零不足以消除奇异性. 这是预期的奇异点, 对应于半径 2π 时方向向量对应于无旋转, 但仍然指定了一个旋转轴的事实. 这个奇异点很容易避免. 每当方向向量的大小超过 π 时, 只需用等效的方向向量 \(o - 2\pi \hat{o}\) 替换它.

我们可以用 \( \omega' = M^{-1} \omega \) 将控制方向演化的方程写成向量方程 \[ Do = f(o) \omega' + \frac{1}{2} o \times \omega' + g(o) o (o \cdot \omega') \] 带有两个辅助函数 \[ f(x) = \frac{1}{2} \frac{x \sin x}{1 - \cos x} \] \[ g(x) = \frac{1 - f(x)}{x^2}. \]

方向向量的运动方程出奇地简单. 两个辅助函数在零处都有有限极限: \[ \lim_{x \to 0} f(x) = 1 \] \[ \lim_{x \to 0} g(x) = \frac{1}{6}. \] 大小小于或等于 π 的方向向量足以指定所有方向, 并且该区域内的运动方程没有奇异性. 方向向量可能发展出大于 π 的大小, 但那时我们用大小小于 π 的等效方向向量替换它. 并且没有必要急于这样做, 因为方程直到大小达到 2π 时才奇异. 因此我们有了一个完整无奇异的刚体动力学规范.

3.13.1. 一个实际问题

要使用方向向量, 我们面临着在方向向量表示与其他表示之间进行转换的实际问题. 我们可以将旋转矩阵 M 视为一个中间的通用表示. 无论选择哪种广义坐标, 我们都必须能够计算坐标对应的旋转矩阵. 我们还必须解决相反的问题–从旋转矩阵确定广义坐标.

我们已经有了用方向向量表示旋转矩阵的显式形式, 方程 (2.118), 为方便起见在此重复, \[ M = I \cos o + A \sin o + S(1 - \cos o). \] 我们可以通过检查同一个方程来解决相反的问题. 我们注意到对 M 的贡献中有两部分是对称的, 一部分是反对称的. 我们可以通过减去转置来隔离反对称分量. 我们有 \[ A \sin o = \frac{1}{2} (M - M^T). \] 但是矩阵 A 仅与方向向量相关 \[ A = A\left(\frac{o}{o}\right). \]

我们使用逆运算 \(A^{-1}\) 从反对称 3x3 矩阵中提取 3 向量的分量. 所以我们有 \[ \frac{o}{o} = A^{-1}(A). \] 注意关于旋转大小 o 的信息本身在 A 中不可用. 然而, M 及其转置的组合产生了一个缩放版本的 A, 可以从中恢复旋转的大小 \[ \frac{\sin o}{o} o = A^{-1} \left( \frac{1}{2} (M - M^T) \right). \] 左侧向量的长度就是 sin o. 这并不能唯一确定 o, 因为 o 的范围是 0 到 π. 要完全确定 o, 从而确定 o, 我们需要更多信息, 例如通过确定 cos o. 我们可以很容易地得到 cos o. 检查分量表明 \[ \cos o = \frac{1}{2} \left( \frac{1}{2} \text{trace} (M + M^T) - 1 \right). \] 确定了 o 的正弦和余弦后, 我们可以确定 o. 当然, 这些表达式中有些包含可能为零的 o 的除法, 但如果 o=0, 则方向向量就是零向量. 这完成了从方向向量到方向向量以及从方向向量出发的实际问题的解决.

3.13.2. 旋转的复合

我们可以问以下问题: " 两次旋转的复合对应于哪个旋转? " 或者, " 方向向量的代数是什么? " 我们拥有所有的部分, 回答这个问题只是计算问题. 给定由旋转矩阵 M₁ 和 M₂ 表示的两次旋转, 这些旋转复合的旋转矩阵是 M = M₂ M₁. 这些旋转矩阵中的每一个都可以转换为等效的方向向量. 我们可以定义复合 o = o₂ ◦ o₁. 设 \(\alpha = (\sin o)/o\), \(\beta = (1 - \cos o)/o^2\), \(\gamma = \cos o\). 通过直接计算, 我们发现

\begin{align*} \alpha \mathbf{o} &= \mathbf{o}_1 \left( \alpha_1 \frac{1+\gamma_2}{2} - (\mathbf{o}_1 \cdot \mathbf{o}_2) \frac{\alpha_2 \beta_1}{2} \right) \\ &+ \mathbf{o}_2 \left( \alpha_2 \frac{1+\gamma_1}{2} - (\mathbf{o}_1 \cdot \mathbf{o}_2) \frac{\alpha_1 \beta_2}{2} \right) \\ &+ (\mathbf{o}_1 \times \mathbf{o}_2) \left( \frac{-\alpha_1 \alpha_2}{2} + \frac{\beta_1 \beta_2}{2} (\mathbf{o}_1 \cdot \mathbf{o}_2) \right) \end{align*}

并且 \[ \gamma = \frac{1}{2}(1+\gamma_1)(1+\gamma_2) - 1 + \frac{1}{2}(\mathbf{o}_1 \cdot \mathbf{o}_2)^2 \beta_1 \beta_2 - (\mathbf{o}_1 \cdot \mathbf{o}_2) \alpha_1 \alpha_2, \] 它们共同确定了 o.

好吧, 公式相当复杂, 但事实证明, 通过一些重新整理, 它们可以变得非常简单. 设 \(c = \cos(o/2)\) 和 \(s = \sin(o/2)\), 并定义 \(q = (s/o)o\). 向量 q 是 o 的缩放版本; 向量 q 的大小不是 o, 而是 \(s = \sin(o/2)\). 注意, 如果 o 限制在小于 π 的大小, 那么旋转 o 的大小可以从 q 的大小恢复. 因此, 在此限制下, 向量 q 对应于唯一的旋转, 不需要额外信息. 尽管如此, 跟踪半角余弦和正弦都很方便; 因此令 \(q = c = \cos(o/2)\). 22 q=s 的大小和 q=c, 所以 \(q^2 + q \cdot q = 1\). 我们可以用 q 和 q 对每次旋转重新表达复合旋转的公式. 我们有

\begin{align*} q &= q_2 q_1 + q_1 q_2 + q_2 \times q_1 \\ q &= q_1 q_2 - q_1 \cdot q_2. \end{align*}

现在这是一个显著的简化! 由 q 和 q 的三个分量组成的 4 元组是哈密顿四元数的分量. 我们看到表示方向的四元数的向量部分是方向向量的缩放版本.

哈密顿发现了一种更优雅的书写两次旋转复合公式的方法. 引入三个单位四元数: i, j, k, 使得 \(i^2 = j^2 = k^2 = -1\), \(ij = k\), \(jk = i\), \(ki = j\), 并且每个单位四元数反对易: \(ij = -ji\), 依此类推. 用 \((q_1, q_2, q_3)\) 表示 q 的三个分量, 用 \(q_0\) 表示 q. 然后定义复合四元数

3.13.3. 练习 2.16: 复合

验证用方向向量表示的两次旋转复合规则(方程 2.144 和 2.144)等价于乘以两个四元数的规则(方程 2.147).

3.13.4. 练习 2.17: 运动方程

用角速度向量表示方向四元数的运动方程.

3.14. 2.14 总结

刚体是具有约束的力学系统的一个例子. 因此, 从某种意义上说, 关于刚体的这一章只不过是第一章中发展的思想的一个扩展例子.

我们首先证明了刚体的动能分解为平动动能和转动动能. 质心在这种分离中起着特殊的作用. 转动动能简单地用惯性张量和角速度向量表示.

一种广义坐标的选择是欧拉角. 它们构成合适的广义坐标, 但在其他方面并不特殊或动机明确.

在考虑了物体约束并用合适的广义坐标表示了剩余的运动自由度之后, 自由刚体的运动方程就是拉格朗日方程.

如果没有外部扭矩, 矢量角动量是守恒的. 角动量体分量的时间导数可以完全用角动量体分量和三个主惯性矩表示. 角动量体分量构成一个自洽的动力学子系统.

欧拉角的拉格朗日方程对于某些欧拉角是奇异的. 像欧拉角这样的其他广义坐标选择也有类似的问题. 方向向量的运动方程是非奇异的.

3.15. 2.15 项目

3.15.1. 练习 2.18: 自由刚体

编写并演示一个重现如图 2.3 所示图表的程序. 你能找到渐近于中间主轴上不稳定相对平衡点的轨迹吗?

3.15.2. 练习 2.19: 水星的自转

在 60 年代发现水星的自转周期恰好是其轨道周期的 2/3. 我们可以在自旋-轨道模型问题中看到这种共振行为, 我们也可以玩一下轻推

水星一点, 看看自转速率可以偏离多远, 但仍被困在这个自旋-轨道共振中. 如果角速度失配太大, 水星的自转就不再与其轨道共振锁定. 设 \(\epsilon = 0.026\) 且 \(e = 0.2\).

a. 编写一个用于自旋-轨道问题的程序, 以便可以数值研究这种共振动力学. 你需要知道(或者, 更好的是, 证明! )f 满足方程 \[ Df = n(1-e^2)^{1/2} \left(\frac{a}{r}\right)^2, \] 其中 \[ \frac{a}{r} = \frac{1+e\cos f}{1-e^2}. \] b. 通过数值积分系统, 当自转不完全处于共振状态时, 证明 3:2 共振是稳定的, 并观察角度 \(\theta - \frac{3}{2}f\) 振荡. c. 找出这个共振角振荡的初始 \(\dot{\theta}\) 范围.

3.15.3. 练习 2.20: 岁差

地球几乎绕着最大惯性矩旋转, 自转轴相对于轨道法线倾斜约 23°. 太阳对地球施加引力梯度扭矩, 导致地球自转轴进动. 在地球轨道是圆形的近似下, 研究这种进动, 并且地球是轴对称的. 用地球的转动惯量表示进动速率. contentcopy download Use code with caution. Org

4. 第三章哈密顿力学

数值实验正如其名: 是实验. 在描述和评估它们时, 人们应该进入实验物理学家的心态, 而不是数学家的心态. 数值实验不能用来证明定理; 但是, 从物理学家的角度来看, 它们确实常常为现象的存在提供了令人信服的证据. 因此, 我们将遵循一种非正式的, 描述性的和非严谨的方法. 简而言之, 我们的目标将是理解动力学系统的基本性质, 而不是证明它们.

Michel Hénon, "数值探索哈密顿系统" , 载于<确定性系统的混沌行为>, (1983).

使用广义坐标和动量作为动力学状态变量的力学表述称为哈密顿表述. 哈密顿力学表述等价于拉格朗日表述, 然而两者各有其有用的视角. 拉格朗日表述在系统的初始表述中特别有用. 哈密顿表述在理解演化过程方面特别有用, 尤其是在存在对称性和守恒量的情况下.

对于力学系统的每一个连续对称性, 都有一个守恒量. 如果可以选择广义坐标来反映对称性, 那么根据拉格朗日方程, 共轭动量是守恒的. 我们已经看到, 这样的守恒量使我们能够推断出运动的重要性质. 例如, 对能量和角动量的考虑使我们能够推断出自由刚体绕中间惯量轴的旋转是不稳定的, 而绕其他主轴的旋转是稳定的. 对于轴对称陀螺, 我们使用了两个守恒动量来重新表达控制倾斜角演化的方程, 使得它们只涉及倾斜角及其导数. 倾斜角的演化可以独立确定, 并且只有简单的周期解. 考虑守恒动量提供了关键的洞察力. 哈密顿表述的动机是希望将注意力集中在动量上.

在拉格朗日表述中, 动量在某种意义上是次要量: 动量是状态空间变量的函数, 但状态空间变量的演化取决于状态空间变量本身, 而不是动量. 要利用任何守恒动量, 都需要对具体方程进行处理. 动量可以根据坐标和速度重写, 因此, 在局部上, 我们可以求解速度, 用坐标和动量来表示. 对于给定的力学系统和给定的坐标, 动量和速度可以相互推导. 因此, 我们可以用坐标和动量来表示系统的动力学状态, 就像用坐标和速度一样. 如果我们使用坐标和动量来表示状态, 并将相关的状态导数写成坐标和动量的函数, 那么我们就得到了一个自洽的系统. 这种控制系统演化的方程表述的优点在于, 如果某些动量是守恒的, 那么剩下的方程会立即简化.

拉格朗日力学表述提供了研究复杂力学系统运动的方法. 我们发现动力学系统展现出令人眼花缭乱的各种可能运动. 运动有时相当简单, 有时则非常复杂. 有时演化对初始条件非常敏感, 有时则不敏感. 有时轨道会与驱动保持共振关系. 考虑周期驱动摆. 驱动摆的行为可以或多或少像无驱动摆一样, 带有额外的摆动. 它可以以强烈的混沌方式运动. 它可以与驱动共振, 每两个驱动周期振荡一次, 或者每个驱动周期循环一次. 或者考虑月球. 月球的自转与其轨道运动同步, 总是大致将同一面朝向地球. 然而, 水星每绕太阳两圈自转三次, 而土卫七则混沌地翻滚. 我们如何理解这一切? 我们如何将这些系统的可能运动相互关联起来? 还有哪些其他可能的运动? 哈密顿表述为我们提供了比表达系统导数以包含可能守恒量这一既定目标更多的东西. 哈密顿表述提供了一个方便的框架, 可以在其中放置和理解可能的运动. 我们将能够看到稳定共振运动的范围, 以及混沌轨迹所能达到的状态范围, 并发现其他未曾预料到的可能运动. 哈密顿表述带来了许多额外的见解.

4.1. 3.1 哈密顿方程

动量由关于时间, 坐标和速度的动量状态函数给出. 1 在局部上, 我们可以找到反函数, 给出以时间, 坐标和动量表示的速度. 我们可以使用这个反函数来表示状态, 用坐标和动量而不是坐标和速度. 当以坐标和动量重铸时, 运动方程被称为哈密顿正则方程.

我们提出三种哈密顿方程的推导方法. 第一种推导遵循上面概述的策略, 并且只使用了隐函数和链式法则这样简单的工具. 第二种推导首先抽象出第一次推导的关键部分, 然后应用更抽象的机制来推导哈密顿方程. 第三种使用作用量原理.

拉格朗日方程给出了路径 q 上动量 p 的时间导数 \[ Dp(t) = \partial_1 L(t, q(t), Dq(t)), \] 其中 \[ p(t) = \partial_2 L(t, q(t), Dq(t)). \] 要消除 Dq, 我们需要根据 p 求解方程 (3.2) 得到 Dq.

设 V 是给出以时间, 坐标和动量表示的速度的函数. 定义 V 是一个函数求逆的问题. 为避免混淆, 我们使用不具有助记意义的变量名. 令 \[ a = \partial_2 L(b, c, d), \] 则 V 满足2 \[ d = V(b, c, a). \] 使用 V 可以将拉格朗日方程 (3.1) 重写为 p 的函数: \[ Dp(t) = \partial_1 L(t, q(t), V(t, q(t), p(t))). \] 我们也可以使用 V 将方程 (3.2) 重写为关于 Dq 的方程, 用 t, q 和 p 表示: \[ Dq(t) = V(t, q(t), p(t)). \] 方程 (3.5) 和 (3.6) 给出了在可实现路径上 q 和 p 随时间变化的速率, 作为 t, q 和 p 沿路径的函数.

虽然实现了我们用坐标和动量完全表达运动方程的目标, 但我们可以找到一种更方便的表示方法. 定义函数 \[ \bar{L}(t, q, p) = L(t, q, V(t, q, p)), \] 它是拉格朗日量 L 重新表达为时间, 坐标和动量的函数. 对于运动方程, 我们需要在适当的参数下计算 ∂₁L. 考虑

\begin{align*} \partial_1 \bar{L}(t, q, p) &= \partial_1 L(t, q, V(t, q, p)) + \partial_2 L(t, q, V(t, q, p)) \partial_1 V(t, q, p) \\ &= \partial_1 L(t, q, V(t, q, p)) + p \partial_1 V(t, q, p), \end{align*}

这里我们在第一步中使用了链式法则, 并在第二步中使用了 V 的逆属性. 引入动量选择器3 P(t, q, p) = p, 并利用属性 ∂₁P = 0, 我们有 \[ \partial_1 L(t, q, V(t, q, p)) = \partial_1 \bar{L}(t, q, p) - P(t, q, p) \partial_1 V(t, q, p) \]

4.1.1. 图示

考虑一个简单的例子: 质量为 m 的质点在势能 V(x, y) 中的运动. 拉格朗日量为 \[ L(t; x, y; v_x, v_y) = \frac{1}{2} m (v_x^2 + v_y^2) - V(x, y). \] 要构造哈密顿量, 我们首先找到动量 p = ∂₂L(t, q, v): px = mvx 且 py = mvy. 由此容易解出速度关于动量的表达式: vx = px/m 且 vy = py/m. 哈密顿量是 H(t, q, p) = pv - L(t, q, v), 其中 v 用 (t, q, p) 重新表示: \[ H(t; x, y; p_x, p_y) = \frac{p_x^2 + p_y^2}{2m} + V(x, y). \]

4.1.2. 练习 3.1: 推导哈密顿方程

对于以下每个拉格朗日量, 推导哈密顿量和哈密顿方程. 这些问题足够简单, 可以手动完成. a. 平面摆的拉格朗日量是 \(L(t, \theta, \dot{\theta}) = \frac{1}{2} m l^2 \dot{\theta}^2 + mgl \cos \theta\). b. 质量为 m 的粒子在二维势能 \(V(x, y) = (x^2 + y^2)/2 + x^2y - y^3/3\) 中的拉格朗日量是 \(L(t; x, y; \dot{x}, \dot{y}) = \frac{1}{2} m (\dot{x}^2 + \dot{y}^2) - V(x, y)\). c. 质量为 m 的粒子被约束在半径为 R 的球面上运动的拉格朗日量是 \(L(t; \theta, \phi; \dot{\theta}, \dot{\phi}) = \frac{1}{2} m R^2 (\dot{\theta}^2 + (\dot{\phi} \sin \theta)^2)\), 其中 θ 是余纬度, φ 是经度.

4.1.3. 练习 3.2: 滑动摆

对于带滑动支撑的摆(见练习 1.20), 推导哈密顿量和哈密顿方程.

4.1.4. 哈密顿状态

给定坐标路径 q 和拉格朗日量 L, 相应的动量路径 p 由方程 (3.2) 给出. 方程 (3.15) 以对应的哈密顿量 H 表示了相同的关系. 这些关系对任何路径都有效, 无论其是否可实现, 这使我们能够抽象出任意时刻的速度和动量. 在某个时刻, 状态元组 (t, q, v) 的动量 p 是 \(p = \partial_2 L(t, q, v)\). 我们也有 \(v = \partial_2 H(t, q, p)\). 在拉格朗日表述中, 系统的状态在某个时刻可以通过时间, 广义坐标和广义速度的局域状态元组 (t, q, v) 来指定. 拉格朗日方程确定了从这个状态出发的唯一路径. 在哈密顿表述中, 状态可以通过时间, 广义坐标和广义动量的元组 (t, q, p) 来指定. 哈密顿方程确定了从这个状态出发的唯一路径. 拉格朗日状态元组 (t, q, v) 与哈密顿状态元组 (t, q, p) 编码了完全相同的信息; 我们需要一个拉格朗日量或哈密顿量来关联它们. 两种表述是等价的, 因为对于等价的初始状态, 它们会产生相同的坐标路径.

从拉格朗日方程构造拉格朗日状态导数需要求解最高阶导数, 并抽象到任意位置和速度. 7 拉格朗日状态路径是通过对给定的初始拉格朗日状态 (t, q, v) 积分拉格朗日状态导数生成的. 类似地, 哈密顿状态导数可以通过哈密顿方程抽象到任意位置和动量来构造. 哈密顿方程是一阶微分方程组, 形式明确. 哈密顿状态导数可以直接从中写出. 哈密顿状态路径是通过对给定的初始哈密顿状态 (t, q, p) 积分哈密顿状态导数生成的. 如果这些状态路径是通过对等价初始状态积分状态导数得到的, 那么这些状态路径的坐标路径分量是相同的, 并且满足拉格朗日方程. 哈密顿状态路径的坐标路径和动量路径分量满足哈密顿方程. 哈密顿表述和拉格朗日表述是等价的.

给定路径 q, 可以从中推导出拉格朗日状态路径和哈密顿状态路径. 拉格朗日状态路径

4.1.5. 计算哈密顿方程

哈密顿方程是一个一阶微分方程组. 我们在 1.7 节中将拉格朗日方程的过程表述为一个一阶系统. 以下哈密顿方程的表述是类似的:

(define ((Hamilton-equations Hamiltonian) q p)
  (let ((H-state-path (qp->H-state-path q p)))
    (- (D H-state-path)
       (compose (phase-space-derivative Hamiltonian)
                H-state-path))))

哈密顿状态导数计算如下:

(define ((phase-space-derivative Hamiltonian) H-state)
  (up 1
      (((partial 2) Hamiltonian) H-state)
      (- (((partial 1) Hamiltonian) H-state))))

在哈密顿表述中, 状态由时间, 坐标和动量组成. 我们称之为 H-状态, 以区别于拉格朗日表述中的状态. 我们可以使用选择器 time, coordinate, momentum 来选择哈密顿状态的分量. 我们用 up 从它们的分量构造哈密顿状态. 状态的第一个分量是时间, 所以状态导数的第一个分量是 1, 即时间的变化率. 给定过程 q 和 p 实现坐标和动量路径函数, 哈密顿状态路径可以通过以下过程构造:

(define ((qp->H-state-path q p) t)
  (up t (q t) (p t)))

Hamilton-equations 过程返回给定路径的哈密顿方程的残差. 例如, 一个实现势能为 V(x, y) 的点质量的哈密顿量的过程是9

(define ((H-rectangular m V) H-state)
  (let ((q (coordinate H-state))
        (p (momentum H-state)))
    (+ (/ (square p) (* 2 m))
       (V (ref q 0) (ref q 1)))))

哈密顿方程是:

4.1.6. 练习 3.3: 计算哈密顿方程

使用 Hamilton equations 过程检查您在练习 3.1 中的答案.

4.1.7. 3.1.1 勒让德变换

勒让德变换抽象了从拉格朗日表述转换到哈密顿力学表述过程中的一个关键部分–用对广义动量的函数依赖性替换对广义速度的函数依赖性. 动量状态函数定义为拉格朗日量的偏导数, 是一个关于时间, 坐标和速度的实值函数. 勒让德变换提供了一个给出以动量表示的速度的反函数: 我们

能够将速度写成另一个关于时间, 坐标和动量的实值函数的偏导数. 10 给定一个实值函数 F, 如果能找到一个实值函数 G, 使得 \(DF = (DG)^{-1}\), 那么我们称 F 和 G 通过勒让德变换相关联.

局部上, 我们可以定义 DF 的反函数11 V, 使得 \(DF \circ V = I\), 其中 I 是恒等函数 \(I(w) = w\). 考虑复合函数 \(\bar{F} = F \circ V\). \(\bar{F}\) 的导数是 \[ D\bar{F} = (DF \circ V) DV = I DV. \] 使用乘积法则和 DI = 1, \[ D\bar{F} = D(IV) - V, \] 或者 \[ V = D(IV) - D\bar{F} = D(IV - \bar{F}). \] 积分由一个积分常数决定. 如果我们定义 \[ G = IV - \bar{F}, \] 那么我们有 \[ V = DG. \] 函数 G 具有所需的性质, 即 DG 是 DF 的反函数 V. 如果 F 和 G 的参数具有多个分量, 上述推导同样适用.

给定关系 \(w = DF(v)\) 对于某个给定的函数 F, 那么 \(v = DG(w)\), 对于 \(G = IV - F \circ V\), 其中 V 是 DF 的反函数, 前提是它存在.

图示说明: 图 3.1 显示了函数 DF 的图形. 从 v₀ 到 v 的曲线下的面积是 F(v) - F(v₀). 同样, 从 w₀ 到 w 的 DG 积分是 G(w) - G(w₀); 这是从 w₀ 到 w 的曲线左侧的面积. 这两个区域的并集面积为 wv - w₀v₀. 所以 \[ wv - w_0v_0 = F(v) - F(v_0) + G(w) - G(w_0), \] 这与 \[ wv - F(v) - G(w) = w_0v_0 - G(w_0) - F(v_0). \] 相同. 左侧取决于标记为 w 和 v 的点, 右侧取决于标记为 w₀ 和 v₀ 的点, 所以它们只能等于一个与端点无关的常数. 当点改变时, 组合 G(w)+F(v)-wv 是不变的. 所以 \[ G(w) = wv - F(v) + C, \]

4.1.8. 带被动参数的勒让德变换

设 F 是两个参数的实值函数, 且 \[ w = \partial_1 F(x, v). \] 如果我们能找到一个实值函数 G 使得 \[ v = \partial_1 G(x, w) \] 我们称 F 和 G 通过勒让德变换相关联, 并且每个函数中的第二个参数是主动的, 第一个参数在变换中是被动的.

如果函数 ∂₁F 可以关于第二个参数局部求逆, 我们可以定义 \[ v = V(x, w), \] 给出 \[ w = \partial_1 F(x, V(x, w)) = W(x, w), \] 其中 W = I₁ 是第二个参数的选择器函数. 对于主动参数, 推导过程如前所述. F 和 G 的第一个参数只是伴随过程, 它是一个被动参数. 令 \[ \bar{F}(x, w) = F(x, V(x, w)), \] 然后定义 \[ G = WV - \bar{F}. \] 我们可以通过求导来检验 G 是否具有性质 V = ∂₁G: \[ \partial_1 G = \partial_1 (WV - \bar{F}) \] \[ = V + W \partial_1 V - \partial_1 \bar{F}, \] 但是 \[ \partial_1 \bar{F}(x, w) = \partial_1 F(x, V(x, w)) \partial_1 V(x, w) \]

\[ = W(x, w) \partial_1 V(x, w), \] 或者 \[ \partial_1 \bar{F} = W \partial_1 V. \] 所以 \[ \partial_1 G = V, \] 符合要求. 主动参数可以有多个分量. 关于被动参数的偏导数以一种非常简单的方式关联起来. 让我们分步计算导数 ∂₀G. 首先, \[ \partial_0 (WV) = W \partial_0 V \] 因为 ∂₀W = 0. 要计算 ∂₀\bar{F}, 我们必须提供参数

\begin{align*} \partial_0 \bar{F}(x, w) &= \partial_0 F(x, V(x, w)) + \partial_1 F(x, V(x, w)) \partial_0 V(x, w) \\ &= \partial_0 F(x, V(x, w)) + W(x, w) \partial_0 V(x, w). \end{align*}

将这些放在一起, 我们发现 \[ \partial_0 G(x, w) = -\partial_0 F(x, V(x, w)) = -\partial_0 F(x, v). \] 如果被动参数有多个分量, 计算过程不变. 我们可以更对称地写出勒让德变换:

\begin{align*} w &= \partial_1 F(x, v) \\ wv &= F(x, v) + G(x, w) \\ v &= \partial_1 G(x, w) \\ 0 &= \partial_0 F(x, v) + \partial_0 G(x, w). \end{align*}

最后一个关系并不像看起来那么平凡, 因为 x 进入了连接 w 和 v 的方程. 通过这种对称形式, 我们看到勒让德变换是其自身的逆变换.

4.1.9. 练习 3.4: 简单勒让德变换

对于以下每个函数, 找出与其通过在指定主动参数上的勒让德变换相关的函数. 证明勒让德变换关系对你的解成立, 包括被动参数之间的关系(如果有). a. \(F(x) = a \sin x + b \cos x\), 没有被动参数. b. \(F(x, y) = a \sin x \cos y\), x 是主动参数. c. \(F(x, y, \dot{x}, \dot{y}) = x\dot{x}^2 + 3\dot{x}y\dot{y} + y\dot{y}^2\), \(\dot{x}\) 和 \(\dot{y}\) 是主动参数.

4.1.10. 从勒让德变换得到的哈密顿方程

我们可以使用勒让德变换, 让拉格朗日量扮演 F 的角色, 广义速度槽扮演主动参数的角色. 哈密顿量扮演 G 的角色, 动量槽是主动参数. 坐标和时间槽是被动参数. 拉格朗日量 L 和哈密顿量 H 通过勒让德变换相关联: \[ e = (\partial_2 L)(a, b, c) \] \[ ec = L(a, b, c) + H(a, b, e) \] 以及 \[ c = (\partial_2 H)(a, b, e), \] 带有被动方程

\begin{align*} 0 &= \partial_0 L(a, b, c) + \partial_0 H(a, b, e), \\ 0 &= \partial_1 L(a, b, c) + \partial_1 H(a, b, e). \end{align*}

假设它存在, 我们可以定义关于最后一个参数的 ∂₂L 的逆 \[ c = V(a, b, e), \] 并写出哈密顿量 \[ H(a, b, c) = cV(a, b, c) - L(a, b, V(a, b, c)). \] 这些关系纯粹是代数性质的. 在路径 q 上, 我们有动量 p: \[ p(t) = \partial_2 L(t, q(t), Dq(t)), \]

根据 V 的定义 \[ Dq(t) = V(t, q(t), p(t)). \] 勒让德变换给出 \[ Dq(t) = \partial_2 H(t, q(t), p(t)). \] 这个关系纯粹是代数性的, 对任何路径都有效. 被动方程 (3.51) 给出 \[ \partial_1 L(t, q(t), Dq(t)) = -\partial_1 H(t, q(t), p(t)), \] 但是左侧可以用拉格朗日方程重写, 所以 \[ Dp(t) = -\partial_1 H(t, q(t), p(t)). \] 这个方程只对可实现路径有效, 因为我们使用了拉格朗日方程来推导它. 方程 (3.56) 和 (3.58) 是哈密顿方程. 剩下的被动方程是 \[ \partial_0 L(t, q(t), Dq(t)) = -\partial_0 H(t, q(t), p(t)). \] 我们发现如果拉格朗日量没有显式时间依赖性 (\(\partial_0 L = 0\)), 那么能量是守恒的. 这个被动方程表明, 如果拉格朗日量没有显式时间依赖性, 那么哈密顿量也不会有显式时间依赖性 (\(\partial_0 H = 0\)). 所以如果哈密顿量没有显式时间依赖性, 那么它就是一个守恒量.

4.1.11. 练习 3.5:

使用哈密顿方程, 直接证明如果哈密顿量没有显式时间依赖性, 那么哈密顿量是一个守恒量.

4.1.12. 二次函数的勒让德变换

我们通常无法实现勒让德变换, 因为它涉及到求任意函数的函数逆. 然而, 许多物理系统可以用在广义速度上是二次型的拉格朗日量来描述. 对于这样的函数, 广义动量是广义速度的线性函数, 因此可以显式求逆.

更一般地, 我们可以计算多项式函数的勒让德变换, 其中主项是二次型: \[ F(v) = \frac{1}{2} v M v + b v + c. \] 我们可以假设 M 是对称的, 12 因为它定义了一个二次型. 我们可以找到 w 的线性表达式 \[ w = DF(v) = vM + b. \] 所以如果 M 可逆, 我们可以解出 v 关于 w 的表达式. 因此我们可以定义一个函数 V 使得 \[ v = V(w) = M^{-1} (w - b) \] 我们可以用它来计算 G 的值: \[ G(w) = wV(w) - F(V(w)). \]

4.1.13. 计算哈密顿量

我们通过过程实现二次函数的勒让德变换: 13

(define (Legendre-transform F)
  (let ((w-of-v (D F)))
    (define (G w)
      (let ((z (dual-zero w)))
        (let ((M ((D w-of-v) z))
              (b (w-of-v z)))
          (let ((v (/ (- w b) M)))
            (- (* w v) (F v))))))
    G))

过程 Legendre-transform 接受一个单参数过程并返回通过勒让德变换与之关联的过程. 如果 \(w = DF(v)\), \(wv = F(v) + G(w)\), 且 \(v = DG(w)\) 指定了一个单参数勒让德变换,

4.1.14. 练习 3.6: 螺旋轨道上

考虑一个质量为 M, 半径为 R, 高度为 h 的均匀圆柱体, 安装成可以在垂直轴上自由旋转. 一个质量为 m 的质点被约束在一个均匀无摩擦的螺旋轨道上运动, 螺距为 β(单位: 弧度/米, 沿圆柱体下降), 安装在圆柱体表面(见图 3.2). 质点受到标准重力(\(g = 9.8 \text{ms}^{-2}\))的作用.

a. 这个系统有多少自由度? 选择并描述一套方便的广义坐标. 写出一个描述动力学行为的拉格朗日量. 知道圆柱体绕其轴的转动惯量是 \(\frac{1}{2}MR^2\) 可能有帮助. 如果将各种常数组合起来并表示为单个符号, 代数计算可能会更容易. b. 为系统构造一个哈密顿量. 写出系统的哈密顿方程. 是否存在任何守恒量? c. 如果我们在时间 t=0 时从轨道顶部以零初始速度释放质点, 让它滑下, 系统的运动是什么?

4.1.15. 练习 3.7: 椭球碗

考虑一个质量为 m 的质点, 被约束在一个碗里运动, 并受到均匀引力加速度 g 的作用. 碗是椭球形的, 高度 \(z = ax^2 + by^2\). 为此系统构造一个哈密顿量. 你能对这个系统做出任何直接的推断吗?

4.1.16. 3.1.2 哈密顿作用量原理

前两次哈密顿方程的推导都利用了拉格朗日方程. 哈密顿方程也可以直接从作用量原理推导出来. 作用量是拉格朗日量沿路径的积分: \[ S[q](t_1, t_2) = \int_{t_1}^{t_2} L \circ \Gamma[q]. \] 作用量对于保持端点构型不变的路径变分是稳态的(对于依赖于时间, 坐标和速度的拉格朗日量). 我们可以用哈密顿量重写被积函数 \[ L \circ \Gamma[q](t) = p(t) Dq(t) - H(t, q(t), p(t)), \] 其中 \(p(t) = \partial_2 L(t, q(t), Dq(t))\). 勒让德变换的构造给出 \[ Dq(t) = \partial_2 H(t, q(t), p(t)), \] 这是哈密顿方程之一, 它不依赖于路径是否为可实现路径. 利用 \[ \Pi_L[q](t) = (t, q(t), \partial_2 L(t, q(t), Dq(t))) = (t, q(t), p(t)), \]

被积函数是 \[ L \circ \Gamma[q] = pDq - H \circ \Pi_L[q]. \] 作用量的变分是

\begin{align*} \delta S[q](t_1, t_2) &= \int_{t_1}^{t_2} \delta (pDq - H \circ \Pi_L[q]) \\ &= \int_{t_1}^{t_2} (\delta p Dq + p \delta Dq - (DH \circ \Pi_L[q]) \delta \Pi_L[q]) \\ &= \int_{t_1}^{t_2} \{ \delta p Dq + p D\delta q - (\partial_1 H \circ \Pi_L[q]) \delta q - (\partial_2 H \circ \Pi_L[q]) \delta p \}, \end{align*}

其中 \(\delta p\) 是动量的变分. 14 对第二项进行分部积分, 使用 \(D(p\delta q) = Dp\delta q + pD\delta q\), 我们得到

\begin{align*} \delta S[q](t_1, t_2) &= p\delta q \Big|_{t_1}^{t_2} \\ &+ \int_{t_1}^{t_2} \{ \delta p Dq - Dp \delta q - (\partial_1 H \circ \Pi_L[q]) \delta q - (\partial_2 H \circ \Pi_L[q]) \delta p \}. \end{align*}

变分被约束使得 \(\delta q(t_1) = \delta q(t_2) = 0\), 所以积分项消失. 作用量的变分是 \[ \delta S[q](t_1, t_2) = \int_{t_1}^{t_2} ((Dq - \partial_2 H \circ \Pi_L[q]) \delta p - (Dp + \partial_1 H \circ \Pi_L[q]) \delta q). \]

4.1.17. 3.1.3 接线图

图 3.3 展示了拉格朗日和哈密顿描述动力学系统之间函数关系的概要. 该图显示了一个连接一些" 设备" 和" 导线" 的" 电路" . 设备代表关联其终端上量的数学函数. 导线代表它们连接的终端上量的标识. 例如, 有一个代表拉格朗日函数的盒子. 给定值 t, q 和 ˙q, 拉格朗日量 L(t, q, ˙q) 的值位于标记为 L 的终端上, 该终端连接到加法器的加数终端. 拉格朗日量还有其他终端, 承载拉格朗日函数偏导数的值.

图的上部总结了哈密顿量与拉格朗日量的关系. 例如, 拉格朗日量 L 和哈密顿量 H 终端上的值的和等于拉格朗日量 ˙q 终端上的值与哈密顿量 p 终端上的值的乘积. 这是勒让德变换的主动部分. 被动变量通过它们相应的偏导数互为负相关. 图的下部通过积分器的存在指示了运动, 将动力学量与其时间导数联系起来.

人们可以用这个图来帮助理解拉格朗日和哈密顿力学表述的潜在统一性. 拉格朗日方程仅仅是 ˙p 线与拉格朗日装置 ∂₁L 终端的连接. 哈密顿方程之一仅仅是 ˙p 线(通过取反装置)与哈密顿装置 ∂₁H 终端的连接. 另一个仅仅是 ˙q 线与哈密顿装置 ∂₂H 终端的连接. 我们看到这两种表述是一致的. 人们不必为了使用哈密顿表述而放弃拉格朗日表述的任何部分: 可以同时使用两者进行推导.

4.2. 3.2 泊松括号

这里我们介绍泊松括号. 用泊松括号表示, 哈密顿方程具有优雅和对称的表达形式. 考虑一个函数 F, 它是时间, 坐标和动量的函数. F 沿着路径 \(\sigma(t) = (t, q(t), p(t))\) 的值是 \((F \circ \sigma)(t) = F(t, q(t), p(t))\). \(F \circ \sigma\) 的时间导数是

\begin{align*} D(F \circ \sigma) &= (DF \circ \sigma) D\sigma \\ &= \partial_0 F \circ \sigma + (\partial_1 F \circ \sigma) Dq + (\partial_2 F \circ \sigma) Dp. \end{align*}

如果相空间路径是哈密顿量为 H 的系统的可实现路径, 那么 Dq 和 Dp 可以用哈密顿方程重新表达

\begin{align*} D(F \circ \sigma) &= \partial_0 F \circ \sigma + (\partial_1 F \circ \sigma) (\partial_2 H \circ \sigma) - (\partial_2 F \circ \sigma) (\partial_1 H \circ \sigma) \\ &= \partial_0 F \circ \sigma + (\partial_1 F \partial_2 H - \partial_2 F \partial_1 H) \circ \sigma \\ &= \partial_0 F \circ \sigma + \{F, H\} \circ \sigma \end{align*}

4.2.1. 泊松括号的性质

设 F, G 和 H 是时间, 位置和动量的函数, c 是与位置和动量无关的.

4.2.2. 守恒量的泊松括号

守恒量的泊松括号是守恒的. 设 F 和 G 是相空间状态空间上的时间无关函数: \(\partial_0 F = \partial_0 G = 0\). 如果 F 和 G 在 H 下的演化中是守恒的, 那么

\begin{align*} 0 &= D(F \circ \sigma) = \{F, H\} \circ \sigma \\ 0 &= D(G \circ \sigma) = \{G, H\} \circ \sigma. \end{align*}

所以 F 和 G 与 H 的泊松括号为零: \(\{F, H\} = \{G, H\} = 0\). 雅可比恒等式则意味着 \[ \{\{F, G\}, H\} = 0, \] 因此 \[ D(\{F, G\} \circ \sigma) = 0, \] 所以 \(\{F, G\}\) 是一个守恒量. 两个守恒量的泊松括号也是一个守恒量.

4.3. 3.3 单自由度

具有单自由度的时间无关系统的解可以通过求积法找到. 这样的系统哈密顿量守恒: 哈密顿量在每条可实现轨迹上都有一个恒定值. 我们可以利用这个约束来消除动量, 只留下坐标. 因此哈密顿方程简化为单个方程 \(Dq = f(q)\). 解 q 可以表示为定积分.

几何视图揭示了更多结构. 具有单自由度的时间无关系统具有二维相空间. 能量是守恒的, 所以所有轨道都是哈密顿量的等值线. 可能的轨道类型仅限于作为实值函数等高线的曲线. 可能的轨道是在哈密顿量描述的相平面上的山脉地形中等高线路径.

存在少量可能的特征. 存在系统的稳定平衡点. 这些是哈密顿量山脉地形的峰顶和谷底. 这些平衡点是稳定的, 因为邻近等高线上的轨迹会保持在平衡点附近. 存在一些轨道, 它们描绘了围绕一个峰顶或谷底(或者可能是几个峰顶)的简单闭合曲线. 还存在一些位于等高线上的轨迹, 这些等高线在鞍点处相交. 交叉点是一个不稳定的平衡点. 说它不稳定是因为邻近的轨迹会离开平衡点的邻域. 这种在鞍点处相交的等高线称为分界线, 即" 分隔" 两个不同行为区域的轮廓. 17

在每一点, 哈密顿方程都给出演化的唯一速率. 哈密顿方程引导系统垂直于哈密顿量的梯度方向移动. 在峰顶, 谷底和鞍点处, 哈密顿量的梯度为零, 因此根据哈密顿方程, 这些点是不动点. 在其他点, 哈密顿量的梯度非零, 因此根据哈密顿方程, 演化速率非零. 轨迹沿着哈密顿量的等高线演化. 简单闭合等高线上的轨迹周期性地追踪等高线. 在鞍点处等高线相交. 梯度在鞍点处为零, 因此从鞍点开始的系统不会离开鞍点. 在远离鞍点的分界线上, 哈密顿量的梯度非零, 因此轨迹沿着等高线演化. 分界线上的轨迹在时间上向前或向后渐近于鞍点. 在时间上向前或向后, 这样的轨迹永远接近一个不稳定的平衡点, 但从未到达它. 如果相空间有界, 光滑哈密顿量的等高线上的渐近轨迹总是渐近于两端的不稳定平衡点(但它们可能是不同的平衡点).

这些轨道类型都由摆的典型相平面图(见图 3.4)所说明. 解位于哈密顿量的等高线上. 相平面有三个区域; 在每个区域中, 运动性质不同. 在中心区域, 摆振荡; 在此之上, 有一个区域, 摆向一个方向循环; 而在振荡区域之下, 摆向另一个方向循环. 在振荡区域的中心有一个稳定平衡点, 此时摆静止悬挂. 在这些区域的边界上, 摆渐近于不稳定的平衡点, 此时摆直立. 18 有两条渐近轨迹, 对应于接近平衡点的两种方式. 它们中的每一个在时间上向后也渐近于不稳定的不动点.

4.4. 3.4 相空间约化

我们发展哈密顿方程的动机是关注那些有时守恒的量–动量和能量. 在哈密顿表述中

4.4.1. 中心势中的运动

考虑质量为 m 的粒子在中心势中的运动. 反映对称性的自然广义坐标选择是极坐标. 拉格朗日量是(方程 1.67): \[ L(t; r, \phi; \dot{r}, \dot{\phi}) = \frac{1}{2} m (\dot{r}^2 + r^2 \dot{\phi}^2) - V(r). \] 动量是 \(p_r = m\dot{r}\) 和 \(p_\phi = mr^2\dot{\phi}\). 动能是速度的齐次二次型, 所以哈密顿量是 T+V, 速度用动量重写: \[ H(t; r, \phi; p_r, p_\phi) = \frac{p_r^2}{2m} + \frac{p_\phi^2}{2mr^2} + V(r). \] 哈密顿方程是:

\begin{align*} Dr &= \frac{p_r}{m} \\ D\phi &= \frac{p_\phi}{mr^2} \\ Dp_r &= \frac{p_\phi^2}{mr^3} - DV(r) \\ Dp_\phi &= 0. \end{align*}

势能取决于到原点的距离 r, 动能也取决于极坐标, 但势能和动能都不取决于极角 φ. 角 φ 没有出现在拉格朗日量中, 所以我们知道共轭于 φ 的动量 \(p_\phi\) 在可实现轨迹上是守恒的. \(p_\phi\) 在可实现路径上是常数这一事实由哈密顿方程之一表达. \(p_\phi\) 具有恒定值这一事实立即在其他哈密顿方程中使用: 其余方程构成一个以 \(p_\phi\) 为常数的自洽子系统. 在拉格朗日表述中, 要使一个较低维度的子系统出现, 我们必须使用每个守恒动量来消除另一个状态变量, 就像我们对轴对称陀螺所做的那样(见 2.10 节).

我们可以用计算机检查我们的推导. 一个实现拉格朗日量的过程已经在(方程 1.67 下面)引入. 我们可以用它来得到哈密顿量:

(show-expression
 ((Lagrangian->Hamiltonian
   (L-central-polar 'm (literal-function 'V)))
  (up 't (up 'r 'phi) (down 'p_r 'p_phi))))

并推导哈密顿方程:

(show-expression
 (((Hamilton-equations
    (Lagrangian->Hamiltonian
     (L-central-polar 'm (literal-function 'V))))
   (up (literal-function 'r)
       (literal-function 'phi))
   (down (literal-function 'p_r)
         (literal-function 'p_phi)))
  't))

4.4.2. 轴对称陀螺

我们从哈密顿观点重新考虑轴对称陀螺(见 2.10 节). 回想一下, 陀螺是一个旋转的刚体,

4.4.3. 练习 3.8: 睡眠陀螺

验证陀螺可以睡眠的临界角速度由方程 (3.100) 给出.

4.4.4. 3.4.1 拉格朗日约化

假设存在循环坐标. 在哈密顿表述中, 其他自由度的坐标和动量的运动方程构成一个自洽的子系统, 其中与循环坐标共轭的动量是参数. 我们可以通过对约化的哈密顿量进行勒让德变换来为此子系统构造一个拉格朗日量. 或者, 我们可以从完整的拉格朗日量开始, 只对那些是循环的坐标进行勒让德变换. 运动方程对于已变换的变量是哈密顿方程, 对于其他变量是拉格朗日方程. 与循环坐标共轭的动量是守恒的, 可以作为参数处理到剩余坐标的拉格朗日量中.

将坐标元组 q 分成两个子元组 q = (x, y). 假设 L(t; x, y; vx, vy) 是系统的拉格朗日量. 定义 Routhian R 为 L 关于 vy 槽的勒让德变换:

\begin{align*} p_y &= \partial_{2,1} L(t; x, y; v_x, v_y) \\ p_y v_y &= R(t; x, y; v_x, p_y) + L(t; x, y; v_x, v_y) \end{align*} \begin{align*} v_y &= \partial_{2,1} R(t; x, y; v_x, p_y) \\ 0 &= \partial_0 R(t; x, y; v_x, p_y) + \partial_0 L(t; x, y; v_x, v_y) \\ 0 &= \partial_1 R(t; x, y; v_x, p_y) + \partial_1 L(t; x, y; v_x, v_y) \\ 0 &= \partial_{2,0} R(t; x, y; v_x, p_y) + \partial_{2,0} L(t; x, y; v_x, v_y) \end{align*}

要定义函数 R, 我们必须解方程 (3.101) 得到 vy 关于其他变量的表达式, 并将其代入方程 (3.102). 定义状态路径 Ξ \[ \Xi(t) = (t; x(t), y(t); Dx(t), p_y(t)), \] 其中 \[ p_y(t) = \partial_{2,1} L(t; x(t), y(t); Dx(t), Dy(t)). \] 可实现路径满足运动方程

\begin{align*} D(\partial_{2,0} R \circ \Xi)(t) &= \partial_{1,0} R \circ \Xi(t) \\ Dy(t) &= \partial_{2,1} R \circ \Xi(t) \\ Dp_y(t) &= -\partial_{1,1} R \circ \Xi(t), \end{align*}

它们分别是 x 的拉格朗日方程以及 y 和 py 的哈密顿方程. 现在假设拉格朗日量在 y 中是循环的. 那么 \(\partial_{1,1} L = \partial_{1,1} R = 0\), 并且 \(p_y(t)\) 在任何可实现路径上是常数 c. 方程 (3.109) 不依赖于 y(根据假设), 我们可以用常数值 c 替换 py. 因此方程 (3.109) 构成 x 路径的一个封闭子系统. 拉格朗日量 Lc \[ L_c(t, x, v_x) = -R(t; x, \bullet; v_x, c). \] 描述子系统的运动. 引入负号是为了方便. 路径 y 可以通过积分方程 (3.110), 使用独立确定的路径 x 来找到. 定义作用量 \[ S^c[x](t_1, t_2) = \int_{t_1}^{t_2} L_c \circ \Gamma[x]. \]

可实现路径 x 满足拉格朗日量为 Lc 的拉格朗日方程, 所以作用量 Sᶜ 对于在端点处为零的 x 的变分 ξ 是稳态的: \[ \delta_\xi S^c(t_1, t_2) = 0. \] 对于可实现路径 q, 作用量 S[q](t₁, t₂) 对于在端点处为零的 q 的变分 η 是稳态的. 沿着这些路径, 动量 \(p_y(t)\) 具有常数值 c. 对于同样这些路径, 作用量 Sᶜ[x](t₁, t₂) 对于在端点处为零的 x 的变分 ξ 是稳态的. ξ 的维数小于 η 的维数. 作用量 Sᶜ[x](t₁, t₂) 和 S[q](t₁, t₂) 的值相关:

\begin{align*} S[q](t_1, t_2) &= S^c[x] - \int_{t_1}^{t_2} c v_y \\ &= S^c[x] - c(y(t_2) - y(t_1)). \end{align*}

4.4.5. 练习 3.9: Routhian 运动方程

验证运动方程由方程 (3.109) 到 (3.111) 给出.

4.5. 3.5 相空间演化

大多数问题没有足够的对称性可以简化为求积. 很自然地转向数值积分来了解更多关于这些系统的演化. 相空间中的演化可以通过对哈密顿方程进行数值积分找到.

哈密顿方程已经是所需的一阶形式; 哈密顿状态导数与相空间导数相同:

(define Hamiltonian->state-derivative
  phase-space-derivative)

作为说明, 再次考虑周期驱动摆(见 1.6.2 节). 哈密顿量是

(show-expression
 ((Lagrangian->Hamiltonian
   (L-periodically-driven-pendulum 'm 'l 'g 'a 'omega))
  (up 't 'theta 'p_theta)))

周期驱动摆的哈密顿方程并不具启发性, 所以我们不会展示它们. 我们从哈密顿量构建一个系统导数:

(define (H-pend-sysder m l g a omega)
  (Hamiltonian->state-derivative
   (Lagrangian->Hamiltonian
    (L-periodically-driven-pendulum m l g a omega))))

现在我们用与第 1 章相同的初始条件(见图 1.7)对这个系统进行积分, 但在相空间中显示轨迹(图 3.9). 我们制作一个监视器过程来显示相空间中的演化:

(define ((monitor-p-theta win) state)
  (let ((q ((principal-value pi) (coordinate state)))
        (p (momentum state)))
    (plot-point win q p)))

我们使用 evolve 来探索系统的演化

(define window (frame -pi pi -10.0 10.0))
(let ((m 1.)              ;m=1kg
      (l 1.)              ;l=1m
      (g 9.8)             ;g=9.8m/s^2
      (A 0.1)             ;A=1/10 m
      (omega (* 2 (sqrt 9.8))))
  ((evolve H-pend-sysder m l g A omega)
   (up 0.0                 ;t0=0
       1.0                 ;theta0=1 radian
       0.0)                ;thetadot0=0 radians/s
   (monitor-p-theta window)
   0.01                   ;plot interval
   100.0                  ;final time
   1.0e-12))

轨迹有时振荡, 有时循环. 相平面中的模式让人联想到图 3.4 中所示的无驱动摆相平面中的轨迹.

4.5.1. 3.5.1 相空间描述不是唯一的

我们熟悉这样一个事实: 系统的给定运动在不同的坐标系中表达方式不同: 用直角坐标表达运动的函数不同于用极坐标表达相同运动的函数. 然而, 对于给定的坐标系, 特定初始条件的局域状态元组的演化是唯一的. 广义速度路径函数是广义坐标路径函数的导数. 另一方面, 坐标系本身并不能唯一地指定相空间描述. 动量与坐标和速度的关系取决于拉格朗日量, 而描述同一物理系统行为可能使用许多不同的拉格朗日量. 当同一物理系统的两个拉格朗日量不同时, 相空间描述一个动力学状态也不同.

我们已经看到了驱动摆的两个不同的拉格朗日量(见 1.6.2 节). 一个是使用 \(L = T - V\) 找到的,

另一个是通过检查运动方程找到的. 这两个拉格朗日量相差一个全时间导数. 与 θ 共轭的动量 pθ 取决于我们选择哪个拉格朗日量, 并且相应相空间中的演化描述也取决于拉格朗日量的选择, 即使系统的行为与描述它的方法无关. 使用 \(L=T-V\) 拉格朗日量, 与 θ 共轭的动量是 \[ p_\theta = ml^2 \dot{\theta} - alm\omega \sin\theta \sin\omega t \] 而使用备用拉格朗日量, 与 θ 共轭的动量是 \[ p'_\theta = ml^2 \dot{\theta}. \] 这两个动量相差一个周期性变化且依赖于 θ 的附加畸变. 相空间描述不同如图 3.10 所示. 系统的演化对两者都是相同的.

4.6. 3.6 截面

计算力学系统的演化仅仅是理解动力学的开始. 通常, 我们希望了解的远不止某个特定轨迹的相空间演化. 我们希望获得对运动的定性理解. 我们想知道哪些类型的运动是可能的, 以及一种类型如何与其他类型相关联. 我们想从我们能计算的无数特定演化中抽象出本质的动力学. 我们可以用来解决这个问题的一个工具是一种称为截面或庞加莱截面的技术. 22

矛盾的是, 事实证明, 通过丢弃关于轨迹的大部分计算信息, 我们获得了关于轨迹特征及其与其他轨迹关系的重要新信息. 截面是通过观察轨迹或一组轨迹与相空间中平面的连续交点来生成的. 通常, 该平面由一个坐标轴和规范共轭动量轴张成. 我们将看到以这种方式制作的截面具有良好的性质. 这些截面上生成的点集揭示了关于轨迹性质和各种类型轨迹之间关系的重要定性信息. 23 截面揭示了两种性质不同的运动类型: 规则运动和混沌运动. 混沌运动的一个基本特征是初始邻近轨迹随时间指数分离; 规则轨迹的分离是线性的. 24 这两种类型的轨迹被发现聚集在规则运动区域和混沌运动区域中.

4.6.1. 3.6.1 周期驱动系统的庞加莱截面

对于周期驱动系统, 截面是演化的频闪视图; 我们只考虑系统在频闪时刻的状态, 频闪周期等于驱动周期. 我们通过计算多个轨迹并累积每个轨迹在驱动经过某个特定相位时的相空间坐标来生成周期驱动系统的截面. 设 T 是驱动的周期, 那么对于每个轨迹, 截面积累相空间点 \((q(t), p(t))\), \((q(t+T), p(t+T))\), \((q(t+2T), p(t+2T))\) 等等(见图 3.11). 对于一个系统

4.6.2. 3.6.2 计算频闪截面

我们已经有了摆的系统导数, 我们可以用它来构造一个参数映射, 用于构造庞加莱截面.

(define (driven-pendulum-map m l g A omega)
  (let ((advance (state-advancer H-pend-sysder m l g A omega))
        (map-period (/ 2pi omega)))
    (lambda (theta ptheta return fail)
      (let ((ns (advance
                 (up 0 theta ptheta)     ; initial state
                 map-period)))           ; integration interval
        (return ((principal-value pi) (coordinate ns))
                (momentum ns))))))

映射过程接受两个截面坐标(这里是 theta 和 ptheta)和两个" 继续" 过程. 如果给定的截面坐标在映射的定义域内, 它会产生两个新的截面坐标并将它们传递给 return 继续过程, 否则映射过程调用 fail 继续过程, 不带参数. 28

映射的轨迹可以通过" 交互式" 界面进行探索. 过程 explore-map 允许我们使用指向设备选择轨迹的初始条件. 例如, 图 3.12 中的截面是通过绘制多个轨迹生成的, 使用指针选择初始条件, 程序如下:

(define win (frame -pi pi -20 20))
(let ((m 1.0)              ;m=1kg
      (l 1.0)              ;l=1m
      (g 9.8)             ;g=9.8m/s^2
      (A 0.05))            ;A=1/20m
  (let ((omega0 (sqrt (/ g l))))
    (let ((omega (* 4.2 omega0)))
      (explore-map
       win
       (driven-pendulum-map m l g A omega)
       1000))))           ;1000 points for each ic

4.6.3. 练习 3.10: 有趣的相图

选择一个你好奇并且可以用周期驱动驱动的单自由度动力学系统. 构造一个像我们为驱动摆制作的那种映射, 并进行一些探索. 是否存在混沌区域? 所有的混沌区域都连接在一起吗?

4.6.4. 3.6.3 自治系统的庞加莱截面

我们已经说明了使用庞加莱截面来可视化具有周期驱动的单自由度系统的相空间定性特征, 但这个想法更具普遍性. 这里我们展示 Hénon 和 Heiles 如何使用截面来阐明自治系统的性质.

4.6.5. Hénon-Heiles 背景

在 60 年代初, 天文学家遇到了困难. 对银河系附近恒星运动的仔细测量使得能够确定某些特定的统计平均值, 而这些平均值完全出乎意料. 具体来说, 计算的是速度弥散: 速度与平均值的均方根偏差. 我们用尖括号表示附近恒星的平均值: \( \langle w \rangle \) 是某个量 w 对星群的平均值. 平均速度是 \( \langle \dot{\mathbf{x}} \rangle \). 速度弥散的分量是

\begin{align*} \sigma_x &= \langle (\dot{x} - \langle \dot{x} \rangle)^2 \rangle^{1/2} \\ \sigma_y &= \langle (\dot{y} - \langle \dot{y} \rangle)^2 \rangle^{1/2} \\ \sigma_z &= \langle (\dot{z} - \langle \dot{z} \rangle)^2 \rangle^{1/2}. \end{align*}

如果我们使用柱极坐标 \((r, \theta, z)\) 并将坐标轴与银河系对齐, 使 z 垂直于银道面, r 随距银河系中心的距离增加, 那么速度弥散的两个特定分量是:

\begin{align*} \sigma_z &= \langle (\dot{z} - \langle \dot{z} \rangle)^2 \rangle^{1/2} \\ \sigma_r &= \langle (\dot{r} - \langle \dot{r} \rangle)^2 \rangle^{1/2}. \end{align*}

当时的预期是这两个速度弥散分量应该相等. 事实上, 发现它们相差约 2 倍: \(\sigma_r \approx 2\sigma_z\). 问题出在哪里? 当时的文献中对于可能出错的地方有很多讨论. 是观测选择效应的问题吗? 速度测量不正确吗? 用于推导预期比率的假设没有得到充分满足吗? 例如, 推导假设银河系近似轴对称. 也许银河势的非轴对称分量是罪魁祸首. 结果发现问题要深刻得多. 对运动的理解是错误的. 让我们回顾一下预期关系推导. 我们希望对银河系中恒星的分布给出一个统计描述. 我们引入相空间分布函数 \(f(\mathbf{x}, \mathbf{p})\), 它给出了在位置 \(\mathbf{x}\) 处找到动量为 \(\mathbf{p}\) 的恒星的概率密度. 29 将此密度在某个有限的相空间体积上积分, 得到在该相空间体积内(在指定动量区域内的空间区域中)找到恒星的概率. 我们假设概率密度是归一化的, 因此在整个相空间上的积分给出单位概率; 恒星肯定在某个地方并且具有某个动量. 用 f 表示, 某个动力学量 w 在某个相空间体积 V 上的统计平均值就是 \[ \langle w \rangle_V = \int_V fw \] 其中积分遍及相空间体积 V. 在计算某个点 \(\mathbf{x}\) 处速度弥散时, 我们将通过对所有动量进行积分来计算平均值.

单个恒星在星系其余部分的引力势中运动. 假设星系中恒星的整体分布不随时间变化, 或变化非常缓慢, 这是合理的. 星系中恒星的密度实际上非常小, 恒星之间的近距离接触非常罕见. 因此, 我们可以将星系的引力势建模为固定的外部势, 单个恒星在其中运动. 银河系近似轴对称. 我们假设偏离精确轴对称性的影响不显著, 因此我们将模型势取为精确轴对称. 考虑一个点质量(恒星)在轴对称势(银河系)中的运动. 在柱极坐标中, 哈密顿量是 \[ T + V = \frac{1}{2m} \left( p_r^2 + \frac{p_\theta^2}{r^2} + p_z^2 \right) + V(r, z), \] 其中 V 不依赖于 θ. 由于 θ 没有出现, 我们知道共轭动量 \(p_\theta\) 是常数. 对于任何特定恒星的运动, 我们可以将 \(p_\theta\) 视为参数. 因此, 有效哈密顿量具有两个自由度 \[ \frac{1}{2m} \left( p_r^2 + p_z^2 \right) + U(r, z) \] 其中 \[ U(r, z) = V(r, z) + \frac{p_\theta^2}{2mr^2}. \] 哈密顿量是时间无关的, 所以能量 E 的值是守恒的. 因此, 我们有运动常数 E 和 \(p_\theta\).

Jeans 定理断言分布函数 f 只依赖于运动积分的值. 也就是说, 我们可以引入一个不同的分布函数 \(f'\), 它代表相同的物理分布 \[ f'(E, p_\theta) = f(\mathbf{x}, \dot{\mathbf{x}}). \] 有充分的理由相信这可能是正确的. 首先, 很明显分布函数至少肯定依赖于 E 和 \(p_\theta\). 问题是" 给定能量 E 和角动量 \(p_\theta\), 允许什么样的运动? " 积分明确地限制了演化. 演化是否会将系统带到受这些已知约束限制的相空间中的任何地方? 在 20 世纪初, 这似乎是合理的. 统计力学是成功的, 而统计力学正是做了这样的假设. 也许还存在其他运动积分, 但我们尚未发现? 庞加莱证明了一个关于运动积分的重要定理. 庞加莱证明了动力学系统的大多数积分通常在系统受到微扰时不会持续存在. 也就是说, 如果对一个问题添加一个小的微扰, 那么原始问题的大多数积分在受扰问题中没有类似物. 积分被破坏了. 当然, 由系统对称性产生的积分, 如果受扰系统具有相同的对称性, 则继续保持守恒. 因此, 角动量在施加任何轴对称微扰时继续守恒. 庞加莱定理是正确的, 但接下来的结论不是. 作为庞加莱定理的一个推论, 费米在 1920 年发表了一个遍历定理的证明,

4.6.6. Hénon 和 Heiles 系统

我们已经看到, 研究点质量在轴对称势能中的运动简化为研究在 r 和 z 中具有势能 U(r, z) 的约化二自由度问题. Hénon 和 Heiles 选择研究一个

4.6.7. 3.6.4 非轴对称陀螺

我们已经看到, 轴对称陀螺的运动基本上可以求解. 倾斜角变化率对倾斜角的图是一个简单的闭合曲线. 其他描述构型的角度的演化可以通过求积得到, 一旦倾斜运动被求解. 现在让我们考虑一个非轴对称陀螺. 非轴对称陀螺是具有三个不等惯量矩的陀螺. 枢轴不在质心处, 因此均匀引力施加扭矩. 我们假设枢轴和质心之间的连线是主轴之一, 我们将其设为 ˆc. 垂直轴没有扭矩, 因此角动量的垂直分量是守恒的. 如果我们用欧拉角写出哈密顿量, 则对应于绕垂直轴旋转的角度 φ 不出现. 因此与此角度共轭的动量

是守恒的. 非平凡的自由度是 θ 和 ψ, 以及它们的共轭动量.

我们可以为此问题制作一个截面(见图 3.22), 方法是在 ψ=0 时显示 pθ 对 θ 的值. 对于给定的能量和 pφ 值, 通常存在两个可能的 pψ 值. 我们只绘制在穿越时 pψ 值较大的点. 这使得截面上的点唯一对应于一条轨迹.

在这个截面中, 有一个大的准周期岛屿, 围绕着一个不动点, 该不动点对应于清醒轴对称陀螺的倾斜平衡点(见图 3.7). 围绕它的是一个大的混沌区, 从 θ=0 延伸到接近 π 的角度. 如果这个陀螺最初放置在接近垂直的位置, 它会表现出混沌运动, 使其倾斜到很大的角度. 如果陀螺在准周期岛内启动, 则倾斜是稳定的.

4.7. 3.7 指数发散

Hénon 和 Heiles 发现混沌轨迹对初始条件的微小变化表现出显著的敏感性–初始邻近的混沌轨迹随时间大致呈指数分离. 另一方面, 规则轨迹不表现出这种敏感性–初始邻近的规则轨迹随时间大致呈线性分离.

考虑 Hénon-Heiles 问题能量 E=1/8 的两个初始邻近轨迹的演化. 设 d(t) 是两个轨迹在时间 t 时在 x, y, px, py 空间中的通常欧几里得距离. 图 3.23 显示了 d(t)/d(0) 的常用对数作为时间 t 的函数. 我们看到发散很好地被描述为指数的.

另一方面, 两个初始邻近规则轨迹之间的距离增长得慢得多. 图 3.24 显示了两个规则轨迹之间距离随时间的变化. 距离呈线性增长.

哈密顿系统具有如此截然不同类型的轨迹是值得注意的. 在截面上, 混沌轨迹和规则轨迹在其探索的空间维度上有所不同. 非常有趣的是, 伴随着这种维度差异, 混沌轨迹和规则轨迹的分离方式存在巨大差异. 对于更高维度的系统

截面技术不那么有用, 但轨迹仍然通过邻近轨迹发散的方式来区分: 一些呈指数发散, 而另一些则近似线性发散. 指数发散是混沌行为的标志.

指数发散率由 \(\log(d(t)/d(0))\) 图的斜率量化. 我们可以通过选择一个邻近轨迹 σ' 并计算 \[ \gamma(t) = \frac{\log(d(t)/d(t_0))}{t - t_0}, \] 来估计特定相空间轨迹 σ 的指数发散率, 其中 \(d(t) = \|\sigma'(t) - \sigma(t)\|\). 这种方法, 即" 双轨迹" 方法, 存在一个问题, 如图 3.23 所示. 对于强混沌轨迹, 两个初始邻近的轨迹很快就会发现自己尽可能地远离. 一旦发生这种情况, 距离就不再增长. 轨迹发散率的估计受到这种" 饱和" 的限制.

我们可以通过研究变分方程组来改进这种方法. 设 \[ Dz(t) = F(t, z(t)) \] 是控制系统演化的方程组. 一个邻近的轨迹 z' 满足 \[ Dz'(t) = F(t, z'(t)). \] 这些轨迹之间的差 ζ = z' - z 满足 \[ D\zeta(t) = F(t, z'(t)) - F(t, z(t)) = F(t, z(t) + \zeta(t)) - F(t, z(t)). \] 如果 ζ 很小, 我们可以用导数近似右侧 \[ D\zeta(t) = \partial_1 F(t, z(t)) \zeta(t). \]

4.8. 3.8 刘维尔定理

如果一个状态系综在某一时刻占据相空间中的特定体积, 那么该体积在哈密顿方程描述的流下的后续演化可能会扭曲系综, 但不会改变系综占据的体积. 相空间体积被相流守恒这一事实称为刘维尔定理. 我们将首先用一个简单的例子来说明相空间体积的守恒, 然后进行一般性的证明.

4.8.1. 摆的相流

考虑由哈密顿量描述的无驱动摆: \[ H(t, \theta, p_\theta) = \frac{p_\theta^2}{2l^2 m} + glm \cos\theta. \] 在图 3.25 中, 我们看到一个围绕 θ 轴上一点的椭圆区域在摆的振荡区域内的演化. 图中显示了该区域的三个后续位置. 该区域被流拉伸和剪切, 但面积保持不变. 经过许多周期后, 起始区域将被拉伸成分布在摆相角上的薄层. 图 3.26 显示了跨越不稳定平衡点附近分界线33的区域的类似演化(对于较小的时间间隔). 相空间区域沿着分界线迅速拉伸, 同时保持面积. 从振荡区域(分界线内部)开始的初始条件将继续扩展成薄环形区域, 而从分界线外部开始的初始条件将扩展成旋转的薄区域.

4.8.2. 刘维尔定理的证明

考虑一组形式为 \[ Dz(t) = F(t, z(t)), \] 的常微分方程, 其中 z 是 N 个状态变量的元组. 设 R(t₁) 是时间 t₁ 时状态空间的一个区域. 该区域的每个元素都是系统的初始

4.8.3. 练习 3.11: 行列式和迹

证明方程 (3.148) 是正确的.

4.8.4. 频闪截面的面积保持

对于周期驱动的哈密顿系统, 如果截面坐标是相空间坐标和动量, 则截面是保面积的. 这是截面的一个重要特征. 它是一自由度问题刘维尔定理的一个推论. 对于 Hénon-Heiles 问题的截面, 情况也是如此, 它们是保面积的, 但我们现在还没准备好证明这一点!

4.8.5. 庞加莱复现

刘维尔定理有一个显著的定理作为其平凡推论–庞加莱复现定理. 粗略地说, 该定理指出几乎所有轨迹最终都会任意接近其起点. 无论轨迹是混沌的还是规则的, 这都成立.

更精确地说, 考虑一个相空间是有界域 D 的哈密顿动力学系统. 我们确定相空间中的某个初始点, 比如 z₀. 那么, 对于我们选择的 z₀ 的任何有限邻域 U, 都存在从该邻域中的初始点出发并最终返回该邻域的轨迹.

我们可以通过考虑 U 在时间演化下的连续像来证明这一点. 为简单起见, 我们限制考虑时间间隔 Δ 的时间演化. 时间间隔 Δ 的演化生成的相空间到自身的映射我们称为 C. 映射的后续应用生成离散时间演化. 相空间中点集的变换通过演化集合中的所有点; 集合 U 的像是 C(U). 现在考虑集合 U 的轨迹, 即集合 \(C^n(U)\), 其中 \(C^n\) 表示 C 的 n 次复合. 现在有两种可能性: 要么连续的像 \(C^i(U)\) 相交, 要么不相交. 如果不相交, 那么每次迭代都会" 用掉" D 中等于 U 体积的体积, 并且不能属于更远的像. 但是 D 的体积是有限的, 所以我们不能在其中放入无限多个不相交的有限体积. 因此, 经过一定次数的迭代后, 这些像必须相交. 假设, 为了确定起见, \(C^i(U)\) 与 \(C^j(U)\) 相交, 其中 j < i. 那么它们各自的原像也必须相交, 因为交点中点的原像属于两个集合. 因此 \(C^{i-1}(U)\) 与 \(C^{j-1}(U)\) 相交. 这可以继续下去, 直到最后我们得到 \(C^{i-j}(U)\) 与 U 相交. 所以我们证明了经过 C 的 i-j 次迭代后, 存在一组最初在 U 中的点返回到邻域 U.

4.8.6. 房间角落的气体

假设我们有一个完全密封的房间里 N 个经典原子的集合. 这个系统的相空间维数是 6N. 这个相空间中的一个点表示为 z. 假设最初所有的原子都在, 比如说, 一个角落的一厘米范围内, 具有任意选择的有限速度. 这对应于相空间中的某个初始点 z₀. 系统的相空间在空间上受盒子限制, 在动量上受能量守恒限制; 相空间是有界的. 那么复现定理表明, 在 z₀ 的邻域内存在系统的初始条件, 它会在某个时间后返回到 z₀ 的邻域. 对于单个原子来说, 这意味着在某个时间后, 所有的原子将再次出现在房间的角落里, 并且一次又一次地出现. 这让人对热力学第二定律产生疑问, 不是吗? 34

4.8.7. 哈密顿系统中吸引子的不存在性

一些系统具有吸引子. 吸引子是相空间中吞噬轨迹体积的一个区域. 对于一个吸引子, 存在一个更大的区域, 即吸引盆, 使得具有非零体积的轨迹集合最终进入吸引子并且永不离开. 复现定理表明, 具有有界相空间的哈密顿系统没有吸引子. 考虑吸引盆中的某个候选体积. 复现定理保证候选体积中的一些轨迹会重复返回该体积. 因此, 该体积不在吸引盆中. 在具有有界相空间的哈密顿系统中不存在吸引子.

这并不意味着每个轨迹总是返回. 一个简单的例子是摆. 假设我们取一团跨越分界线的轨迹, 即渐近接近摆指向上方的不稳定平衡点的轨迹. 能量比分界线高的轨迹会绕一整圈并返回其初始点; 能量比分界线低的轨迹会振荡一次来回并回到其初始位置; 但分界线轨迹本身永久地离开初始区域, 并持续接近不稳定点.

4.8.8. 耗散系统中的相体积守恒

耗散系统的定义并不那么清晰. 对某些人来说, " 耗散" 意味着相空间体积不守恒, 这与说系统的演化不由哈密顿方程控制是相同的. 对另一些人来说, " 耗散" 意味着存在摩擦: 代表能量损失到未建模的自由度. 这里有一个奇怪的例子. 阻尼谐振子是耗散系统的典范. 这里我们证明阻尼谐振子可以用哈密顿方程描述, 并且相空间体积是守恒的. 阻尼谐振子由常微分方程控制 \[ mD^2 x + \alpha Dx + kx = 0 \]

其中 α 是阻尼系数. 我们可以用拉格朗日量35来表述这个系统 \[ L(t, x, \dot{x}) = \left(\frac{m}{2}\dot{x}^2 - \frac{k}{2}x^2\right) e^{\frac{\alpha}{m}t}. \] 这个拉格朗日量的拉格朗日方程是 \[ (mD^2 x + \alpha Dx + kx) e^{\frac{\alpha}{m}t} = 0. \] 由于指数项永不为零, 这个方程与上面的方程 (3.155) 具有相同的轨迹. 与 x 共轭的动量是 \[ p = m\dot{x} e^{\frac{\alpha}{m}t}, \] 哈密顿量是 \[ H(t, x, p) = \left(\frac{1}{2m} p^2\right) e^{-\frac{\alpha}{m}t} + \left(\frac{k}{2} x^2\right) e^{\frac{\alpha}{m}t}. \] 对于这个系统, 哈密顿量不是弹簧中质量运动的动能和势能之和. 哈密顿量的值不守恒 (\(\partial_0 H \neq 0\)). 哈密顿方程是

\begin{align*} Dx(t) &= \frac{p(t)}{m} e^{-\frac{\alpha}{m}t} \\ Dp(t) &= -kx(t) e^{\frac{\alpha}{m}t}. \end{align*}

让我们考虑一个数值例子. 设 m=5, k=1/4, α=3. 这里线性常系数常微分方程 (3.155) 的特征根是 s = -1/10, -1/2. 因此解是 \[ \begin{pmatrix} x(t) \\ p(t) \end{pmatrix} = \begin{pmatrix} e^{-\frac{1}{10}t} & e^{-\frac{1}{2}t} \\ -\frac{1}{2}e^{\frac{1}{2}t} & -\frac{5}{2}e^{-\frac{1}{10}t} \end{pmatrix} \begin{pmatrix} A_1 \\ A_2 \end{pmatrix}, \] 对于由初始条件决定的 A₁ 和 A₂: \[ \begin{pmatrix} x(0) \\ p(0) \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ -\frac{1}{2} & -\frac{5}{2} \end{pmatrix} \begin{pmatrix} A_1 \\ A_2 \end{pmatrix}. \]

4.8.9. 练习 3.12: 时变系统

为了更具体地说明刘维尔定理对时变系统也成立, 扩展 3.8 节的结果, 展示一个初始点群在驱动摆相空间中勾勒出的区域如何随其演化而变形. 构造类似于图 3.25 和 3.26 的图, 用于我们有截面的有趣情况之一. 相空间不同部分的畸变看起来是否不同? 如何不同?

4.8.10. 分布函数

我们只近似地知道一个系统的状态. 用概率密度函数来模拟我们的知识状态是合理的. 给定这种不完全的知识, 可能的后果是什么? 随着系统的演化, 密度函数也随之演化. 刘维尔定理为我们处理这类问题提供了一个工具. 设 f(t, q, p) 是时间 t 时相空间上的概率密度函数. 要成为一个好的概率密度函数, 我们要求 f 在所有坐标和动量上的积分为 1–系统肯定在某个地方.

在任何特定时刻, 相空间的特定区域都有一组轨迹穿过. 这些轨迹既不被创造也不被毁灭, 它们作为一个束从一个区域行进到稍后时间的另一个相空间区域. 刘维尔定理告诉我们源区域的体积与目标区域的体积相同, 所以密度必须保持不变. 因此 \(D(f \circ \sigma) = 0\). 如果我们有一个由哈密顿量 H 描述的系统, 那么 \[ D(f \circ \sigma) = \partial_0 f \circ \sigma + \{f, H\} \circ \sigma. \] 所以我们可以得出结论 \[ \partial_0 f \circ \sigma + \{f, H\} \circ \sigma = 0. \] 这个线性偏微分方程控制着密度函数的演化, 从而显示了我们的知识状态如何演化.

4.9. 3.9 标准映射

我们已经看到, 许多不同问题的截面在性质上非常相似. 它们都显示出两种性质不同的运动类型: 规则运动和混沌运动. 它们表明这些类型的轨道是聚集的; 截面上存在主要由规则轨迹组成的区域, 以及由混沌行为主导的其他区域. 我们还看到, 随着某个参数的变化, 会发生向大尺度混沌行为的转变. 现在我们已经了解到, 将点从二维截面映射到新点的映射是保面积的. 这些截面到自身映射共同的唯一性质(就我们目前所知)是它们保持面积. 否则它们是相当不同的. 假设我们考虑一个截面到自身的抽象映射, 它是保面积的, 而不考虑该映射是否由某个动力学系统生成. 保面积映射是否显示出类似的现象, 或者映射的动力学起源对于我们发现的现象至关重要? 36

4.9.1. 练习 3.13: 有趣的 Henon 二次映射

考虑由以下方程定义的平面映射:

\begin{align*} x' &= x \cos \alpha - (y - x^2) \sin \alpha \\ y' &= x \sin \alpha + (y - x^2) \cos \alpha \end{align*}

a. 证明该映射保持面积. b. 将该映射实现为一个过程. 有趣的 x 和 y 范围是 (-1, 1). 会存在逃逸的轨道. 你应该检查逃逸出这个范围的 x 和 y 值, 并在发生这种情况时调用 fail 继续. c. 探索该映射对于几个参数 α 值的相图. 该映射在 α = 1.32 和 α = 1.2 时特别有趣. 两者之间发生了什么?

4.10. 3.10 总结

拉格朗日方程是一个包含时间, 广义坐标, 广义速度和广义加速度的 n 个二阶常微分方程组. 轨迹由某个时刻的坐标和速度确定.

哈密顿方程将动力学指定为一个包含时间, 广义坐标和共轭动量的一阶常微分方程组. 相空间轨迹由某个时刻相空间中的一个初始点确定.

哈密顿表述和拉格朗日表述是等价的, 因为等价的初始条件产生相同的构型路径.

如果问题存在一个自然表达为循环坐标的对称性, 则共轭动量是守恒的. 在哈密顿表述中, 这种对称性自然导致

问题困难部分的相空间维数减少. 如果存在足够的对称性, 那么确定时间演化的问题可能简化为定积分的求值(简化为求积).

没有足够对称性可简化为求积的系统可以通过截面技术有效研究. 这对于约化问题具有两个自由度或具有显式周期性时间依赖性的一个自由度的系统特别有利.

截面揭示了相空间中巨大的结构. 存在混沌区和规则行为岛屿. 随着参数在大多规则运动到大多混沌运动之间变化, 存在有趣的转变.

混沌轨迹表现出对初始条件的敏感依赖性, 与邻近轨迹呈指数分离. 规则轨迹不表现出这种敏感性. 奇怪的是, 混沌轨迹既通过它们探索的空间维度, 也通过它们的指数发散来区分.

2n 维相空间区域的时间演化保持体积. 哈密顿流是" 相流体" 的" 不可压缩" 流.

两个自由度系统和周期驱动的一自由度系统的截面是保面积的. 相平面到自身的抽象保面积映射显示出与动力学系统生成的截面相同的相空间划分为混沌区和规则区. 它们也显示出向大尺度混沌的转变.

4.11. 3.11 项目

4.11.1. 练习 3.14: 周期驱动摆

使用截面方法探索驱动摆的动力学. 我们感兴趣的是探索各种现象发生的参数空间区域. 考虑一个摆长 9.8m, 质量 1kg, 重力加速度 \(g = 9.8 \text{ms}^{-2}\), 给出 \(\omega_0 = 1 \text{rad/s}\). 探索周期驱动的振幅 A 和频率 ω 的参数平面. 要研究的现象示例: a. 倒置平衡点. 显示倒置平衡点稳定的参数空间 (A, ω) 区域. 如果倒置平衡点稳定, 则存在一定的稳定性范围, 即存在一个最大的平衡点位移角度, 稳定振荡能够达到. 如果你有足够的时间, 绘制参数空间中不同稳定区域振幅的等高线. b. 正常平衡点的周期倍增. 对于这种情况, 绘制稳定和不稳定平衡点的角动量作为给定振幅下频率的函数. c. 向大尺度混沌的过渡. 显示参数空间 (A, ω) 的区域, 其中三个主要共振岛周围的混沌区域相连.

4.11.2. 练习 3.15: 自旋-轨道截面

编写一个程序来计算自旋-轨道问题的截面, 截面点在近心点处记录. 研究以下内容: a. 给出 2.11.2 节中引入的自旋-轨道问题的哈密顿表述. b. 对于外圆度参数 \(\epsilon = 0.1\) 和偏心率 \(e = 0.1\), 测量与 1:1, 3:2 和 1:2 共振相关的规则岛屿的宽度. c. 对于固定的 \(e = 0.1\), 探索一系列 \(\epsilon\) 值的截面. 估计临界值 \(\epsilon\), 当其超过该值时, 围绕 3:2 和 1:1 共振岛的主要混沌区域合并. d. 对于固定的偏心率 \(e = 0.1\), 追踪与 1:1 共振相关的稳定和不稳定不动点在截面上的位置, 作为外圆度 \(\epsilon\) 的函数.

5. 第四章相空间结构

当我们试图表示由这两条曲线及其无限多个交点构成的图形时, 每个交点对应一个双渐近解, 这些交点形成一种格架, 组织或网格, 带有无限锯齿状的网格. 这两条曲线都绝不能再次与自身相交, 但它必须以一种非常复杂的方式回折自身, 以便以无限多次的方式穿过网格的所有网格. 这个图形的复杂性将是惊人的, 我甚至不会尝试去画它.

Henri Poincaré <天体力学新方法>, 第三卷, 第三十三章, 第 397 节, (1892).

我们已经看到, 作为各种系统庞加莱截面的一部分, 出现了相当复杂的特征. 我们看到了不动点, 不变曲线, 共振岛和混沌区, 在诸如驱动摆, 非轴对称陀螺, Hénon-Heiles 系统以及卫星的自旋-轨道耦合等不同系统中都存在. 实际上, 即使在标准映射中, 即没有连续过程被截面采样的情况下, 相空间也显示出类似的特征.

其他系统的运动则更简单. 对于某些系统, 守恒量可以用来将解简化为定积分的求值. 轴对称陀螺就是一个例子. 两个对称性意味着存在两个守恒动量, 而哈密顿量的时间无关性意味着能量守恒. 利用这些守恒量, 确定运动简化为求值倾斜角作为时间函数的周期运动的定积分. 这样的系统不表现出混沌行为; 在截面上, 守恒量约束点落在曲线上. 我们可以推测, 如果截面上的点不明显落在

曲线上, 那么就不存在足够数量的守恒量将解简化为求积.

我们已经看到许多实例, 其中随着附加效应的加入, 系统的行为发生了质的变化. 自由刚体可以简化为求积, 但在自旋-轨道系统中加入引力梯度力矩会产生规则运动和混沌运动的熟悉混合. 轴对称陀螺的运动也可以简化为求积, 但如果陀螺被制成非轴对称, 则会出现混合相空间. Hénon 和 Heiles 研究的系统, 具有经典的混合相空间, 可以被认为是具有非线性耦合项的可解谐振子对. 摆是可解的, 但驱动摆具有混合相空间.

我们观察到, 随着附加效应的开启, 相空间发生了质的变化. 共振岛出现, 混沌区出现, 一些不变曲线消失, 但其他曲线持续存在. 为什么会出现共振岛? 混沌行为是如何产生的? 不变曲线何时持续存在? 我们能得出任何一般性结论吗?

5.1. 4.1 混合相空间的出现

我们可以通过考虑附加效应通过改变参数而开启的系统, 来获得对这些行为质变的洞察力. 对于某个参数值, 系统具有足够数量的守恒量可简化为求积; 当我们改变参数远离该值时, 我们可以研究混合相空间是如何出现的. 驱动摆提供了一个此类系统的原型示例. 如果驱动幅度为零, 则驱动摆的解与无驱动摆的解相同. 我们已经看到了强驱动摆的截面, 说明了混合相空间. 在这里, 我们缓慢地增加驱动幅度, 并研究相图如何变化.

零驱动幅度时驱动摆的运动与无驱动摆相同. 摆的运动在 3.3 节中已有描述. 能量是守恒的, 因此所有轨道都是相平面中的哈密顿量等值线(见图 4.1). 相平面有三个区域, 具有性质不同的运动类型: 摆振荡的区域, 摆向一个方向循环的区域, 以及向另一个方向循环的区域. 在振荡区域的中心有一个稳定平衡点, 此时摆静止悬挂. 在这些区域的边界上, 摆渐近于不稳定的平衡点, 此时摆直立. 存在两条渐近轨迹, 对应于接近平衡点的两种方式. 它们中的每一个在时间上向后也渐近于不稳定的不动点.

5.1.1. 零驱动时的驱动摆截面

现在考虑周期驱动摆, 但驱动幅度为零. 驱动摆的状态由角度坐标, 其共轭动量和周期驱动的相位指定. 在零驱动幅度下, " 驱动" 摆的演化与无驱动摆相同. 驱动的相位不影响演化, 但我们将驱动的相位视为状态的一部分, 以便我们可以给出一个统一的描述, 允许我们将零驱动幅度情况与非零驱动幅度情况包括在内.

对于驱动摆, 我们制作频闪截面, 通过在驱动周期采样状态, 并绘制角动量对角度(见图 4.2). 对于零驱动幅度, 截面点被限制在无驱动摆轨迹所描绘的曲线上. 对于我们在单自由度问题中看到的每种轨道, 都存在驱动摆的轨道, 在截面上生成相应的点模式.

摆的两个静止轨道在其平衡点处表现为截面上的点. 平衡点是庞加莱映射的不动点.

摆的振荡轨道的截面点落在哈密顿量的相应等值线上. 摆的循环轨道的截面点同样被限制在哈密顿量的相应等值线上. 我们注意到, 由不同等值线上的轨道生成的点的外观是不同的. 通常, 如果我们收集更多截面上的点, 这些点最终会填满等值线. 然而, 实际上存在两种可能性. 记住, 摆的周期对于不同的轨迹是不同的. 如果摆的周期与驱动的周期成公比, 那么截面上只会出​​现有限数量的点. 如果两个周期成公比, 即一个是另一个的有理数倍. 如果两个周期不成公比, 那么截面点永远不会重复. 事实上, 这些点会密集地填充等值线, 任意接近等值线上的每个点.

摆的渐近轨迹的截面点落在包含鞍点的哈密顿量等值线上. 每个渐近轨道生成一系列累积在不动点附近的孤立点. 没有单个轨道填充截面上的分界线.

5.1.2. 小驱动时的驱动摆截面

现在考虑小驱动幅度时的截面(见图 4.3). 驱动幅度为 A = 0.001m; 驱动频率为 4.2ω₀, 其中 \( \omega_0 = \sqrt{g/l} \). 截面的整体外观与零驱动幅度截面相似. 许多轨道似乎位于与零驱动情况下的不变曲线类似的不变曲线上. 然而, 存在几个新特征.

现在存在对应于摆与驱动同步旋转的共振区域. 这些特征出现在截面的上部和下部循环区域. 每个岛都有一个不动点, 对于该不动点, 摆正好每个驱动周期旋转一次. 一般来说, 截面上的不动点对应于完整相空间中系统的周期运动. 不动点位于 ±π 处, 表明摆在截面相位处是垂直的. 对于远离不动点的共振区域中的轨道, 截面上的点显然生成围绕不动点的曲线

5.2. 4.2 不动点的线性稳定性

定性变化与截面上的不动点相关联. 当驱动开启时, 混沌区出现在无驱动系统分界线上的不动点处, 并且我们观察到与共振岛相关的新不动点的出现. 这里我们研究系统在不动点附近的行​​为. 我们可以区分动力学系统的两种类型的不动点. 存在控制演化的微分方程的不动点. 这些是系统的平衡点. 也存在截面上的不动点. 这些要么是平衡点, 要么是系统的周期轨道.

5.2.1. 4.2.1 微分方程的平衡点

首先考虑微分方程组不动点的情况. 如果系统最初处于平衡点, 系统将保持在那里. 那么系统在这样一个平衡点附近的点的演化情况如何呢? 这实际上

是一个非常困难的问题, 尚未完全解决. 然而, 我们可以通过研究平衡点附近微分方程的线性近似的演化来了解很多关于系统在平衡点附近的运动. 这部分很容易, 是线性稳定性分析的主题. 稍后, 我们将讨论线性分析对实际问题的意义. 考虑一个常微分方程组 \[ Dz(t) = F(t, z(t)), \] 其分量为 \[ Dz^i(t) = F^i(t, z^1(t), \dots, z^n(t)) \] 其中 n 是状态空间的维数. 该方程组的平衡点 \(z_e\) 是状态导数为零的点: \[ 0 = F(t, z_e). \] 对于平衡解, 这在所有时刻都为零, 意味着 \(\partial_0 F(t, z_e) = 0\). 接下来考虑一条靠近平衡点的状态路径 z'. 路径位移 ζ 定义为在时间 t 时 \[ z'(t) = z_e + \zeta(t). \] 我们有 \[ D\zeta(t) = Dz'(t) = F(t, z_e + \zeta(t)). \] 如果 ζ 很小, 我们可以将右侧写成 ζ 的泰勒级数: \[ D\zeta(t) = F(t, z_e) + \partial_1 F(t, z_e) \zeta(t) + \dots, \] 但第一项为零, 因为 \(z_e\) 是平衡点, 所以 \[ D\zeta(t) = \partial_1 F(t, z_e) \zeta(t) + \dots. \]

如果 ζ 很小, 演化由线性项近似. 线性稳定性分析研究近似方程的演化 \[ D\zeta(t) = \partial_1 F(t, z_e) \zeta(t). \] 这些是变分方程 (3.140), 其中平衡解作为参考轨迹代入. 线性化系统解与完整系统解的关系是一个困难的数学问题, 尚未完全解决.

如果我们限制关注自治系统 (\(\partial_0 F = 0\)), 那么平衡点处的变分方程是具有常系数的线性常微分方程组. 2 这样的系统可以解析求解. 为了简化记法, 令 \(M = \partial_1 F(t, z_e)\), 所以 \[ D\zeta(t) = M \zeta(t). \] 我们寻找形式为 \[ \zeta(t) = \alpha e^{\lambda t}, \] 的解, 其中 α 是与 ζ 具有相同分量数的结构常数. 代入, 我们发现 \[ \lambda \alpha e^{\lambda t} = M \alpha e^{\lambda t}. \] 指数因子非零, 所以我们发现 \[ M \alpha = \lambda \alpha, \] 这是一个关于特征值 λ 和(归一化)特征向量 α 的方程. 一般来说, 存在 n 个特征值和 n 个特征向量, 所以我们必须在 α 和 λ 上添加下标以指示特定的解. 一般解是这些单个解的任意线性组合. 特征值是特征方程的解 \[ 0 = \det(M - \lambda I) \]

5.2.2. 练习 4.1: 摆

找出摆的两个平衡点(\( \theta = 0 \) 和 \( \theta = \pi \), 两者都 \( p_\theta = 0 \))的特征解的细节. 小幅度振荡频率与特征值有何关系? 特征方向与哈密顿量的等高线有何关系?

5.2.3. 4.2.2 映射的不动点

截面上的不动点对应于系统的平衡点或周期运动. 不动点的线性稳定性分析类似于平衡点的线性稳定性分析.

设 T 是状态空间到自身的映射, 可能由截面生成. 轨迹序列由映射 T 的连续迭代生成. 设 x(n) 是序列的第 n 个点. 映射将轨迹序列的一个点带到下一个点: \(x(n+1) = T(x(n))\). 我们可以用上标表示映射的连续迭代: 所以 \(T^i\) 表示 T 复合 i 次. 例如, \(T^2(x) = T(T(x))\). 因此 \(x(n) = T^n(x(0))\). 4 映射 T 的不动点 x₀ 满足 \[ x_0 = T(x_0). \] 设 x 是初始靠近 x₀ 的某个轨迹, ξ 是与 x₀ 的偏差: \(x(n) = x_0 + \xi(n)\). 轨迹满足 \[ x_0 + \xi(n+1) = T(x_0 + \xi(n)). \] 将右侧展开为泰勒级数, 我们得到 \[ x_0 + \xi(n+1) = T(x_0) + DT(x_0) \xi(n) + \dots, \]

5.2.4. 练习 4.2: 椭圆振荡

证明当 A=0 时, \(\xi_a\) 和 \(\xi_b\) 的任意线性组合描绘出一个椭圆.

5.2.5. 练习 4.3: 标准映射

标准映射(见 3.9 节)在 I=0 处有不动点, 对应 \(\theta=0\) 和 \(\theta=\pi\). 求这两个不动点的完整特征解. 对于参数 K 的哪些范围, 不动点是线性稳定或不稳定的?

5.2.6. 4.2.3 指数之间的关系

对于由流的频闪采样生成的映射, 平衡点是不动点. 流的平衡点的特征解和映射在不动点处的特征解则相关. 设 τ 为采样周期. 那么 \(\rho_i = e^{\lambda_i \tau}\).

李雅普诺夫指数是衡量邻近轨迹与参考轨迹指数发散速率的指标. 如果参考轨迹是流的平衡点, 那么李雅普诺夫指数是线性化特征指数 \(\lambda_i\) 的实部. 如果参考轨迹是由流生成的映射的不动点(要么是周期轨道, 要么是平衡点), 那么李雅普诺夫指数是特征乘子对数实部除以映射周期. 所以如果特征乘子是 \(\rho = e^{A+iB}\), 映射周期是 τ, 那么李雅普诺夫指数是 A/τ. 不动点的正李雅普诺夫指数表示不动点的线性不稳定性.

李雅普诺夫指数比特征乘子或指数包含的信息要少, 因为虚部丢失了. 然而, 李雅普诺夫指数更具普遍适用性, 因为它甚至对于非周期性的参考轨迹也有明确定义.

在不动点的线性分析中, 每个特征指数对应一个可能的线性解子空间. 例如, 对于一个实的特征乘子, 存在一个对应的特征方向, 对于沿此方向的任何初始位移, 后续迭代也沿此方向. 复共轭乘子对对应一个解平面. 对于最初在此平面上的位移, 后续迭代也在此平面上.

事实证明, 对于非不动点的参考轨迹附近的线性化解, 情况也类似. 对于每个非零李雅普诺夫指数, 存在一个扭转子空间, 使得对于该子空间中的初始位移, 后续迭代也属于该子空间. 在参考轨迹上的不同点, 表征该子空间方向的单位位移向量是不同的.

5.2.7. 哈密顿特殊化

对于哈密顿系统, 特征值之间存在额外的约束. 首先考虑二维截面的情况. 我们已经看到哈密顿截面是保面积的. 正如我们在刘维尔定理的证明中看到的, 保面积意味着变换导数的行列式为 1. 在不动点 x₀ 处, 线性化映射是 \(\xi(n+1) = DT(x_0) \xi(n)\). 所以 \(M = DT(x_0)\) 的行列式为 1. 现在行列式是特征值的乘积, 所以对于哈密顿截面上的不动点, 两个特征值必须互为倒数. 我们还有约束

即如果一个特征值是复数, 那么它的复共轭也是特征值. 这两个条件意味着特征值必须要么是实数且互为倒数, 要么是位于单位圆上的复共轭对(见图 4.4).

特征乘子都位于单位圆上的不动点称为椭圆不动点. 线性化变分方程的解围绕不动点描绘椭圆. 椭圆不动点是线性稳定的.

具有正实特征乘子的不动点称为双曲不动点. 对于二维映射, 存在一个指数扩张子空间和一个指数收缩子空间. 一般解是它们的线性组合. 特征乘子为负的不动点称为带反射的双曲点.

两个退化特征乘子的边缘情况称为抛物线型. 对于两个退化特征值, 一般解线性增长. 这发生在椭圆点变为双曲点或反之的分岔点.

对于二维哈密顿映射, 这些是唯一可能性. 对于更高维的哈密顿映射, 我们可以得到它们的组合: 一些特征乘子可以是实的, 另一些可以是复共轭对. 我们可能想象此外, 在更高维度中还会出现许多其他类型的不动点. 事实上, 只存在一种额外的类型, 如图 4.5 所示. 对于任意维度的哈密顿系统, 仍然成立的是, 对于每个特征值, 其复共轭和倒数也是特征值. 我们从将在第 5 章证明的一个结果开始证明这一点. 考虑由哈密顿系统的时间演化生成的相空间到自身的映射. 设 z=(q,p), 那么映射 Tβ 满足 \(z(t+\beta) = T_\beta(z(t))\), 对于哈密顿方程的解 z. 我们将在第 5 章中证明映射 Tβ 的导数是辛的, 无论起点是否为不动点. 一个 2n × 2n 矩阵 M 是辛的, 如果它满足 \[ MJM^T = J, \] 其中 J 是 2n 维辛单位: \[ J = \begin{pmatrix} 0_{n \times n} & 1_{n \times n} \\ -1_{n \times n} & 0_{n \times n} \end{pmatrix}, \] 其中 \(1_{n \times n}\) 是 n × n 单位矩阵, \(0_{n \times n}\) 是 n × n 零矩阵. 利用辛性质, 我们可以证明一般情况下对于每个特征值, 其倒数也是一个特征值. 假设 ρ 是一个特征值, 所以 ρ 满足 \(\det(M - \rho I) = 0\). 如果 M 被其转置替换, 这个方程不变, 所以 ρ 也是 \(M^T\) 的一个特征值: \[ M^T \alpha' = \rho \alpha'. \] 由此我们可以看到 \[ \frac{1}{\rho} \alpha' = (M^T)^{-1} \alpha'. \] 现在, 根据辛性质, 我们有 \[ MJ = J(M^T)^{-1}. \]

所以 \[ MJ\alpha' = J(M^T)^{-1}\alpha' = \frac{1}{\rho} J\alpha', \] 我们可以得出结论, \(1/\rho\) 是 M 的一个特征值, 特征向量为 \(J\alpha'\). 根据对于每个特征值, 其倒数也是一个特征值这一事实, 我们推断变换 M 的行列式, 即特征值的乘积, 为 1.

特征值必须与倒数和复共轭相关联的约束恰好在更高维度中产生了一种新的特征值模式. 图 4.5 显示了唯一可能的新模式.

我们已经看到不动点的李雅普诺夫指数与不动点的特征乘子相关, 所以哈密顿量对乘子的约束对应于不动点处李雅普诺夫指数的哈密顿约束.

对于每个特征乘子, 其倒数也是特征乘子. 这意味着在不动点处, 对于每个正李雅普诺夫指数, 都存在一个具有相同大小的相应负李雅普诺夫指数. 事实证明, 如果参考轨迹不是不动点, 这也成立. 对于哈密顿系统, 对于每个正李雅普诺夫指数, 都存在一个大小相等的相应负指数.

5.2.8. 练习 4.4: 四元组

描述(也许通过绘制横截面)四元组可能产生的轨道.

5.2.9. 线性与非线性稳定性

线性不稳定的不动点表明完整系统在该点不稳定. 这意味着从该不动点附近开始的轨迹会偏离该不动点. 另一方面, 不动点的线性稳定性通常不保证完整系统在该点稳定. 对于二自由度哈密顿系统, Kolmogorov-Arnold-Moser 定理在某些条件下证明了线性稳定性意味着非线性稳定性. 然而, 在更高维度中, 尚不清楚线性稳定性是否意味着非线性稳定性.

5.3. 4.3 同宿缠结

对于驱动摆, 我们观察到随着驱动幅度的增加, 无驱动摆的分界线是出现最显著混沌区域的地方. 这里我们详细研究无驱动摆分界线附近的运动. 结果呈现出一个非常复杂的图像, 最早由 Henri Poincaré 发现. 事实上, Poincaré 声称所呈现的图像是如此复杂, 以至于他甚至不打算去画它. 我们将回顾导致该图像的论证, 并计算其足够多的部分以使我们相信其真实性.

无驱动摆的分界线由两条渐近于不稳定平衡点的轨迹组成. 在零驱动幅度的驱动摆中, 分界线上存在无限多个不同的轨道, 它们由驱动的相位区分. 这些轨道在时间上向前和向后都渐近于不稳定的不动点.

注意, 靠近不稳定不动点, 渐近于不稳定平衡点的点集必须与不动点处的线性变分特征向量相切. (见图 4.6. )在某种意义上, 渐近于不动点的轨道集合是线性化问题中渐近于不动点的轨道集合到非线性问题的扩展.

一般来说, 在时间上向前渐近于不稳定不动点的点集称为该不动点的稳定流形. 在时间上向后渐近于不稳定不动点的点集称为不稳定流形. 对于零驱动幅度的驱动摆, 分界线上的所有点在时间上向前和向后都渐近于

不稳定的不动点. 因此, 在这种情况下, 稳定流形和不稳定流形重合.

如果驱动幅度非零, 那么仍然存在一维点集在时间上向前和向后渐近于不稳定不动点: 仍然存在稳定流形和不稳定流形. 为什么? 行为靠近不动点由线性化变分系统描述. 对于线性变分系统, 在由不稳定特征向量张成的空间中的点, 当在时间上向后映射时, 渐近于不动点. 稍微偏离这条曲线的点最初可能接近不稳定平衡点, 但最终会偏向一侧或另一侧. 对于具有小驱动的驱动系统, 必须仍然存在一条曲线, 将偏向一侧的点与偏向另一侧的点分开. 分割曲线上的点必须渐近于不稳定平衡点. 由于映射是保面积的, 分割集不能具有正面积.

对于零驱动幅度情况, 稳定流形和不稳定流形是守恒哈密顿量的等值线. 对于非零幅度, 哈密顿量不再守恒. 对于非零驱动, 稳定流形和不稳定流形不再重合. 对于非可积系统, 这通常是正确的: 稳定流形和不稳定流形不重合.

如果稳定流形和不稳定流形不再重合, 它们会去哪里? 一般来说, 稳定流形和不稳定流形必须相互交叉. 唯一的其他可能性是它们延伸到无穷远或围绕某物螺旋. 保面积性可以用来排除螺旋情况. 我们将看到一般存在运行到无穷远的障碍. 所以唯一可能性是稳定流形和不稳定流形交叉. 这在图 4.7 中有所说明. 稳定流形和不稳定流形的交叉点称为同宿交点, 如果稳定流形和不稳定流形属于同一个不稳定不动点. 如果稳定流形和不稳定流形属于不同的不动点, 则称为异宿交点.

如果稳定流形和不稳定流形交叉一次, 那么就存在无限多个其他交叉点. 交点属于稳定流形和不稳定流形两者. 它在不稳定流形上意味着所有在时间上向前和向后的像也属于不稳定流形, 同样对于稳定流形上的点. 因此, 交点的所有像都属于

稳定流形和不稳定流形两者. 所以这些像必定是两个流形的额外交叉点.

我们可以推断出稳定流形和不稳定流形还有更多的交点. 我们考虑的映射不仅保持面积, 而且保持方向. 在刘维尔定理的证明中, 我们证明了变换的行列式为 1, 而不仅仅是幅度为 1. 如果我们考虑交点附近稳定流形和不稳定流形的小段, 那么这些段必须映射到交点像附近. 映射保持方向意味着流形以与前一个交点相同的意义相互交叉. 因此, 在这两者之间必定至少还有一次稳定流形和不稳定流形的交叉. 这在图 4.8 中有所说明. 当然, 这些中间交点的所有向前和向后像也是交点.

随着图像变得越来越复杂, 请记住稳定流形不能与自身交叉, 不稳定流形也不能与自身交叉. 假设其中一个交叉了, 比如形成了一个小环. 那么该环在映射下的像也必须是一个环. 所以如果存在一个环, 就必须存在无限多个环.

那没关系, 但是当环接近不动点时会发生什么? 仍然必须有环, 但那时稳定流形和不稳定流形将不会具有正确的行为: 线性化映射的稳定流形和不稳定流形没有环. 因此, 稳定流形和不稳定流形不能与自身交叉. 6

我们还没完! 由稳定流形和不稳定流形的连续交叉点定义的瓣包含一定的面积. 映射是保面积的, 所以这些瓣的所有像必须具有相同的面积. 所以存在无限多个这些瓣的像, 都具有相同的面积. 此外, 这些像的边界不能交叉. 当瓣接近不动点时, 我们得到无限多个基底呈指数收缩长度的瓣. 为了将它们打包在平面上, 而不让边界相互交叉, 这些瓣必须伸展以保持面积. 我们看到瓣的长度必须大致呈指数增长(它可能在宽度上不均匀, 所以不一定是精确指数的). 瓣的这种指数伸长无疑对混沌轨道邻近轨迹的指数发散负有一定责任, 但

5.3.1. 练习 4.5: 同宿悖论

我们如何在有限区域内容纳无限多个有限面积的副本, 而不允许稳定流形和不稳定流形自相交叉? 解决这个明显的悖论.

5.3.2. 4.3.1 稳定流形和不稳定流形的计算

同宿缠结不仅仅是一个噩梦. 我们实际上可以计算它. 非常靠近不稳定不动点, 稳定流形和不稳定流形变得与线性化系统的特征向量沿射线无法区分. 因此, 计算不稳定流形的一种方法是取靠近不动点沿线性化系统不稳定流形的一系列初始条件, 并在时间上向前演化它们. 类似地, 稳定流形可以通过取沿线性化系统稳定流形的一系列初始条件并在时间上向后演化它们来构造.

我们可以通过选择沿流形的某个参数(如弧长), 并对每个参数确定需要多少次映射迭代才能将点带回到不动点的某个小区域内, 从而做得更好. 然后我们选择沿线性化特征向量的一个初始条件, 并用映射将点迭代回来. 这个想法在以下程序中实现:

(define ((unstable-manifold T xe ye dx dy A eps) param)
  (let ((n (floor->exact (/ (log (/ param eps)) (log A)))))
    (((iterated-map T n) (+ xe (* dx (/ param (expt A n)))))
     (+ ye (* dy (/ param (expt A n)))))
     cons
     list)))

其中 T 是映射, xe 和 ye 是不动点的坐标, dx 和 dy 是线性化特征向量的分量, A 是特征乘子, eps 是线性化映射足够好地逼近 T 的尺度, param 是沿流形的连续参数. 该程序假设沿流形存在基本的指数发散–这就是为什么我们取 param 的对数来获得线性区域中的初始条件. 这个假设不完全正确, 但目前足够好. 曲线由对 plot-parametric-fill 的调用生成, 该调用递归地细分参数区间, 直到有足够的点获得平滑曲线.

(define (plot-parametric-fill win f a b near?)
  (let loop ((a a) (xa (f a)) (b b) (xb (f b)))
    (if (not (close-enuf? a b (* 10 *machine-epsilon*)))
        (let ((m (/ (+ a b) 2)))
          (let ((xm (f m)))
            (plot-point win (car xm) (cdr xm))
            (if (not (near? xa xm))
                (loop a xa m xm))
            (if (not (near? xb xm))
                (loop m xm b xb)))))))

near? 参数是测试两个点是否在图中的给定距离内. 因为一些坐标是角度变量, 这可能涉及主值比较. 例如, 对于驱动摆截面, 水平轴是角度, 但垂直轴不是, 所以图像是在圆柱体上:

(define (cylinder-near? eps)
  (let ((eps2 (square eps)))
    (lambda (x y)
      (< (+ (square ((principal-value pi)
                      (- (car x) (car y)))))
            (square (- (cdr x) (cdr y))))
         eps2))))

图 4.9 显示了驱动摆同宿缠结的计算结果. 参数为 m = 1kg, g = 9.8kgms⁻¹, l = 1m, \( \omega = 4.2\sqrt{g/l} \), 振幅 A = 0.05m. 作为参考, 图 4.9 在相同尺度上显示了这些参数的截面.

5.3.3. 练习 4.6: 计算同宿缠结

a. 计算标准映射的稳定流形和不稳定流形. b. 识别同宿缠结上那些在其存在性论证中起作用的特征, 例如稳定流形和不稳定流形的中心交叉点等. c. 研究过程中的误差. 计算出的流形真的正确吗, 还是异想天开的产物? 可以想象误差是指数的, 计算出的流形与实际流形毫无关系. d. 同宿缠结实际占据了多少空间? 考虑耦合常数 K = 0.8 的值. 同宿缠结真的填满了明显的混沌区吗?

5.4. 4.4 可积系统

岛屿出现在公度附近, 即使在可积系统中也存在公度. 在可积系统中, 每个公度都关联着无限多个周期轨道, 但在微扰下, 只有有限数量的周期轨道存活下来. 这是怎么发生的? 首先我们必须更多地了解可积系统.

如果一个 n 自由度系统有 n 个独立的守恒量, 那么问题的解可以简化为求积. 这样的系统称为可积系统. 通常, 可积系统的相空间被划分为性质不同的区域. 例如, 摆的运动可以简化为求积, 并且具有三种不同类型的解: 振荡解以及顺时针和逆时针循环解. 摆相空间的不同区域由渐近于不稳定平衡点的轨迹分隔开. 事实证明, 对于任何可以简化为求积的系统, 可以为相空间的每个区域选择一组相空间坐标, 使得描述该区域运动的哈密顿量仅依赖于动量. 此外, 如果相空间是有界的, 那么

广义坐标可以选择为角度(即 2π 周期). 由 n 个角度描述的构型空间是一个 n 维环面. 与这些角度共轭的动量称为作用量. 这样的相空间坐标称为作用量-角度坐标. 我们将稍后看到如何以这种方式重新表述系统. 这里我们探讨这种表述的后果; 这种表述对于探索当向可积问题添加附加效应时会发生什么特别有用.

5.4.1. 可积系统中的轨道类型

假设我们有一个时间无关的 n 自由度系统, 它可以简化为求积. 对于相空间的每个区域, 都存在一个系统的局域表述, 使得系统的演化由一个只依赖于动量的时间无关哈密顿量描述. 进一步假设坐标都是角度. 设 θ 是角度元组, J 是共轭动量元组. 哈密顿量是 \[ H(t, \theta, J) = f(J). \] 哈密顿方程很简单

\begin{align*} DJ(t) &= -\partial_1 H(t, \theta(t), J(t)) = 0 \\ D\theta(t) &= \partial_2 H(t, \theta(t), J(t)) = \omega(J(t)), \end{align*}

其中 \(\omega(J) = Df(J)\) 是频率元组, 每个自由度对应一个分量. 动量都是常数, 因为哈密顿量不依赖于任何坐标. 坐标角的运动是匀速的; 角的变化率是频率 ω, 它只依赖于常数动量. 给定初始值 \(\theta(t_0)\) 和 \(J(t_0)\) 在时间 \(t_0\), 解很简单:

\begin{align*} J(t) &= J(t_0) \\ \theta(t) &= \omega(J(t_0))(t - t_0) + \theta(t_0). \end{align*}

虽然解很简单, 但存在许多不同类型的轨道: 平衡解, 周期轨道和准周期轨道, 这取决于频率比.

如果对于某个 J, \(\omega(J)\) 为零, 那么对于任何 θ, θ 和 J 都是常数. 系统处于平衡点.

如果系统的所有坐标(和动量)在某个稍后时间返回到初始坐标(和动量), 则解是周期的. 每个具有非零频率 \(\omega^i(J(t_0))\) 的坐标 \(\theta^i\) 都是周期的, 周期为 \(T_i = 2\pi / \omega^i(J(t_0))\). 系统的周期因此必须是每个单个坐标周期 \(T_i\) 的整数倍 \(k_i\). 如果系统对于某组整数倍是周期的, 那么它对于任何除以公因数的整数倍也是周期的. 因此系统的周期是 \(T = (k_i/d) T_i\), 其中 d 是整数 \(k_i\) 的最大公约数.

对于具有两个自由度的系统, 如果存在互质整数 k 和 j 使得 \(k\omega^0(J(t_0)) = j\omega^1(J(t_0))\), 则解是周期的. 系统的周期是 \(T = 2\pi j / \omega^0(J(t_0)) = 2\pi k / \omega^1(J(t_0))\); 频率是 \(\omega^0(J(t_0))/j = \omega^1(J(t_0))/k\). 2-环面上的周期运动如图 4.10 所示.

如果频率 \(\omega^i(J(t_0))\) 满足一个整数系数关系 \(\sum_i n_i \omega^i(J(t_0)) = 0\), 我们称频率满足一个公度性. 如果对于任何非零整数系数都不存在公度性, 我们称频率是线性无关的(相对于整数), 并且解是准周期的. 可以证明, 对于 n 个不成公比的频率, 所有解都任意接近构型空间中的每个点. 7

对于具有两个自由度的系统, 在一个由特定作用量-角度变量集描述的区域中的解要么是平衡解, 要么是周期解, 要么是准周期解. 8 对于具有两个以上自由度的系统, 存在既非周期也非准周期的轨迹(具有 n 个频率). 这些是具有较少频率的准周期, 并在相应的较低维环面上是稠密的.

5.4.2. 可积系统的截面

正如我们所见, 在作用量-角度坐标中, 角度以恒定的角频率运动, 而动量是常数. 因此, 作用量-角度坐标中的截面特别简单. 我们可以为时间无关的二自由度系统或具有周期驱动的一自由度系统制作截面. 在后一种情况下, 作用量-角度系统中的一个角度是驱动的相位. 我们通过在另一个坐标经过某个特定值(例如零)时累积一个规范坐标对的点来制作截面. 如果我们将截面点绘制成横坐标为角度坐标, 纵坐标为共轭动量, 那么所有轨迹的截面点都位于水平线上, 如图 4.11 所示.

为确定起见, 设截面平面为 \((\theta^0, J_0)\) 平面, 截面条件为 \(\theta^1 = 0\). 其他

5.5. 4.5 庞加莱-比尔霍夫定理

如果我们添加额外的效应, 这个图像会如何变化? 可积系统中轨道的一个奇特特征是存在连续的周期轨道族. 初始角度不重要, 频率仅取决于作用量. 将此与我们先前在截面上的经验进行对比, 其中周期点是孤立的, 并且与岛链相关联. 这里我们研究近可积系统的周期轨道, 并发现通常对于每个有理旋转数, 都存在有限数量的周期点, 其中一半是线性稳定的, 一半是线性不稳定的.

考虑一个在作用量-角度坐标中由哈密顿量 \(H_0(t, \theta, J) = f(J)\) 描述的可积系统. 我们添加一个小的附加效应, 由哈密顿量中的项 \(H_1\) 描述 \[ H = H_0 + \epsilon H_1. \] 这种系统的一个例子是具有小驱动幅度的周期驱动摆. 对于零驱动幅度, 驱动摆是可积的, 但对于小驱动幅度则不是. 不幸的是, 我们还没有工具来为摆开发作用量-角度坐标. 一个更简单的问题, 已经处于作用量-角度形式的是驱动转子, 它只是驱动摆将重力关闭. 我们可以通过将我们的驱动摆侧放来实现这一点, 使摆的平面水平. 驱动转子的哈密顿量是 \[ H(t, \theta, p_\theta) = \frac{p_\theta^2}{2ml^2} + ml A \omega^2 \cos \omega t \cos \theta, \] 其中 A 是驱动幅度, 频率为 ω, m 是摆锤质量, l 是转子长度. 对于零

5.5.1. 4.5.1 计算庞加莱-比尔霍夫构造

我们的不动点构造中有如此多的条件, 以至于人们可能会产生怀疑. 我们可以通过实际计算特定问题的各个部分来使构造更具说服力. 考虑周期驱动转子, 哈密顿量为 (4.41). 我们设 m=1kg, l=1m, A=0.1m, \( \omega = 4.2\sqrt{9.8} \). 我们将映射到相同角度的点称为" 径向映射点" . 我们用简单的二分法找到它们:

(define (radially-mapping-points map Jmin Jmax phi eps)
  (bisect
   (lambda (J)
     ;; difference between phi and image angle
     ((principal-value pi)
      (- phi (map phi J (lambda (phip Jp) phip) list))))
   Jmin Jmax eps))

过程 map 实现某个映射, 它可能是某个更原始映射的迭代. 我们给该过程一个要研究的角度 phi 和一个要搜索的作用量范围 Jmin 到 Jmax, 以及解的容差 eps. 我们用适当的包装代码绘制曲线 C₀(映射径向的初始条件)和 C₁(C₀ 的像).

在图 4.16 中, 我们展示了驱动转子不动点的庞加莱-比尔霍夫构造. 这些特定的曲线是为旋转和驱动之间的两个 1:1 公度性构造的. 对于每种旋转方向, 都有一组不动点. 相应的截面如图 4.17 所示. 我们看到截面正好在庞加莱-比尔霍夫构造显示曲线 C₀ 和 C₁ 交叉的地方显示了不动点的存在. 实际上, 我们可以看到不动点的性质清楚地反映在 C₀ 和 C₁ 曲线的相对构型中.

在图 4.18 中, 我们展示了旋转数为 1/3 的结果. 曲线是截面映射三次迭代的径向映射点(实线)和这些点的像(点

线). 这些曲线因其靠近图 4.17 中所示的 1:1 岛屿而变形. 相应的截面如图 4.19 所示.

5.5.2. 练习 4.7: 计算庞加莱-比尔霍夫构造

考虑图 3.27. 使用庞加莱-比尔霍夫构造找到三个主要岛链的不动点.

5.6. 4.6 不变曲线

我们从一个可积系统开始, 那里存在不变曲线. 如果添加微扰, 是否有任何不变曲线能够存活下来? 用于扭转映射的庞加莱-比尔霍夫构造表明, 具有有理旋转数的不变曲线通常不会在微扰下存活. 在微扰下, 具有有理旋转数的不变曲线被一系列交替的稳定和不稳定周期轨道所取代. 因此, 如果存在存活下来的不变曲线, 它们必须具有无理旋转数.

当我们添加微扰时, 对于每个有理旋转数, 我们得到了一系列交替的稳定和不稳定不动点, 并且每个稳定不动点都被一个占据截面某个区域的岛屿包围. 由于有理数是稠密的, 并且每个都占据一个区域, 人们可能想知道是否有任何不变曲线能够存活下来. 当然, 存在更多的无理旋转数可供考察, 但每个无理数都任意接近于一个有理数, 因此任何不变曲线能否在任意小的微扰下存活下来并不明显.

然而, Kolmogorov-Arnold-Moser (KAM) 定理证明, 如果微扰足够小, 那么不变曲线确实存在, 因此受扰问题" 足够接近" 可积问题, 并且如果旋转数" 足够无理" , 则不变曲线确实存在. 我们在这里不会证明这个定理. 相反, 我们将开发寻找特定不变曲线的方法.

稳定周期轨道在截面上有一个围绕它们的稳定岛屿. 最大的岛屿与分母小的有理数相关联. 通常, 岛屿的大小受限于一个随着分母增大而减小的尺寸. 这些岛屿是微扰效应的局部指示. 类似地, 混沌区出现在不稳定周期

轨道及其同宿缠结附近. 同宿缠结是一条连续曲线, 因此它不能穿过也是连续的不变曲线. 如果我们正在寻找在微扰下持续存在的不变曲线, 明智的做法是避开相空间中岛屿或同宿缠结是主要特征的区域.

庞加莱-比尔霍夫岛屿按旋转数排序. 由于扭转条件, 旋转数在未受扰问题的动量中是单调的. 如果存在一个具有给定旋转数的不变曲线, 它就被夹在与有理旋转数相关的岛链之间. 不变曲线的旋转数必须介于其两侧岛链的旋转数之间.

岛屿大小随分母大小减小这一事实表明, 旋转数其邻近有理数需要大分母的不变曲线最有可能存在. 因此, 我们将通过检查那些不靠近具有小分母的有理数的旋转数来开始我们对不变曲线的搜索.

任何无理数都可以由一系列有理数逼近, 对于这些有理数中的每一个, 我们都期望存在具有稳定岛屿和同宿缠结的稳定和不稳定周期轨道. 对于给定的旋转数, 不变曲线存活的最佳机会是, 如果每个有理数逼近相关的岛屿大小小于岛屿与具有该旋转数的不变曲线的分离距离.

对于任何特定大小的分母, 对无理数的最佳有理逼近由简单连分数的初始段给出. 如果逼近的连分数收敛缓慢到该无理数, 则该数不靠近具有小分母的有理数. 因此, 我们将寻找旋转数具有缓慢收敛连分数逼近的不变曲线. 收敛最慢的连分数尾部都是 1. 例如, 黄金分割, \[ \phi = \frac{1 + \sqrt{5}}{2} = 1 + \frac{1}{1 + \frac{1}{1 + \frac{1}{1+\dots}}}, \] 正是这样一个数.

5.6.1. 4.6.1 寻找不变曲线

不变曲线, 如果存在, 由特定的旋转数表征. 不变曲线上的点映射到不变曲线上的点. 邻近点映射到邻近点, 保持顺序.

在未受扰可积系统的截面上, 连续截面点之间的角度是恒定的: \(\Delta\theta = 2\pi\nu(J)\), 对于旋转数 \(\nu(J)\). 这个将圆以恒定角步长映射到自身的映射我们称为均匀圆映射.

对于给定的旋转数, 截面上的点按仅由旋转数决定的特定顺序排列. 当微扰开启时, 具有特定旋转数的不变曲线将被扭曲, 并且连续点之间的角度将不再恒定. 要拥有特定的旋转数, 唯一的要求是平均角度变化为 \(\Delta\theta\). 尽管如此, 截面上点的顺序是保持的, 并且是旋转数的特征.

我们可以利用这样一个事实, 即具有给定旋转数的不变曲线上的点序列必须具有特定的顺序来找到不变曲线. 通过用受扰映射和均匀圆映射演化候选初始点, 并比较生成的点序列的顺序, 我们可以判断初始点是在所需的不变曲线上还是在哪一侧.

假设我们有一个可以迭代以获得截面上点的映射. 利用比较点顺序与均匀圆映射顺序的想法, 来指示我们的轨道旋转数与指定旋转数相比如何, 我们可以通过二分搜索找到不变曲线的动量(对于指定角度): 13

(define (find-invariant-curve map rn theta0 Jmin Jmax eps)
  (bisect (lambda (J) (which-way? rn theta0 J map))
          Jmin Jmax eps))

然而, 我们需要能够确定改变动量的方向以接近所需的旋转数.

5.6.2. 练习 4.8: 标准映射中的不变曲线

在标准映射中找到另一个黄金不变曲线. 放大它以显示它在高放大倍数下保持曲线的特征.

5.6.3. 4.6.2 不变曲线的溶解

从图 4.21 可以看出, 不变曲线上的点并非均匀访问, 这与我们绘制均匀圆映射角度时得到的情况不同. 这是因为一个区间在映射时可能会被拉伸或压缩. 我们可以计算不变曲线上每个角度的相对访问概率密度. 获得此结果的一种粗略方法是计算落入等增量角度仓的点数. 它

更有效的方法是使用根据被研究映射构造的线性变分映射, 让我们能够计算从一个点到其后继点的增量角度变化. 由于小区间内的所有点都映射到(按相同顺序)目标点周围的小区间内, 因此一个点的相对概率密度与该点周围增量区间的大小成反比. 为了开始这个过程, 我们需要对不变曲线的初始斜率有一个好的估计. 我们可以通过对我们用来细化具有给定旋转数的不变曲线动量的区间的动量和角度增量进行差商来估计斜率. 图 4.22 和 4.23 显示了标准映射中黄金缠绕数不变曲线的访问相对概率密度作为角度的函数, 对应三个不同的参数 K 值. 随着 K 的增加, 某些角度变得不太可能被访问. 在 K = 0.971635406 附近, 某些角度从未被访问. 但不变曲线必须是连续的. 因此, 对于更大的 K, 具有此旋转数的不变曲线将不存在. 事实上, 如果不变集以给定的旋转数持续存在, 它将有无限多个洞(因为它具有无理缠绕数). 这样的集合有时被称为康托洛斯 (cantorus).

5.6.4. 练习 4.9: 不变曲线的溶解

随着参数 K 增加超过临界值, 黄金不变曲线不复存在. 研究寻找不变曲线的方法在 K 超过临界值时如何失效.

5.6.5. 练习 4.10: 困难

制作重现图 4.22, 4.22 和 4.23 的程序. 你需要开发一种有效的方法来估计访问概率. 文中给出了如何做到这一点的一个建议, 但你可能会找到更好的方法.

6. 第五章正则变换

我们已经完成了相当多的登山. 现在我们处于理论极度优美的稀薄大气中, 我们正在接近一个高地平台, 在这里几何学, 光学, 力学和波动力学在共同的基础上相遇. 只有专注的思考, 以及相当多的再创造, 才能揭示我们这个主题的美, 其中最后一句话尚未说出.

Cornelius Lanczos, <力学的变分原理>, (1970, 1982), p. 229.

简化问题分析的一种方法是将问题表达为解具有简单表示形式的形式. 然而, 问题的初始表述可能更容易用其他术语表达. 例如, 多个引力体运动问题的表述在直角坐标中很简单, 但更容易理解运动的某些方面, 例如轨道的半长轴, 偏心率和倾角. 轨道的半长轴和偏心率取决于物体的位置和速度. 这种变换比表达构型坐标变化的变换更普遍. 在这里, 我们研究涉及广义坐标和广义动量的相空间坐标变换.

假设我们有两个不同的哈密顿系统, 并且假设这两个系统的轨迹一一对应. 在这种情况下, 两个哈密顿系统都可以是同一物理系统的数学模型. 关于物理系统的某些问题可能更容易通过参考一个模型来回答, 而其他问题可能更容易在另一个模型中回答. 例如, 在一个模型中表述物理系统并发现守恒量可能更容易. 正则变换是保持动力学的哈密顿系统之间的映射.

一个正则变换是一个相空间坐标变换以及哈密顿量的相关变换, 使得由哈密顿方程给出的两种表示中的动力学描述了系统的相同演化.

6.1. 5.1 点变换

点变换是一种正则变换, 它将构型坐标的可能含时变换扩展到相空间变换. 例如, 人们可能希望用极坐标重新表达运动, 给定直角坐标的描述. 为了将构型坐标的变换扩展到相空间变换, 我们必须指定动量和哈密顿量如何变换.

我们已经看到构型变换如何在拉格朗日表述中进行(见 1.6.1 节). 在那时, 我们发现如果拉格朗日量通过与坐标变换复合来变换, 则拉格朗日方程是等价的.

相差一个全时间导数的拉格朗日量是等价的, 但具有与广义坐标共轭的不同动量. 因此, 有多种方法可以对坐标变换进行正则扩展.

在这里, 我们找到坐标变换的特定正则扩展, 其中拉格朗日量通过与变换复合来变换, 没有额外的全时间导数项添加到拉格朗日量中.

设 L 是系统的拉格朗日量. 考虑坐标变换 \(q = F(t, q')\). 速度变换为 \[ v = \partial_0 F(t, q') + \partial_1 F(t, q') v'. \] 我们可以通过复合得到变换后坐标中的拉格朗日量 L' \[ L'(t, q', v') = L(t, q, v) \] \[ L'(t, q', v') = L(t, F(t, q'), \partial_0 F(t, q') + \partial_1 F(t, q') v'). \] 与 q' 共轭的动量是 \[ p' = \partial_2 L'(t, q', v') \]

\[ = \partial_2 L(t, F(t, q'), \partial_0 F(t, q') + \partial_1 F(t, q') v') \partial_1 F(t, q') \] \[ = p \partial_1 F(t, q'), \] 其中我们使用了 \[ p = \partial_2 L(t, q, v) \] \[ = \partial_2 L(t, F(t, q'), \partial_0 F(t, q') + \partial_1 F(t, q') v'). \] 因此, 从方程 (5.3) 中, 1 \[ p = p' (\partial_1 F(t, q'))^{-1}. \] 我们可以收集这些结果来定义一个正则相空间变换 C: 2 \[ (t, q, p) = C(t, q', p') \] \[ = (t, F(t, q'), p' (\partial_1 F(t, q'))^{-1}). \] 哈密顿量由勒让德变换得到

\begin{align*} H'(t, q', p') &= p' v' - L'(t, q', v') \\ &= (p \partial_1 F(t, q')) ((\partial_1 F(t, q'))^{-1} (v - \partial_0 F(t, q'))) \\ &\quad - L(t, q, v) \\ &= pv - L(t, q, v) - p \partial_0 F(t, q') \\ &= H(t, q, p) - p \partial_0 F(t, q'), \end{align*}

在第二步中使用了关系 (5.1) 和 (5.5). 用变换后的坐标和动量完全表达, 变换后的哈密顿量是 \[ H'(t, q', p') = H(t, F(t, q'), p' (\partial_1 F(t, q'))^{-1}) - (p' (\partial_1 F(t, q'))^{-1}) \partial_0 F(t, q'). \]

6.1.1. 实现点变换

过程 F->CT 接受一个实现构型坐标变换 F 的过程, 并返回一个实现相空间坐标变换的过程.

6.1.2. 练习 5.1: 旋转

设 q 和 q' 是由旋转 R 关联的直角坐标: \(q = R q'\). 系统的拉格朗日量是 \(L(t, q, v) = \frac{1}{2} m v^2 - V(q)\). 找到相应的相空间变换 C. 比较动量直角分量的变换方程与速度直角分量的变换方程. 考虑到方程 (5.10), 你感到惊讶吗?

6.2. 5.2 广义正则变换

尽管我们已经展示了如何将构型空间的任何点变换扩展为正则变换, 但还有其他构造正则变换的方法. 我们如何知道我们是否有一个正则变换? 要测试一个变换是否是正则的, 我们可以利用这样一个事实: 如果变换是正则的, 那么变换后系统的哈密顿运动方程与原始系统将是等价的.

考虑一个哈密顿量 H 和一个相空间变换 C. 变换 C 将相空间路径 \(\sigma'(t) = (t, q'(t), p'(t))\) 变换为 \(\sigma(t) = (t, q(t), p(t))\): \[ \sigma = C \circ \sigma'. \] 相空间坐标的变化率通过变换的导数进行变换 \[ D\sigma = D(C \circ \sigma') = (DC \circ \sigma') D\sigma'. \] 设 \(D_s\) 是相空间导数算子 \[ D_s H(t, q, p) = (1, \partial_2 H(t, q, p), -\partial_1 H(t, q, p)). \] 哈密顿方程是 \[ D\sigma = D_s H \circ \sigma, \] 对于任何可实现的相空间路径 σ. 如果从新哈密顿量得到的运动方程与通过将原始哈密顿量推导出的运动方程变换到新坐标得到的方程相同, 则该变换是正则的: \[ D\sigma' = (DC \circ \sigma') D\sigma' = (DC \circ \sigma') D_s H' \circ \sigma'. \] 将此与方程 (5.15) 进行比较, 我们看到 \[ D_s H \circ \sigma = (DC \circ \sigma') D_s H' \circ \sigma'. \]

使用 \(\sigma = C \circ \sigma'\), 我们发现 \[ D_s H \circ C \circ \sigma' = (DC \circ \sigma') D_s H' \circ \sigma'. \] 这个条件必须对任何可实现的相空间路径 σ' 成立. 如果以下条件对每个相空间点都成立, 则这肯定是成立的: \[ D_s H \circ C = DC \cdot (D_s H'). \] 任何满足方程 (5.19) 的变换都是一个动力学系统的相空间表示之间的正则变换. 在一个相空间表示中, 系统的动力学由哈密顿量 H' 表征, 在另一个中由 H 表征. 这个方程背后的思想如图 5.1 所示.

我们可以将这个测试形式化为一个程序:

(define (canonical? C H Hprime)
  (- (compose (phase-space-derivative H) C)
     (* (D C) (phase-space-derivative Hprime))))

其中 phase-space-derivative, 在第 3 章介绍过, 实现了 \(D_s\). 如果这些残差为零, 则该变换是正则的. 如果变换后系统的合适哈密顿量是通过用相空间变换复合 H 得到的, 我们得到一个更具体的公式: \[ D_s H \circ C = DC D_s(H \circ C). \] 和一个更具体的测试

(define (compositional-canonical? C H)
  (canonical? C H (compose H C)))

使用这个测试, 我们可以验证极坐标到直角坐标变换对于一般中心场是正则变换:

(print-expression
 ((compositional-canonical?
   (F->CT p->r)
   (H-central 'm (literal-function 'V)))
  (up 't
      (up 'r 'phi)
      (down 'p_r 'p_phi))))
(up 0 (up 0 0) (down 0 0))

残差为零, 所以这个变换是正则的.

6.2.1. 练习 5.2: 群性质

如果我们说 C 对于哈密顿量 H 和 H' 是正则的, 当且仅当 \(D_s H \circ C = DC \cdot D_s H'\), 那么: a. 证明正则变换的复合是正则的. b. 证明正则变换的复合是结合的. c. 证明恒等变换是正则的. d. 证明正则变换存在逆变换, 且逆变换是正则的.

6.2.2. 5.2.1 不含时正则变换

我们将正则变换定义为相空间坐标的一种变换, 哈密顿方程对其适当地变换. 一个正则变换必须满足的条件(方程 5.19 或 5.20)涉及哈密顿量. 如果哈密顿量通过复合变换并且变换是时间无关的, 那么我们可以判断相空间变换是否是正则的, 而无需进一步参考哈密顿量.

首先, 我们以稍微不同的形式重写哈密顿方程. 哈密顿方程是通过重新排列哈密顿量导数的分量然后对其中一些取反来构造的. 我们引入一个完成这种重排的洗牌函数: \[ \mathcal{J}([a, b, c]) = (0, c, -b). \] \(\mathcal{J}\) 的参数是一个哈密顿型函数导数的分量的 down 元组. 洗牌函数是线性的. 我们还引入一个常数函数: \[ \mathcal{T}([a, b, c]) = (1, 0, 0). \] 有了这些, 哈密顿方程可以表示为 \[ D\sigma = (\mathcal{J} + \mathcal{T}) \circ DH \circ \sigma. \] 使用 \(\mathcal{J}\) 和 \(\mathcal{T}\), 正则条件 (5.20) 可以重写为

\begin{align*} (\mathcal{J} + \mathcal{T}) \circ (DH) \circ C &= DC \cdot ((\mathcal{J} + \mathcal{T}) \circ (D(H \circ C))) \\ &= DC \cdot (\mathcal{J} \circ ((DH \circ C) \cdot (DC))) \\ &+ DC \cdot (\mathcal{T} \circ (D(H \circ C))) \end{align*}

\(\mathcal{T}\) 的值不依赖于其参数, 对于不含时变换 \(\mathcal{T} = DC \cdot \mathcal{T}\), 所以正则条件变为 \[ \mathcal{J} \circ (DH) \circ C = DC \cdot (\mathcal{J} \circ ((DH \circ C) \cdot (DC))). \] 应用于特定的相空间状态 s, 这是 \[ \mathcal{J}(DH(C(s))) = DC(s) \cdot \mathcal{J}(DH(C(s)) \cdot DC(s)). \]

设 Φ 是一个接受乘子并产生一个线性变换的函数, 该线性变换将乘子乘以线性变换的参数: \[ \Phi(A)(v) = A \cdot v. \] 类似地, 设 Φ* 是一个接受乘子并产生一个线性变换的函数, 该线性变换将线性变换的参数乘以乘子: \[ \Phi^*(A)(p) = p \cdot A. \] 使用 Φ 和 Φ*, 我们可以重写条件 (5.27) 为 \[ \mathcal{J}(DH(C(s))) = (\Phi(DC(s)) \circ \mathcal{J} \circ \Phi^*(DC(s)))(DH(C(s))). \] 如果满足以下条件, 则此条件成立 \[ \mathcal{J} = \Phi(DC(s)) \circ \mathcal{J} \circ \Phi^*(DC(s)). \] 对于通过复合变换的哈密顿量, 如果不含时变换 C 的导数 DC 满足此条件, 则该变换是正则的.

注意条件 (5.31) 不涉及哈密顿量. 这是一个了不起的结果. 虽然我们假设哈密顿量通过与变换复合进行变换, 但我们可以判断一个不含时相空间变换是否保持哈密顿方程的动力学, 而无需进一步参考动力学系统的细节.

测试实现如下:

(define ((time-independent-canonical? C) s)
  ((- J-func
      (compose (Phi ((D C) s))
               J-func
               (Phi* ((D C) s))))
   (compatible-shape s)))

这里 `J-func` 实现了 \( \mathcal{J} \), `Phi` 实现了 \( \Phi \), `Phi*` 实现了 \( \Phi^* \). `compatible-shape` 返回一个与给定参数 `s` 形状兼容的结构(用于测试). 该过程测试一个函数的复合是否与 \( \mathcal{J} \) 相同, 方法是计算它们在应用于一般典型参数时的差值. 4 这里它们应用于具有 \(DH(s)\) 形状的结构, 对于任意相空间状态 \(s\). 5 例如, 考虑以下极坐标-正则变换: \[ (t, x, p_x) = C_\alpha (t, \theta, I) \] 其中 \[ x = \sqrt{\frac{2I}{\alpha}} \sin\theta \] \[ p_x = \sqrt{2\alpha I} \cos\theta. \] 这里 α 是我们可以任意设置的参数. 我们定义:

(define ((polar-canonical alpha) H-state)
  (let ((t (state->t H-state))
        (theta (coordinate H-state))
        (I (momentum H-state)))
    (let ((x (* (sqrt (/ (* 2 I) alpha)) (sin theta)))
          (p_x (* (sqrt (* 2 alpha I)) (cos theta))))
      (up t x p_x))))

现在我们只需运行我们的测试:

6.2.3. 谐振子

谐振子的分析说明了广义正则变换在解决问题中的应用. 谐振子是简单弹簧质量系统的数学模型. 质量为 m, 弹簧常数为 k 的弹簧质量系统的哈密顿量是 \[ H(t, x, p_x) = \frac{p_x^2}{2m} + \frac{1}{2} k x^2. \]

6.2.4. 练习 5.3: 拉格朗日世界中的麻烦

是否存在一个拉格朗日量 L' 对应于谐振子哈密顿量 \(H'(t, \theta, I) = \omega I\)? 这可能意味着什么?

6.2.5. 练习 5.4: 极坐标-正则变换

设 x, p 和 θ, I 是两组规范共轭变量. 考虑形式为 \(x = \beta I^\alpha \sin\theta\) 和 \(p = \beta I^\alpha \cos\theta\) 的变换. 确定所有使该变换是组合正则的 α 和 β.

6.2.6. 练习 5.5: 标准映射

标准映射是正则变换吗? 回想一下标准映射是: \(I' = I + K \sin\theta\), 其中 \(\theta' = \theta + I'\), 两者都模 2π.

6.2.7. 5.2.2 辛变换

条件 (5.31) 涉及函数的复合, 所有这些都是线性变换. 线性变换可以用矩阵表示. 矩阵表示是相对于基定义的. 对于增量哈密顿状态, 我们将状态分量组织为时间, 坐标分量和相应动量分量的列矩阵.

线性变换 \(\mathcal{J}\) 的乘子的矩阵表示是 J. 我们可以通过对线性变换求导并在任意点求值来找到线性变换的乘子: 8 \(D\mathcal{J}([a, b, c])\). 我们可以使用工具 s->m 获得矩阵表示, 该工具接受线性变换的乘子并返回该乘子的矩阵表示. 9 矩阵 J 仅取决于自由度的数量. 例如, 对于具有两个自由度的系统, J 为:

(print-expression
 (let* ((s (typical-H-state 2))
        (s* (compatible-shape s)))
   (s->m s* ((D J-func) s*) s*)))
(matrix-by-rows (list 0 0 0  0 0)
                (list 0 0 0  1 0)
                (list 0 0 0  0 1)
                (list 0 -1 0 0 0)
                (list 0 0 -1 0 0))

用矩阵表示, 测试变换是否是辛的:

(define ((symplectic? C) s)
  (let ((s* (compatible-shape s)))
    (let ((J (s->m s* ((D J-func) s*) s*))
          (DCs (s->m s* ((D C) s) s)))
      (- J (* DCs J (m:transpose DCs))))))

例如, 我们可以验证从坐标变换 p->r 派生出的点变换是辛的:

6.2.8. 练习 5.6: 辛矩阵

设 A 是一个辛矩阵: \(J_n = A J_n A^T\). 证明 \(A^T\) 和 \(A^{-1}\) 是辛的.

6.2.9. 练习 5.7: Whittaker 变换

证明变换 \(q' = \log\left(\frac{1}{q}\sin p'\right)\) 且 \(p = q' \cot p'\) 是辛的.

6.2.10. 5.2.3 含时变换

我们已经发现, 不含时变换(涉及坐标和共轭动量, 但不涉及时间)如果其导数是辛的, 则是正则的. 让我们回到辛条件的计算, 但现在允许变换方程中存在显式的时间依赖性.

6.2.11. 旋转坐标

考虑一个到均匀旋转坐标系的不含时点变换: \[ q = R(\Omega)(t, q'), \] 分量为

\begin{align*} x &= x' \cos(\Omega t) - y' \sin(\Omega t) \\ y &= x' \sin(\Omega t) + y' \cos(\Omega t). \end{align*}

作为一个程序, 这是

(define ((rotating n) state)
  (let ((t (time state))
        (q (coordinate state)))
    (let ((x (ref q 0))
          (y (ref q 1))
          (z (ref q 2)))
      (up (+ (* (cos (* n t)) x) (* (sin (* n t)) y))
          (- (* (cos (* n t)) y) (* (sin (* n t)) x))
          z))))

这个变换到相空间的扩展是

(define (C-rotating Omega) (F->CT (rotating Omega)))

我们首先验证这个含时变换的位置-动量部分是辛的:

(pe
 ((symplectic-transform? (C-rotating 'Omega))
  (up 't
      (coordinate-tuple 'x 'y 'z)
      (momentum-tuple 'px 'py 'pz))))
(matrix-by-rows (list 0 0 0 0 0 0)
                (list 0 0 0 0 0 0)
                (list 0 0 0 0 0 0)
                (list 0 0 0 0 0 0)
                (list 0 0 0 0 0 0)
                (list 0 0 0 0 0 0))

对于这个变换, 对哈密顿量的适当修正是 \[ K(\Omega)(t; x', y', z'; p'_x, p'_y, p'_z) = -\Omega(x' p'_y - y' p'_x), \] 这是坐标系的旋转速率乘以角动量. 其理由将在 5.6 节给出. 实现是:

(define ((K Omega) s)
  (let ((q (coordinate s)) (p (momentum s)))
    (let ((x (ref q 0)) (y (ref q 1))
          (px (ref p 0)) (py (ref p 1)))
      (* -1 Omega (- (* x py) (* y px))))))

应用测试:

(print-expression
 ((canonical-K? (C-rotating 'Omega) (K 'Omega))
  (up 't
      (up 'x 'y 'z)
      (down 'p_x 'p_y 'p_z))))
(up 0 (up 0 0 0) (down 0 0 0))

残差为零, 所以这个 K 完成了正则变换.

6.2.12. 5.2.4 辛条件

如果变换的 pq 部分具有辛导数, 则变换是辛的. 这个条件可以简单地用泊松括号表示.

泊松括号可以用 \( \mathcal{J} \) 表示: \[ \{f, g\} = (Df) \cdot (\mathcal{J} \circ (Dg)), \] 正如可以通过写出分量来看到的那样. 我们将变换 C 分解为位置和动量部分:

\begin{align*} q &= A(t, q', p') \\ p &= B(t, q', p'). \end{align*}

用各个分量函数表示, 辛条件 (5.31) 是

\begin{align*} \delta^i_j &= \{A^i, B_j\} \\ 0 &= \{A^i, A^j\} \\ 0 &= \{B_i, B_j\} \end{align*}

其中 \(\delta^i_j\) 当 i=j 时为 1, 否则为零. 这些被称为基本泊松括号. 如果一个变换满足这些基本泊松括号关系, 那么它是辛的.

我们发现, 如果一个含时变换的位置-动量部分是辛的, 并且我们通过加一个合适的 K 来修改哈密顿量, 那么这个变换是正则的. 我们可以用泊松括号重写这些条件. 如果哈密顿量是 \[ H'(t, q', p') = H(t, A(t, q', p'), B(t, q', p')) + K(t, q', p'), \] 那么如果坐标-动量变换满足基本泊松括号, 并且 K 满足:

\begin{align*} \{A^i, K\} + \partial_0 A^i &= 0 \\ \{B_j, K\} + \partial_0 B_j &= 0. \end{align*}

则该变换将是正则的.

6.2.13. 练习 5.8:

填写细节, 证明辛条件 (5.31) 等价于基本泊松括号 (5.61), 并且对 K 的条件 (5.53) 等价于对 K 的泊松括号条件 (5.63).

6.3. 5.3 正则变换的不变量

正则变换允许我们改变用于表达问题的相空间坐标系, 同时保持哈密顿方程的形式. 如果我们在一个相空间坐标系中求解哈密顿方程, 我们可以使用变换将解带到另一个坐标系. 正则变换还保持哪些其他性质?

6.3.1. pv 的非不变性

我们在方程 (5.10) 中注意到, 点变换的正则扩展保持了 pv 的值. 这对于更一般的正则变换不成立. 我们可以用刚刚考虑的变换来说明这一点. 沿着对应的路径 x, px 和 θ, I \[ x(t) = \sqrt{\frac{2I(t)}{\alpha}} \sin\theta(t) \] \[ p_x(t) = \sqrt{2I(t)\alpha} \cos\theta(t). \] 所以 Dx 是 \[ Dx(t) = D\theta(t) \sqrt{\frac{2I(t)}{\alpha}} \cos\theta(t) + DI(t) \frac{1}{\sqrt{2I(t)\alpha}} \sin\theta(t). \] pv 与变换后的 p'v' 的差是 \[ p_x(t) Dx(t) - I(t) D\theta(t) = I(t) D\theta(t) (2\cos^2\theta(t) - 1) + DI(t) \sin\theta(t) \cos\theta(t). \] 通常这不为零. 乘积 pv 在一般正则变换下不一定不变.

6.3.2. 泊松括号的不变性

这是一个显著的事实: 两个相空间状态函数的泊松括号与正则变换的复合等于分别用变换复合的两个函数的泊松括号. 粗略地说, 泊松括号在正则相空间变换下是不变的.

设 f 和 g 是两个相空间状态函数. 使用泊松括号的 \( \mathcal{J} \) 表示(见 5.2.4 节),

\begin{align*} \{f \circ C, g \circ C\}(s) &= (D(f \circ C))(s) \cdot (\mathcal{J} \circ D(g \circ C))(s) \\ &= (Df \circ C)(s)) \cdot DC(s) \cdot (\mathcal{J} ((Dg \circ C(s)) \cdot DC(s))) \\ &= ((Df \circ C)(s)) \cdot (\mathcal{J} ((Dg \circ C)(s))) \\ &= (\{f, g\} \circ C)(s), \end{align*}

其中使用了 C 是辛的且满足方程 (5.27) 这一事实. 抽象到相空间状态的函数, 这是: \[ \{f \circ C, g \circ C\} = \{f, g\} \circ C. \]

6.3.3. 体积保持

考虑一个正则变换 C. 设 \( \hat{C}_t \) 是一个带参数 t 的函数, 使得 \((q, p) = \hat{C}_t(q', p')\) 如果 \((t, q, p) = C(t, q', p')\). 函数 \( \hat{C}_t \) 将相空间坐标映射到给定时间的备用相空间坐标. 考虑区域 R 在 (q, p) 中以及区域 R' 在 (q', p') 中, 使得 \(R = \hat{C}_t(R')\). 区域 R 的体积是 \[ V(R) = \int_R 1 = \int_{R'} \det(D\hat{C}_t). \] 现在如果 C 是辛的, 那么 \(D\hat{C}_t\) 的行列式为 1(见 4.2 节), 所以 \[ V(R) = V(R'). \] 因此, 相空间体积被辛变换保持.

刘维尔定理表明时间演化保持相空间体积. 这里我们看到正则变换也保持相体积. 稍后, 我们会发现时间演化实际上会生成一个正则变换.

6.3.4. 辛变换保持的双线性形式

泊松括号在正则变换下的不变性可以用来证明另一个密切相关的

反对称双线性形式在正则变换下的不变性. 定义11 \[ \omega(\zeta_1, \zeta_2) = P(\zeta_2) Q(\zeta_1) - P(\zeta_1) Q(\zeta_2), \] 其中 \(Q = I_1\) 和 \(P = I_2\) 分别是坐标和动量选择器. 参数 \(\zeta_1\) 和 \(\zeta_2\) 是增量相空间状态. 在正则变换 \(s = C(s')\) 下, 增量状态变换为导数 \[ \zeta_i = DC(s') \zeta'_i. \] 我们将证明 \[ \omega(\zeta_1, \zeta_2) = \omega(\zeta'_1, \zeta'_2), \] 前提是 \(\zeta'_i\) 没有时间分量.

条件 (5.27), 即具有组合哈密顿量 H 的不含时 C 是正则的, 等价于辛条件 (5.31), 后者不涉及哈密顿量 H. 因此对于不含时辛 C, 条件 (5.27) 也对哈密顿量替换为相空间上的任何函数 f 成立: \[ \mathcal{J}(Df(C(s))) = DC(s) \cdot \mathcal{J}((D(f \circ C))(s)). \] 我们将在下面使用这个. 用 ω 表示, 泊松括号是 \[ \{f, g\}(s) = \omega((\tilde{\mathcal{J}} \circ Df)(s), (\tilde{\mathcal{J}} \circ Dg)(s)), \] 正如可以通过写出分量看到的那样. 我们利用泊松括号在正则变换下是不变的事实 \[ (\{f, g\} \circ C)(s') = \{f \circ C, g \circ C\}(s'). \]

6.3.5. 庞加莱积分不变量

考虑相空间中区域 R 的有向面积(见图 5.2). 假设我们进行从坐标 \((q', p')\) 到 \((q, p)\) 的正则变换, 将区域 R' 映射到区域 R. 变换后坐标中区域的边界就是原始边界在正则变换下的像. 设 \(R_{q_i, p_i}\) 是区域 R 在坐标 \(q_i\) 和共轭动量 \(p_i\) 的 \(q_i, p_i\) 平面上的投影, \(A_i\) 是其面积. 我们称 \(q_i, p_i\) 平面为这些相空间变量中的第 i 个正则平面. 类似地, 设 \(R'_{q'_i, p'_i}\) 是 R' 在 \(q'_i, p'_i\) 平面上的投影, \(A'_i\) 是其面积. 那么结果是 R 和 R' 的投影面积之和是相同的: \[ \sum_i A_i = \sum_i A'_i. \]

也就是说, 正则变换保持正则平面上投影面积的总和. 另一种说法是 \[ \sum_i \int_{R_{q_i, p_i}} dq^i dp_i = \sum_i \int_{R'_{q'_i, p'_i}} dq'^i dp'_i. \] 面积积分的这个等式可以用斯托克斯定理重写为线积分的等式, 对于单连通区域 \(R_{q_i, p_i}\) 和 \(R'_{q'_i, p'_i}\), \[ \sum_i \oint_{\partial R_{q_i, p_i}} p_i dq^i = \sum_i \oint_{\partial R'_{q'_i, p'_i}} p'_i dq'^i. \] 积分和求和的顺序可以颠倒, 因为 R 的边界投影到正则平面上的边界.

对于 t=τ 的特殊选择, 这个结果可以以一种有趣的方式重新表述. 设 E 是原始非扩展相空间中哈密顿量的值. 使用 \(q^n = t\) 和 \(p_n = p_t = -E\), 我们可以写 \[ \sum_{i=0}^{n-1} \int_{R_i} dq^i dp_i - \int_{R_n} dt dE = \sum_{i=0}^{n-1} \int_{R'_i} dq'^i dp'_i - \int_{R'_n} dt' dE' \] 以及 \[ \oint_{\partial R} \left( \sum_{i=0}^{n-1} p_i dq^i - E dt \right) = \oint_{\partial R'} \left( \sum_{i=0}^{n-1} p'_i dq'^i - E' dt' \right). \] 关系式 (5.121 和 5.122) 是庞加莱-嘉当积分不变量的两种表述.

6.4. 5.4 扩展相空间

在本节中, 我们展示了如果愿意, 我们可以将时间视为另一个坐标. 由含时哈密顿量描述的系统可以重铸为具有额外自由度的时间无关哈密顿量的形式. 这种观点的一个优点是, 原本是含时正则变换可以被视为时间无关变换, 其中没有调整哈密顿量的附加条件.

假设我们有一个由含时哈密顿量表征的系统. 例如, 一个周期驱动的摆. 我们可以想象存在某个极其巨大的振荡器, 不受相对质量小的摆运动的干扰, 产生驱动. 实际上, 我们可以将时间本身视为一个无限大质量粒子均匀运动并驱动其他一切的坐标. 我们经常将地球自转视为在实验室进行短时实验时的一个精确稳定的时间参考.

更正式地, 考虑一个具有 n 个自由度的动力学系统, 其行为由一个可能含时的拉格朗日量 L 和相应的哈密顿量 H 描述. 我们通过将广义坐标扩展以包含时间并引入一个新的独立变量来构造一个具有 n+1 个自由度的新动力学系统. 我们还将广义速度扩展以包含时间坐标的速度. 在这个新的扩展

状态空间坐标是冗余的, 因此存在一个关联时间坐标与新自变量的约束.

我们将原始动力学系统与扩展动力学系统关联如下: 设 q 是一个坐标路径. 设 \(q_e, t : \tau \mapsto q_e(\tau), t(\tau)\) 是扩展系统中的坐标路径, 其中 τ 是新的自变量. 那么 \(q_e = q \circ t\), 或者 \(q_e(\tau) = q(t(\tau))\). 因此, 如果 v=Dq 是沿路径的速度, 则 \(v_e(\tau) = Dq_e(\tau) = Dq(t(\tau)) \cdot Dt(\tau) = v(t(\tau)) \cdot v_t(\tau)\).

我们可以通过要求作用量的值不变来为扩展系统找到一个拉格朗日量 \(L_e\). 引入扩展拉格朗日作用量 \[ S_e[q_e, t](\tau_1, \tau_2) = \int_{\tau_1}^{\tau_2} L_e \circ \Gamma[q_e, t], \] 其中 \[ L_e(\tau; q_e, q_t; v_e, v_t) = L(q_t, q_e, v_e/v_t) v_t. \] 我们有 \[ S[q](t(\tau_1), t(\tau_2)) = S_e[q_e, t](\tau_1, \tau_2). \] \(q_e\) 的拉格朗日方程对于满足原始 q 拉格朗日方程的完全相同的轨迹成立.

扩展系统受到一个约束, 该约束关联时间与自变量. 我们假设约束的形式为 \(\phi(\tau; q_e, q_t; v_e, v_t) = q_t - f(\tau) = 0\). 该约束是涉及坐标和时间的完整约束, 因此我们可以通过增广拉格朗日量来包含该约束: 12 \[ L'_e(\tau; q_e, q_t, \lambda; v_e, v_t, v_\lambda) = L(q_t, q_e, v_e/v_t) v_t + v_\lambda (v_t - Df(\tau)). \] 坐标的共轭动量是:

\begin{align*} P_e(\tau; \dots) &= \partial_{2,0} L'_e(\tau; \dots) \\ &= \partial_2 L(q_t, q_e, v_e/v_t) \\ &= P(q_t, q_e, v_e/v_t) \end{align*} \begin{align*} P_t(\tau; \dots) &= \partial_{2,1} L'_e(\tau; \dots) \\ &= L(q_t, q_e, v_e/v_t) - \partial_2 L(q_t, q_e, v_e/v_t) (v_e/v_t) + v_\lambda \\ &= -E(q_t, q_e, v_e/v_t) + v_\lambda \end{align*}

6.4.1. 练习 5.10: 齐次扩展拉格朗日量

验证 \(L_e\) 在速度上是一次齐次的, 并且其勒让德变换为零.

6.4.2. 练习 5.11: 拉格朗日方程

a. 验证 \(q_e\) 的拉格朗日方程对满足原始 q 拉格朗日方程的完全相同的轨迹成立. b. 验证 t 的拉格朗日方程将能量变化率与 \(\partial_0 L\) 联系起来.

6.4.3. 练习 5.12: 洛伦兹变换

研究扩展相空间中的洛伦兹变换作为点变换.

6.4.4. 限制性三体问题

一个显示在扩展相空间中重构问题效用的例子是限制性三体问题: 低质量粒子受到两个其他大质量天体引力吸引的运动, 这两个天体在某个固定轨道上运动. 这个问题是一个理想化的情况, 即一个质量非常小的天体在两个质量大得多的天体存在下运动. 小天体对大天体的任何影响都被忽略了. 在最简单的版本中, 所有三个天体的运动都假定在同一平面内, 并且两个大质量天体的轨道是圆形的.

具有较大质量的天体的运动不受小质量的影响, 因此我们将这种情况建模为小天体在大天体经历

预定运动的时变场中运动. 这种情况可以用含时哈密顿量来捕捉: \[ H(t; x, y; p_x, p_y) = \frac{p_x^2 + p_y^2}{2m} - \frac{G m m_1}{r_1} - \frac{G m m_2}{r_2} \] 其中 \(r_1\) 和 \(r_2\) 是小天体到大天体的距离, m 是小天体的质量, \(m_1\) 和 \(m_2\) 是大天体的质量. 注意 \(r_1\) 和 \(r_2\) 是既依赖于小粒子的位置又依赖于大粒子时变位置的量.

大质量天体在圆形轨道上, 并与质心保持恒定距离. 设 \(a_1\) 和 \(a_2\) 是到质心的距离, 则距离满足 \(m_1 a_1 = m_2 a_2\). 角频率是 \(\Omega = \sqrt{G(m_1 + m_2)/a^3}\), 其中 a 是质量之间的距离. 在极坐标中, 以大质量子系统的质心为原点, 用 r 和 θ 描述低质量粒子的位置, 两个大质量天体的位置分别是 \(a_2 = m_1 a / (m_1 + m_2)\), 其 \(\theta_2 = \Omega t\), \(a_1 = m_2 a / (m_1 + m_2)\), 其 \(\theta_1 = \Omega t + \pi\). 到点质量的距离是

\begin{align*} r_2^2 &= r^2 + a_2^2 - 2 a_2 r \cos(\theta - \Omega t) \\ r_1^2 &= r^2 + a_1^2 - 2 a_1 r \cos(\theta - \Omega t - \pi). \end{align*}

因此, 在极坐标中, 哈密顿量是 \[ H(t; r, \theta; p_r, p_\theta) = \frac{1}{2m} \left( p_r^2 + \frac{p_\theta^2}{r^2} \right) - \frac{G m m_1}{r_1} - \frac{G m m_2}{r_2}. \] 因此我们看到哈密顿量可以写成某个函数 f 的形式, 使得 \[ H(t; r, \theta; p_r, p_\theta) = f(r, \theta - \Omega t, p_r, p_\theta). \] 基本特征是 θ 和 t 仅以组合 \(\theta - \Omega t\) 的形式出现在哈密顿量中.

摆脱时间依赖性的一种方法是选择一组新的变量, 其中一个坐标等于这个组合 \(\theta - \Omega t\), 方法是进行到旋转坐标系的点变换. 我们已经证明 \[ r' = r \]

\[ \theta' = \theta - \Omega t \] \[ p'_r = p_r \] \[ p'_\theta = p_\theta \] 对应的 \[ H'(t; r', \theta'; p'_r, p'_\theta) = H(t; r', \theta' + \Omega t; p'_r, p'_\theta) - \Omega p'_\theta = f(r', \theta', p'_r, p'_\theta) - \Omega p'_\theta \] 是一个正则变换. 新的哈密顿量, 它不是能量, 是守恒的, 因为没有显式的时间依赖性. 它是一个有用的运动积分–雅可比常数. 15

我们也可以通过进入扩展相空间, 选择 \(t = \tau\), 来消除对独立类时变量的依赖性. 哈密顿量

\begin{align*} H_e(\tau; r, \theta, t; p_r, p_\theta, p_t) &= H(t; r, \theta; p_r, p_\theta) + p_t \\ &= f(r, \theta - \Omega t, p_r, p_\theta) + p_t \end{align*}

是自治的, 因此是运动的一个积分. 同样, 我们看到 θ 和 t 仅以组合 \(\theta - \Omega t\) 出现, 这表明进行点变换到新坐标 \(\theta' = \theta - \Omega t\). 这个点变换不依赖于新的自变量 τ. 该变换在方程 (5.109-5.112) 中指定, 并辅以指定时间坐标及其共轭动量如何处理的关系:

\begin{align*} t' &= t \\ p_t &= -\Omega p'_\theta + p'_t. \end{align*}

新的哈密顿量是通过用变换复合旧哈密顿量得到的

\begin{align*} H'_e(\tau; r', \theta', t'; p'_r, p'_\theta, p'_t) &= H_e(\tau; r', \theta' + \Omega t'; t'; p'_r, p'_\theta, p'_t - \Omega p'_\theta) \\ &= f(r', \theta', p'_r, p'_\theta) + p'_t - \Omega p'_\theta \end{align*}

6.4.5. 练习 5.13: 扩展相空间中的变换

在 5.2.3 节中我们发现, 含时变换, 其坐标-动量部分的导数是辛的, 仅当哈密顿量通过添加满足某些约束(方程 5.54)的函数 K 进行修改时才是正则的. 证明对 K 的约束源自扩展相空间中的辛条件, 使用选择 t=τ.

6.4.6. 5.4.1 庞加莱-嘉当积分不变量

一个含时变换是正则的, 如果在扩展相空间中哈密顿量通过复合变换并且扩展相空间变换是辛的. 在 5.3 节中我们证明了如果变换的导数是辛的, 那么任何二维相空间区域在正则 \(q_i, p_i\) 平面上的投影面积之和是守恒的. 这对于扩展相空间中的辛变换也是成立的. 设 R' 和 R 是扩展相空间坐标的对应区域. 设 \(A_i\) 是区域 R 在正则 \(q_i, p_i\) 平面上的投影面积, \(A'_i\) 是对应区域 R' 在正则 \(q'_i, p'_i\) 平面上的投影面积. 在扩展相空间中, 我们还有一个到 t, pt 正则平面的投影. 设 \(A_n\) 是

区域 R 在 t, pt 平面上的投影面积. 那么我们有 \[ \sum_{i=0}^n A_i = \sum_{i=0}^n A'_i. \] 用积分表示, 这是 \[ \sum_{i=0}^n \int_{R_i} dq^i dp_i = \sum_{i=0}^n \int_{R'_i} dq'^i dp'_i. \] 这个面积积分和的等式可以用斯托克斯定理重写为线积分的等式, 对于单连通区域 \(R_{q_i, p_i}\) 和 \(R'_{q'_i, p'_i}\), \[ \sum_i \oint_{\partial R_{q_i, p_i}} p_i dq^i = \sum_i \oint_{\partial R'_{q'_i, p'_i}} p'_i dq'^i. \] 积分和求和的顺序可以颠倒, 因为 R 的边界投影到正则平面上的边界.

对于 t=τ 的特殊选择, 这个结果可以以一种有趣的方式重新表述. 设 E 是原始非扩展相空间中哈密顿量的值. 使用 \(q^n = t\) 和 \(p_n = p_t = -E\), 我们可以写 \[ \sum_{i=0}^{n-1} \int_{R_i} dq^i dp_i - \int_{R_n} dt dE = \sum_{i=0}^{n-1} \int_{R'_i} dq'^i dp'_i - \int_{R'_n} dt' dE' \] 以及 \[ \oint_{\partial R} \left( \sum_{i=0}^{n-1} p_i dq^i - E dt \right) = \oint_{\partial R'} \left( \sum_{i=0}^{n-1} p'_i dq'^i - E' dt' \right). \] 关系式 (5.121 和 5.122) 是庞加莱-嘉当积分不变量的两种表述.

6.5. 5.5 约化相空间

假设我们有一个具有 n+1 个自由度的系统, 由一个 2n+2 维相空间中的时间无关哈密顿量描述. 这里我们可以玩一个相反的游戏: 我们可以选择任何

广义坐标扮演" 时间" 的角色, 其共轭动量的负值扮演新的 n 自由度时间相关哈密顿量的角色, 在一个 2n 维的约化相空间中. 更精确地说, 设

\begin{align*} q &= (q^0, \dots, q^n) \\ p &= [p_0, \dots, p_n], \end{align*}

并且假设我们有一个由时间无关哈密顿量描述的系统 \[ H(t, q, p) = f(q, p) = E. \] 对于每个解路径, 都存在一个守恒量 E. 让我们选择一个坐标 \(q^n\) 作为约化相空间中的时间. 我们为 n 自由度约化相空间定义动力学变量:

\begin{align*} q_r &= (q_r^0, \dots, q_r^{n-1}) \\ p_r &= [p_{r0}, \dots, p_{r(n-1)}]. \end{align*}

在原始相空间中, 像 \(q^n\) 这样的坐标将时间映射到坐标. 在约化相空间的表述中, 我们将需要使用反函数 \(\tau = (q^n)^{-1}\) 将坐标映射到时间, 用新时间给出新坐标 \[ q_r^i = q^i \circ \tau \] \[ p_{ri} = p_i \circ \tau, \] 因此 \[ Dq_r^i = D(q^i \circ \tau) = (Dq^i \circ \tau) (D\tau) = (Dq^i \circ \tau) / (Dq^n \circ \tau) \] \[ Dp_{ri} = D(p_i \circ \tau) = (Dp_i \circ \tau) (D\tau) = (Dp_i \circ \tau) / (Dq^n \circ \tau). \] 我们提出, 我们在约化相空间中的系统的哈密顿量是 \(f(q^0, \dots, q^n; p_0, \dots, p_n) = E\) 关于 \(p_n\) 参数的逆的负值: \[ H_r(x, q_r, p_r) = -(\text{the } p_x \text{ such that } f(q_r, x; p_r, p_x) = E). \] 注意在约化相空间中, 我们将有范围 0…n-1 的索引, 而在原始

相空间指数范围是 0…n. 我们将证明 \(H_r\) 是给定动力学系统在约化相空间中的一个合适的哈密顿量. 要计算哈密顿方程, 我们必须展开 \(H_r\) 的隐式定义. 我们定义一个辅助函数 \[ g(x, q_r, p_r) = f(q_r, x; p_r, -H_r(x, q_r, p_r)). \] 注意根据构造, 这个函数恒等于常数 g = E. 因此它的所有偏导数都为零:

\begin{align*} \partial_0 g &= (\partial_0 f)^n - (\partial_1 f)^n \partial_0 H_r = 0 \\ (\partial_1 g)_i &= (\partial_0 f)_i - (\partial_1 f)^n (\partial_1 H_r)_i = 0 \\ (\partial_2 g)^i &= (\partial_1 f)^i - (\partial_1 f)^n (\partial_2 H_r)^i = 0, \end{align*}

这里我们省略了参数. 求解 \(H_r\) 的偏导数, 我们得到 \[ (\partial_1 H_r)_i = (\partial_0 f)_i / (\partial_1 f)^n = (\partial_1 H)_i / (\partial_2 H)^n \] \[ (\partial_2 H_r)^i = (\partial_1 f)^i / (\partial_1 f)^n = (\partial_2 H)^i / (\partial_2 H)^n. \] 利用这些关系, 我们可以从原始相空间中的哈密顿方程推导出约化相空间中的哈密顿方程. 因此我们得到约化相空间中的哈密顿方程:

\begin{align*} Dq_r^i(x) &= \frac{Dq^i(\tau(x))}{Dq^n(\tau(x))} \\ &= \frac{(\partial_2 H(\tau(x), q(\tau(x)), p(\tau(x))))^i}{(\partial_2 H(\tau(x), q(\tau(x)), p(\tau(x))))^n} \\ &= (\partial_2 H_r(x, q_r(x), p_r(x)))^i \end{align*} \begin{align*} Dp_{ri}(x) &= \frac{Dp_i(\tau(x))}{Dq^n(\tau(x))} \\ &= \frac{-(\partial_1 H(\tau(x), q(\tau(x)), p(\tau(x))))_i}{(\partial_2 H(\tau(x), q(\tau(x)), p(\tau(x))))^n} \\ &= -(\partial_1 H_r(x, q_r(x), p_r(x)))_i. \end{align*}

6.5.1. 中心场中的轨道

考虑平面中心场中的运动. 我们已经看到用极坐标表示的这个系统如方程 (3.95) 所示: \[ H(t; r, \phi; p_r, p_\phi) = \frac{p_r^2}{2m} + \frac{p_\phi^2}{2mr^2} + V(r) \] 存在两个自由度, 哈密顿量是时间无关的. 因此能量, 即哈密顿量的值, 在可实现路径上是守恒的. 让我们忘记时间, 用轨道半径 r 重新参数化这个系统. 16 为此我们求解 \[ H(t; r, \phi; p_r, p_\phi) = E \] 对于 \(p_r\), 得到 \[ H'(r; \phi; p_\phi) = -p_r = -\left( 2m(E - V(r)) - \frac{p_\phi^2}{r^2} \right)^{1/2} \] 这是约化相空间中的哈密顿量. 哈密顿方程现在相当简单: \[ \frac{d\phi}{dr} = \frac{\partial H'}{\partial p_\phi} = \frac{p_\phi}{r^2} \left( 2m(E - V(r)) - \frac{p_\phi^2}{r^2} \right)^{-1/2} \] \[ \frac{dp_\phi}{dr} = -\frac{\partial H'}{\partial \phi} = 0. \] 我们看到 \(p_\phi\) 不依赖于 r(就像它不依赖于 t 一样), 所以对于任何特定轨道, 我们可以定义一个常数角动量 L. 因此我们的问题最终变成了一个简单的求积: \[ \phi(r) = \int^r \frac{L}{r^2} \left( 2m(E - V(r)) - \frac{L^2}{r^2} \right)^{-1/2} dr + \phi_0. \]

6.6. 5.6 生成函数

我们已经考虑了广义正则变换的许多性质, 但没有一种通用的方法来得到它们. 这里我们介绍生成函数的方法. 生成函数是一个实值函数, 它通过其偏导数紧凑地指定了一个正则变换, 如下所示.

考虑一个实值函数 \(F_1(t, q, q')\) 将以两个坐标系表示的构型映射到实数. 我们将使用 \(F_1\) 来构造从一个坐标系到另一个坐标系的正则变换. 我们将证明以下关于坐标, 动量和哈密顿量之间的关系指定了一个正则变换:

\begin{align*} p &= \partial_1 F_1(t, q, q') \\ p' &= -\partial_2 F_1(t, q, q') \\ H'(t, q', p') - H(t, q, p) &= \partial_0 F_1(t, q, q'). \end{align*}

然后可以通过用其他变量解出一组变量来明确给出变换: 要用未加'变量表示加'变量, 设 A 是 \(\partial_1 F_1\) 关于第三个参数的逆, \[ q' = A(t, q, \partial_1 F_1(t, q, q')), \] 则

\begin{align*} q' &= A(t, q, p) \\ p' &= -\partial_2 F_1(t, q, A(t, q, p)). \end{align*}

设 B 是相空间变换的坐标部分 \(q = B(t, q', p')\). 这个 B 是 \(\partial_2 F_1\) 的反函数, 满足 \[ q = B(t, q', -\partial_2 F_1(t, q, q')). \] 使用 B, 我们有

\begin{align*} q &= B(t, q', p') \\ p &= \partial_1 F_1(t, B(t, q', p'), q'). \end{align*}

要以显式形式给出变换, 需要存在反函数 A 和 B.

我们可以使用上述关系来验证从一个相空间坐标集 (q, p) 具有哈密顿函数 H(t, q, p) 到另一个集合 (q', p') 具有哈密顿函数 H'(t, q', p') 的给定变换是否是正则的, 方法是找到一个 \(F_1(t, q, q')\) 使得上述关系成立. 我们也可以使用任意选择的 F₁ 型生成函数来生成新的正则变换.

6.6.1. 极坐标-正则变换

前面介绍的从坐标和动量 (x, px) 到新坐标和新动量 (θ, I) 的极坐标-正则变换 (5.32)

\begin{align*} x &= \sqrt{\frac{2I}{\alpha}} \sin\theta \\ p_x &= \sqrt{2I\alpha} \cos\theta, \end{align*}

是正则的. 这也可以通过找到一个合适的 F₁ 生成函数来证明. 生成函数满足一组偏微分方程 (5.148) 和 (5.149):

\begin{align*} p_x &= \partial_1 F_1(t, x, \theta) \\ I &= -\partial_2 F_1(t, x, \theta). \end{align*}

使用关系 (5.157) 和 (5.158), 它们指定了正则变换, 第一个方程 (5.159) 可以重写为 \[ p_x = \sqrt{x\alpha} \cot\theta = \partial_1 F_1(t, x, \theta), \]

这很容易积分得到 \[ F_1(t, x, \theta) = \frac{\alpha}{2} x^2 \cot\theta + \phi(t, \theta) \] 其中 φ 是关于第一次积分的某个积分" 常数" . 将这个 F₁ 的形式代入第二个偏微分方程 (5.160), 我们发现 \[ I = -\partial_2 F_1(t, x, \theta) = \frac{\alpha}{2} \frac{x^2}{\sin^2\theta} - \partial_1 \phi(t, \theta), \] 但我们看到如果我们设 φ=0, 就恢复了所需的关系. 所以生成函数 \[ F_1(t, x, \theta) = \frac{\alpha}{2} x^2 \cot\theta \] 生成极坐标-正则变换. 这表明这个变换是正则的.

6.6.2. 5.6.1 F₁ 生成正则变换

我们可以直接证明由 F₁ 生成的变换是正则的, 方法是证明如果哈密顿方程在一组坐标中成立, 那么哈密顿方程在另一组坐标中也成立. 设 F₁ 接受参数 (t, x, y). 坐标之间的关系是

\begin{align*} p_x &= \partial_1 F_1(t, x, y) \\ p_y &= -\partial_2 F_1(t, x, y) \end{align*}

哈密顿量之间的关系是 \[ H'(t, y, p_y) = H(t, x, p_x) + \partial_0 F_1(t, x, y). \] 将生成函数关系 (5.165) 代入这个方程, 我们得到 \[ H'(t, y, -\partial_2 F_1(t, x, y)) = H(t, x, \partial_1 F_1(t, x, y)) + \partial_0 F_1(t, x, y). \]

取这个表达式等式关于变量 x 和 y 的偏导数: 17

\begin{align*} -(\partial_2 H')^j (\partial_1 (\partial_2 F_1)_j)_i &= (\partial_1 H)_i + (\partial_2 H)^j (\partial_1 (\partial_1 F_1)_j)_i + (\partial_1 \partial_0 F_1)_i \\ (\partial_1 H')_i - (\partial_2 H')^j (\partial_2 (\partial_2 F_1)_j)_i &= (\partial_2 H)^j (\partial_2 (\partial_1 F_1)_j)_i + (\partial_2 \partial_0 F_1)_i \end{align*}

其中参数是明确的并且已被省略. 在解路径上, 我们可以使用 (x, px) 系统的哈密顿方程来用 x 和 px 的导数替换 H 的偏导数, 得到

\begin{align*} -(\partial_2 H')^j (\partial_1 (\partial_2 F_1)_j)_i &= -(Dp_x)_i + (Dx)^j (\partial_1 (\partial_1 F_1)_j)_i + (\partial_1 \partial_0 F_1)_i \\ (\partial_1 H')_i - (\partial_2 H')^j (\partial_2 (\partial_2 F_1)_j)_i &= (Dx)^j (\partial_2 (\partial_1 F_1)_j)_i + (\partial_2 \partial_0 F_1)_i. \end{align*}

现在从方程 (5.165) 计算 px 和 py 沿一致路径的导数

\begin{align*} (Dp_x)_i &= (\partial_1(\partial_1 F_1)_i)_j (Dx)^j + (\partial_2(\partial_1 F_1)_i)_j (Dy)^j + \partial_0(\partial_1 F_1)_i \\ (Dp_y)_i &= -(\partial_1(\partial_2 F_1)_i)_j (Dx)^j - (\partial_2(\partial_2 F_1)_i)_j (Dy)^j - \partial_0(\partial_2 F_1)_i. \end{align*}

将其中第一个代入方程 (5.169) 的第一个 \[ -(\partial_2 H')^j (\partial_1 (\partial_2 F_1)_j)_i = -(\partial_1 (\partial_2 F_1)_j)_i (Dy)^j. \] 注意 \((\partial_2 (\partial_1 F_1)_i)_j = (\partial_1 (\partial_2 F_1)_j)_i\). 假设 \(\partial_2 \partial_1 F_1\) 是非奇异的, 18 我们推导出了 (y, py) 系统的一个哈密顿方程 \[ Dy(t) = \partial_2 H'(t, y(t), p_y(t)). \]

6.6.3. 5.6.2 生成函数和积分不变量

生成函数可以用来指定一个正则变换, 按照上面给出的规定. 我们已经证明了生成函数规定给出了一个正则变换. 这里我们展示如何从正则变换得到生成函数, 并推导生成函数规则.

生成函数对正则变换的表示可以从庞加莱积分不变量推导出来. 概要如下. 我们首先证明, 给定一个正则变换, 积分不变量意味着存在一个相空间坐标的函数, 它可以写成路径无关的线积分. 然后我们证明, 用混合坐标表示的这个函数的偏导数给出了旧坐标和新坐标之间的生成函数关系. 我们只需要对时间无关的变换这样做, 因为时间相关的变换在扩展相空间中变成时间无关的.

6.6.4. F₁ 型生成函数

回想一下 5.3 节中关于积分不变量的结果. 在那里我们发现 \[ \oint_{\partial R} \sum_i p_i dq^i = \oint_{\partial R'} \sum_i p'_i dq'^i, \] 其中 R 是时间 t 时 (q', p') 坐标中的一个二维区域, R = Ct(R') 是 (q, p) 坐标中的对应区域, ∂R 表示区域 R 的边界. 这对任何区域及其边界都成立. 我们将证明这意味着

存在一个函数 F(t, q', p'), 可以用线积分定义 \[ F(t, q', p') - F(t, q'_0, p'_0) = \int_{\gamma=C_t(\gamma')} \sum_i p_i dq^i - \int_{\gamma'} \sum_i p'_i dq'^i, \] 其中 γ' 是相空间坐标中从 \( \gamma'(0) = (q'_0, p'_0) \) 开始到 \( \gamma'(1) = (q', p') \) 结束的曲线, γ 是其在 Ct 下的像. 设 \[ G_t(\gamma') = \int_{\gamma=C_t(\gamma')} \sum_i p_i dq^i - \int_{\gamma'} \sum_i p'_i dq'^i, \] 并设 γ'₁ 和 γ'₂ 是具有相同端点的两条路径. 那么 \[ G_t(\gamma'_2) - G_t(\gamma'_1) = \oint_{\partial R} p_i dq^i - \oint_{\partial R'} p'_i dq'^i = 0. \] 所以 Gt(γ') 的值只取决于 γ' 的端点. 设 \[ \bar{G}_{t, q'_0, p'_0}(q', p') = G_t(\gamma'), \] 其中 γ' 是从 q'₀, p'₀ 到 q', p' 的任何路径. 从 q'₀ p'₀ 更改初始点到 q'₁ p'₁ 会将 \bar{G} 的值改变一个常数 \[ \bar{G}_{t, q'_1, p'_1}(q', p') - \bar{G}_{t, q'_0, p'_0}(q', p') = \bar{G}_{t, q'_1, p'_1}(q'_0, p'_0). \] 所以我们可以定义 F 使得 \[ \bar{G}_{t, q'_0, p'_0}(q', p') = F(t, q', p') - F(t, q'_0, p'_0), \] 证明了方程 (5.175). 相空间点 (q, p) 在未加'变量中对应于 (q', p') 在加'变量中, 在任意时间 t. 给定 q' 和 p', p 和 q 都被确定. 通常, 给定这四个量中的任意两个, 我们可以解出另外两个. 如果我们能用位置解出动量, 我们得到一类特定的

生成函数. 19 我们引入函数

\begin{align*} p &= f_p(t, q, q') \\ p' &= f_{p'}(t, q, q') \end{align*}

它们求解变换方程 \((t, q, p) = C(t, q', p')\) 得到指定时间的动量关于坐标的表达式. 有了这些, 我们引入一个函数 \(F_1(t, q, q')\) 使得 \[ F_1(t, q, q') = F(t, q, f_p(t, q, q')). \] 函数 \(F_1\) 与 F 具有相同的值, 但参数不同. 我们将证明这个 \(F_1\) 实际上是 5.6 节中介绍的用于正则变换的生成函数. 让我们明确 \(F_1\) 的定义, 用线积分表示 \[ F_1(t, q, q') - F_1(t, q_0, q'_0) = \int_{q_0, q'_0}^{q, q'} (f_p(t, q, q') dq - f_{p'}(t, q, q') dq'). \] 这两个线积分可以合并成这一个, 因为它们都表示为沿 (q, q') 中曲线的积分. 我们可以利用 \(F_1\) 的路径无关性来计算 \(F_1\) 关于特定分量的偏导数

并因此推导出动量的生成函数关系. 20 所以我们得出结论 \[ (\partial_1 F_1(t, q, q'))_i = f_{p_i}(t, q, q') \] 以及 \[ (\partial_2 F_1(t, q, q'))_i = -f_{p'_i}(t, q, q'). \] 这些正是正则变换的生成函数关系和动量部分. 所以从一个正则变换开始, 我们可以找到一个生成函数, 通过它的导数给出坐标-动量部分的变换.

从一个一般的正则变换开始, 我们构造了一个 F₁ 生成函数, 从中可以重新推导出正则变换. 所以, 我们期望对于每个正则变换都存在一个生成函数. 21

6.6.5. F₂ 型生成函数

点变换被排除在前面的论证之外, 因为我们无法从坐标推导出动量. 然而, 类似的推导允许我们为这种情况构造一个生成函数. 积分不变量给出了面积积分的等式. 还有其他写面积关系 (5.83) 等式作为线积分的方式. 我们也可以写 \[ \oint_{\partial R} \sum_i p_i dq^i = -\oint_{\partial R'} \sum_i q'_i dp'_i. \] 负号的出现是因为翻转轴线导致我们以相反的方向遍历面积. 重复刚才的论证, 我们可以定义一个函数 \[ F'(t, q', p') - F'(t, q'_0, p'_0) = \int_{\gamma=C(t, \gamma')} \sum_i p_i dq^i + \int_{\gamma'} \sum_i q'_i dp'_i, \] 它不依赖于路径 γ'. 如果我们可以解出 q 和 p 关于 q 和 p' 的表达式, 我们可以定义函数

\begin{align*} q' &= f'_{q'}(t, q, p') \\ p &= f'_{p}(t, q, p') \end{align*}

并定义 \[ F_2(t, q, p') = F'(t, f'_{q'}(t, q, p'), p'). \] 那么正则变换由 F₂ 的偏导数给出: \[ (\partial_1 F_2(t, q, p'))_i = f'_{p_i}(t, q, p') \] 以及 \[ (\partial_2 F_2(t, q, p'))_i = f'_{q'^i}(t, q, p'). \]

6.6.6. F₁ 和 F₂ 之间的关系

对于既可以用 F₁ 又可以用 F₂ 描述的正则变换, 它们之间必须存在关系. 面积积分的备用线积分表达式是相关的. 考虑差值

\begin{align*} (F'(t, q', p') - F'(t, q'_0, p'_0)) - (F(t, q', p') - F(t, q'_0, p'_0)) &= \int_{\gamma'} \sum_i p'_i dq'^i + \int_{\gamma'} \sum_i q'_i dp'_i \\ &= \int_{\gamma'} \sum_i d(p'_i q'^i) \\ &= \sum_i (p')^i (q')^i - \sum_i (p'_0)^i (q'_0)^i. \end{align*}

函数 F 和 F' 通过一个积分项相关联 \[ F'(t, q', p') - F(t, q', p') = p' q', \] F₁ 和 F₂ 也是如此 \[ F_2(t, q, p') - F_1(t, q, q') = p' q'. \] 生成函数 F₁ 和 F₂ 通过勒让德变换相关联:

\begin{align*} p &= -\partial_2 F_1(t, q, q') \\ p' q' &= -F_1(t, q, q') + F_2(t, q, p') \\ q' &= \partial_2 F_2(t, q, p'). \end{align*}

我们有被动变量 q 和 t:

\begin{align*} -\partial_1 F_1(t, q, q') + \partial_1 F_2(t, q, p') &= 0 \\ -\partial_0 F_1(t, q, q') + \partial_0 F_2(t, q, p') &= 0. \end{align*}

但是从第一个变换 \(p = \partial_1 F_1(t, q, q')\), 所以 \[ p = \partial_1 F_2(t, q, p'). \] 此外, 由于 \(H'(t, q', p') - H(t, q, p) = \partial_0 F_1(t, q, q')\), 我们可以得出结论: \[ H'(t, q', p') - H(t, q, p) = \partial_0 F_2(t, q, p') \]

6.6.7. 5.6.3 生成函数的类别

总之, 我们使用 F₁ 型生成函数来构造正则变换:

\begin{align*} p &= \partial_1 F_1(t, q, q') \\ p' &= -\partial_2 F_1(t, q, q') \\ H'(t, q', p') - H(t, q, p) &= \partial_0 F_1(t, q, q'). \end{align*}

我们也可以用形式为 \(F_2(t, q, p')\) 的生成函数来表示正则变换, 其中 F₂ 的第三个参数是加'系统中的动量. 22

\begin{align*} p &= \partial_1 F_2(t, q, p') \\ q' &= \partial_2 F_2(t, q, p') \\ H'(t, q', p') - H(t, q, p) &= \partial_0 F_2(t, q, p') \end{align*}

在 F₁ 的情况下, 要以显式形式给出变换需要构造合适的反函数来求解方程.

类似地, 我们可以构造另外两种形式的生成函数, 足够助记地命名为 F₃ 和 F₄:

\begin{align*} q &= -\partial_1 F_3(t, p, q') \\ p' &= -\partial_2 F_3(t, p, q') \\ H'(t, q', p') - H(t, q, p) &= \partial_0 F_3(t, p, q') \end{align*}

以及

6.6.8. 扩展相空间中的生成函数

我们可以用混合变量生成函数表示正则变换. 我们可以将它们扩展以表示扩展相空间中的变换. 设 \(F_2\) 是一个具有参数 \((t, q, p')\) 的生成函数. 那么, 扩展相空间中对应的 \(F_{e2}\) 可以取为 \[ F_{e2}(\tau; q, t; p', p'_t) = t p'_t + F_2(t, q, p'). \] 坐标和动量之间的关系与之前相同. 我们还有

\begin{align*} p_t &= (\partial_1 F_{e2})_n(\tau; q, t; p', p'_t) = p'_t + \partial_0 F_2(t, q, p') \\ t' &= (\partial_2 F_{e2})^n(\tau; q, t; p', p'_t) = t. \end{align*}

第一个方程给出了原始哈密顿量之间的关系: \[ H'(t, q', p') = H(t, q, p) + \partial_0 F_2(t, q, p'), \] 符合要求. 我们知道不含时正则变换具有辛 qp 部分. 时间相关变换的生成函数表示不依赖于扩展相空间中的自变量. 因此, 在扩展相空间中, 变换的 qp 部分,

包括时间和与时间共轭的动量, 是辛的.

6.6.9. 5.6.4 点变换

点变换可以用 F₂ 型生成函数表示. 方程 (5.6) 定义了从坐标变换 F 派生出的正则点变换, 它们是: \[ (t, q, p) = C(t, q', p') = (t, F(t, q'), p' (\partial_1 F(t, q'))^{-1}). \] 设 S 是 F 关于第二个参数的反变换 \[ q' = S(t, q), \] 使得 \(q' = S(t, F(t, q'))\). 伴随这个坐标变换的动量变换是 \[ p' = p (\partial_1 S(t, q))^{-1}. \] 我们可以通过积分方程 (5.206) 来找到给出这个变换的生成函数 F₂ \[ F_2(t, q, p') = p' S(t, q) + \phi(t, q). \] 将此代入方程 (5.205), 我们得到 \[ p = p' \partial_1 S(t, q) + \partial_1 \phi(t, q). \] 我们不需要 φ 提供的自由度, 所以我们可以将其设为零: \[ F_2(t, q, p') = p' S(t, q), \] 其中 \[ p = p' \partial_1 S(t, q). \] 所以这个 F₂ 给出了方程 (5.218) 和 (5.219) 的正则变换. 坐标变换 S 的正则变换是 F 的正则变换的逆. 根据设计

F 和 S 在坐标参数上是逆的. 恒等函数是 \(q' = I(q') = S(t, F(t, q'))\). 微分得到 \[ 1 = \partial_1 S(t, F(t, q')) \partial_1 F(t, q'), \] 所以 \[ \partial_1 F(t, q') = (\partial_1 S(t, F(t, q')))^{-1}. \] 利用这一点, 动量之间的关系 (5.223) 是 \[ p = p' (\partial_1 F(t, q'))^{-1}, \] 表明 F₂ 给出与点变换 (5.217) 等价的点变换. 所以从这个另一个角度来看, 我们看到点变换是正则的. 点变换对应的 F₁ 是:

\begin{align*} F_1(t, q, q') &= F_2(t, q, p') - p' q' \\ &= p' S(t, q) - p' q' \\ &= 0. \end{align*}

6.6.10. 极坐标和直角坐标

一个常见的点变换是在极坐标和直角坐标之间转换:

\begin{align*} x &= r \cos\theta \\ y &= r \sin\theta. \end{align*}

使用刚刚推导出的点变换生成函数公式: \[ F_2(t; r, \theta; p_x, p_y) = [p_x \ p_y] \begin{pmatrix} r \cos\theta \\ r \sin\theta \end{pmatrix}. \] 完整的变换由此推导出来:

\begin{align*} (x, y) &= \partial_2 F_2(t; r, \theta; p_x, p_y) \\ &= (r \cos\theta, r \sin\theta) \\ [p_r, p_\theta] &= \partial_1 F_2(t; r, \theta; p_x, p_y) \\ &= [p_x \cos\theta + p_y \sin\theta, -p_x r \sin\theta + p_y r \cos\theta]. \end{align*}

我们可以将直角坐标分离到变换的一侧, 极坐标分离到另一侧 \[ p_r = \frac{1}{r} (p_x x + p_y y) \] \[ p_\theta = -p_x y + p_y x. \] 因此, 用牛顿向量解释, \(p_r = \hat{r} \cdot \mathbf{p}\) 是线性动量的径向分量, \(p_\theta = ||\mathbf{r} \times \mathbf{p}||\) 是角动量的大小. 由于点变换是时间无关的, 哈密顿量通过复合变换.

6.6.11. 旋转坐标

一个有用的含时点变换是到旋转坐标系的转换. 这在极坐标中最容易完成. 这里我们有 \[ r' = r \] \[ \theta' = \theta - \Omega t, \] 其中 Ω 是运动坐标系的角速度. 生成函数是 \[ F_2(t; r, \theta; p'_r, p'_\theta) = [p'_r \ p'_\theta] \begin{pmatrix} r \\ \theta - \Omega t \end{pmatrix}. \] 这产生了变换方程

\begin{align*} r' &= r \\ \theta' &= \theta - \Omega t \\ p_r &= p'_r \\ p_\theta &= p'_\theta, \end{align*}

这表明动量在两个坐标系中是相同的. 然而, 这里的哈密顿量不是简单的复合: \[ H'(t; r', \theta'; p'_r, p'_\theta) = H(t; r', \theta' + \Omega t; p'_r, p'_\theta) - p'_\theta \Omega. \] 哈密顿量相差生成函数关于时间参数的导数. 变换到旋转坐标系, 哈密顿量的值相差角动量和坐标系角速度的乘积. 注意这个对哈密顿量的加法与前面发现的 (5.57) 相同.

6.6.12. 练习 5.14: 扩展相空间中的旋转坐标

在扩展相空间中, 时间是坐标之一. 使用 F₂ 型生成函数在扩展相空间中进行到旋转坐标的变换. 将通过与变换复合得到的哈密顿量与哈密顿量 (5.235) 进行比较.

6.6.13. 两体问题

在这个例子中, 我们说明了如何使用正则变换来消除一些自由度, 留下一个自由度较少的基本问题.

假设只有坐标的某些组合出现在哈密顿量中. 我们进行正则变换到一个新的相空间坐标集, 使得旧相空间坐标的这些组合是新相空间坐标的一部分. 我们选择其他独立的坐标组合来完成集合. 优点是这些其他独立坐标不会出现在新的哈密顿量中, 所以与它们共轭的动量是守恒量.

让我们看看这个想法如何让我们将两个引力体的问​​题简化为两个物体相对运动的更简单问题, 并在此过程中发现质心动量是守恒的.

考虑两个质量为 \(m_1\) 和 \(m_2\) 的运动, 仅受由势能 V(r) 描述的相互引力吸引. 这个问题有六个自由度. 粒子的直角坐标是 \(x_1\) 和 \(x_2\), 共轭动量为 \(p_1\) 和 \(p_2\). 它们中的每一个都是三个直角分量的结构. 粒子之间的距离是 \(r = \|x_1 - x_2\|\). 两体问题的哈密顿量是: \[ H(t; x_1, x_2; p_1, p_2) = \frac{p_1^2}{2m_1} + \frac{p_2^2}{2m_2} + V(r). \] 我们此时不需要进一步指定 V.

我们注意到出现在哈密顿量中的坐标的唯一线性组合是 \(x_2 - x_1\). 我们选择新的坐标, 使得新坐标的一个元组是这个组合 \[ x = x_2 - x_1 \] 为了完成新坐标集, 我们选择另一个元组是某个独立的线性组合 \[ X = a x_1 + b x_2 \] 其中 a 和 b 待定. 我们可以使用 F₂ 型生成函数 \[ F_2(t; x_1, x_2; p, P) = (x_2 - x_1) p + (a x_1 + b x_2) P, \] 其中 p 和 P 将是分别与 x 和 X 共轭的新动量. 我们推导出

\begin{align*} (x, X) &= \partial_2 F_2(t; x_1, x_2; p, P) = (x_2 - x_1, a x_1 + b x_2) \\ [p_1, p_2] &= \partial_1 F_2(t; x_1, x_2; p, P) = [-p + a P, p + b P]. \end{align*}

我们可以解出这些新动量: \[ P = \frac{p_1 + p_2}{a + b} \] \[ p = \frac{a p_2 - b p_1}{a + b}. \] 生成函数不是时间相关的, 所以新的哈密顿量是旧哈密顿量与变换复合:

\begin{align*} H'(t; x, X; p, P) &= \frac{(-p + a P)^2}{2m_1} + \frac{(p + b P)^2}{2m_2} + V(\|x\|) \\ &= \frac{p^2}{2\mu} + \frac{P^2}{2M} + V(\|x\|) + \left( \frac{b}{m_2} - \frac{a}{m_1} \right) p P, \end{align*}

定义为 \[ \frac{1}{\mu} = \frac{1}{m_1} + \frac{1}{m_2} \]

以及 \[ \frac{1}{M} = \frac{a^2}{m_1} + \frac{b^2}{m_2}. \] 我们认出 μ 是通常的" 约化质量" . 注意, 如果与 pP 成正比的项不存在, 那么 x 和 X 的自由度将完全不耦合, 此外, 哈密顿量的 X 部分将只是一个自由粒子的哈密顿量, 这是平凡可解的. " 交叉项" 消失的条件是 \[ \frac{b}{m_2} - \frac{a}{m_1} = 0, \] 满足条件的 \[ a = c m_1 \] \[ b = c m_2 \] 对于任何 c. 要定义变换, c 必须非零. 所以有了这个选择, 哈密顿量变成 \[ H'(t; x, X; p, P) = H_X(t, X, P) + H_x(t, x, p) \] 其中 \[ H_x(t, x, p) = \frac{p^2}{2\mu} + V(r) \] 以及 \[ H_X(t, X, P) = \frac{P^2}{2M}. \] 约化质量与之前相同, 现在 \[ M = \frac{1}{c^2 (m_1 + m_2)} \] 注意, 无需进一步指定 c, 问题已经分离为确定两个质量相对运动的问题, 以及其他自由度的问题. 我们不需要先验知识质心

可能很重要; 事实上, 只有对于特定的 c = \((m_1 + m_2)^{-1}\), X 才变成质心.

6.6.14. 练习 5.15: 雅可比坐标

考虑一个 n 体问题, 其中势能是每对单独考虑的物体势能之和, 并且这个势能仅取决于物体之间的距离. 该系统的哈密顿量是 \[ H = T + V \] 其中 \[ T(t; x_0, x_1, \dots, x_{n-1}; p_0, p_1, \dots, p_{n-1}) = \sum_{i=0}^{n-1} \frac{p_i^2}{2m_i}, \] 以及 \[ V(t; x_0, x_1, \dots, x_{n-1}; p_0, p_1, \dots, p_{n-1}) = \sum_{i

质量常数. 这些相空间坐标称为正则日心坐标.

b. 雅可比坐标分离了质心运动, 而不破坏动能通常的对角二次形式. 雅可比坐标定义为 \[ x'_i = x_i - X_{i-1}, \] 即物体 i 的位置与较低索引物体质心的差, 以及 \[ x'_0 = X_{n-1}, \] 即所有物体的质心. 通过使用 F₂ 型生成函数找到共轭动量来完成正则变换. 证明动能仍然可以写成 \[ T(t; x'_0, x'_1, \dots, x'_{n-1}; p'_0, p'_1, \dots, p'_{n-1}) = \sum_{i=0}^{n-1} \frac{{p'_i}^2}{2m'_i}, \] 对于某些常数 \(m'_i\), 并且势能 V 可以完全用索引 i > 0 的雅可比坐标 \(x'_i\) 表示.

c. 是否存在任何其他正则变换, 既能分离质心, 又能将动能保留为动量平方和?

6.6.15. 周转圆运动

通常需要组合一系列正则变换来构成我们对任何特定力学问题所需的变换. 我们提供的变换作为这些计算中的组成部分特别有用.

我们将说明如何使用正则变换来了解平面中心场中的运动. 策略将是考虑中心场中圆周运动的微扰. 分析将通过变换到一个随圆形参考轨道运动的旋转坐标系, 然后进行近似, 将分析限制在仅略微偏离圆轨道的轨道上.

回想一下, 在直角坐标中, 我们可以轻松地写出质量为 m 的粒子在仅取决于到原点距离的势能场中运动的哈密顿量, 如下所示: \[ H(t; x, y; p_x, p_y) = \frac{p_x^2 + p_y^2}{2m} + V(\sqrt{x^2 + y^2}) \]

在这个坐标系中, 哈密顿方程很简单, 它们正是数值积分发展轨迹所需要的, 但表达式并不具启发性:

\begin{align*} Dx &= \frac{p_x}{m} \\ Dy &= \frac{p_y}{m} \\ Dp_x &= -DV(\sqrt{x^2 + y^2}) \frac{x}{\sqrt{x^2 + y^2}} \\ Dp_y &= -DV(\sqrt{x^2 + y^2}) \frac{y}{\sqrt{x^2 + y^2}} \end{align*}

我们可以通过转换到以力源为中心的极坐标来了解更多信息.

\begin{align*} x &= r \cos\phi \\ y &= r \sin\phi \end{align*}

这个坐标系明确地包含了势能的几何对称性. 利用上一节的结果, 我们可以写出新的哈密顿量: \[ H'(t; r, \phi; p_r, p_\phi) = \frac{p_r^2}{2m} + \frac{p_\phi^2}{2mr^2} + V(r) \] 我们现在可以在这些新坐标中写出哈密顿方程, 它们比直角坐标表示的方程更具启发性:

\begin{align*} Dr &= \frac{p_r}{m} \\ D\phi &= \frac{p_\phi}{mr^2} \\ Dp_r &= \frac{p_\phi^2}{mr^3} - DV(r) \\ Dp_\phi &= 0 \end{align*}

我们看到角动量 \(p_\phi\) 是守恒的, 我们可以自由选择它的常数值, 所以 \(D\phi\) 只取决于 r. 我们还看到我们可以在任何半径 \(R_0\) 处建立一个圆轨道: 我们选择 \(p_\phi = p_{\phi0}\) 使得 \(p_{\phi0}^2 / (mR_0^3) - DV(R_0) = 0\). 这

将确保 \(Dp_r = 0\), 因此 \(Dr = 0\). 这个圆轨道的角速度(平方)是 \[ \Omega^2 = \frac{DV(R_0)}{mR_0}. \] 考虑与圆轨道接近的轨道如何偏离圆轨道是具有启发性的. 最好在一个框架中完成, 其中在圆轨道上运动的物体是原点处的静止点. 我们可以通过转换到随圆轨道旋转并以轨道物体为中心的坐标来做到这一点. 我们将分三个阶段完成. 首先, 我们将变换到一个角速度为 Ω 旋转的极坐标系. 然后我们将回到直角坐标, 最后, 我们将平移坐标, 使原点位于参考圆轨道上.

我们首先研究旋转极坐标系中的系统. 这是一个含时坐标变换: \[ r' = r \] \[ \phi' = \phi - \Omega t \] \[ p'_r = p_r \] \[ p'_\phi = p_\phi \] 使用上一节推导出的公式, 我们可以直接写出新的哈密顿量: \[ H''(t; r', \phi'; p'_r, p'_\phi) = \frac{p_r^{'2}}{2m} + \frac{p_\phi^{'2}}{2mr^{'2}} + V(r') - p'_\phi \Omega \] 我们看到 H'' 不是时间相关的, 因此是守恒的, 但它不是能量. 能量在运动坐标系中不守恒, 但这里守恒的是一个新量, 它结合了能量与新坐标系中粒子的角动量和坐标系角速度的乘积. 我们将需要跟踪这个项.

接下来, 我们回到直角坐标, 但它们随参考圆轨道旋转: \[ x' = r' \cos\phi' \] \[ y' = r' \sin\phi' \] \[ p'_x = p'_r \cos\phi' - \frac{p'_\phi}{r'} \sin\phi' \]

\[ p'_y = p'_r \sin\phi' + \frac{p'_\phi}{r'} \cos\phi'. \] 哈密顿量是 \[ H'''(t; x', y'; p'_x, p'_y) = \frac{p_x^{'2} + p_y^{'2}}{2m} + \Omega (y' p'_x - x' p'_y) + V(\sqrt{x'^2 + y'^2}). \] 再进行一次快速操作, 我们将坐标系平移, 使原点位于我们的圆轨道上. 我们定义新的直角坐标 ξ 和 η, 以及以下简单的坐标和动量正则变换: \[ \xi = x' - R_0 \] \[ \eta = y' \] \[ p_\xi = p'_x \] \[ p_\eta = p'_y. \] 在这个最终坐标系中, 哈密顿量是 \[ H''''(t; \xi, \eta; p_\xi, p_\eta) = \frac{p_\xi^2 + p_\eta^2}{2m} + \Omega (\eta p_\xi - (\xi + R_0) p_\eta) + V(\sqrt{(\xi + R_0)^2 + \eta^2}), \] 哈密顿方程毫无用处地复杂, 但下一步是只考虑坐标 ξ 和 η 与 \(R_0\) 相比很小的轨迹. 在这个假设下, 我们将能够构造近似的运动方程, 这些方程在坐标中是线性的, 从而产生简单可分析的运动. 注意, 到目前为止, 我们没有做任何近似. 上面的方程对于中心场中的任何轨迹都是完全准确的.

想法是将哈密顿量中的势能项展开为级数, 并丢弃任何高于二阶的坐标项, 从而得到一阶精确的哈密顿方程: \[ U(\xi, \eta) = V(\sqrt{(\xi + R_0)^2 + \eta^2}) \] \[ = V(R_0 + \xi + \frac{\eta^2}{2R_0} + \dots) \]

\[ = V(R_0) + DV(R_0) \left( \xi + \frac{\eta^2}{2R_0} \right) + D^2 V(R_0) \frac{\xi^2}{2} + \dots. \] 所以(取反的)广义力是: \[ \partial_0 U(\xi, \eta) = DV(R_0) + D^2 V(R_0) \xi + \dots \] \[ \partial_1 U(\xi, \eta) = DV(R_0) \frac{\eta}{R_0} + \dots. \] 利用这个展开, 我们得到线性化的哈密顿方程:

\begin{align*} D\xi &= \frac{p_\xi}{m} + \Omega \eta \\ D\eta &= \frac{p_\eta}{m} - \Omega(\xi + R_0) \\ Dp_\xi &= -DV(R_0) - D^2 V(R_0) \xi + \dots + \Omega p_\eta \\ Dp_\eta &= -DV(R_0) \frac{\eta}{R_0} + \dots - \Omega p_\xi. \end{align*}

当然, 一旦我们有了线性方程, 我们就知道如何精确地求解它们. 由于线性化哈密顿量是守恒的, 我们不可能得到指数扩张或坍缩. 所以可能的解非常有限. 将这些方程转换成二阶系统是有启发性的. 我们使用 \(\Omega^2 = DV(R_0)/(mR_0)\) 来消除 DV 项: \[ D^2 \xi - 2\Omega D\eta = \left( \Omega^2 - \frac{D^2 V(R_0)}{m} \right) \xi \] \[ D^2 \eta + 2\Omega D\xi = 0. \] 结合这些, 我们发现 \[ D^3 \xi + \omega^2 D\xi = 0 \] 其中 \[ \omega^2 = 3\Omega^2 + \frac{D^2 V(R_0)}{m}. \] 因此我们有一个频率为 ω 的简谐振子作为解的分量之一. 一般解有

三部分 \[ \begin{pmatrix} \xi(t) \\ \eta(t) \end{pmatrix} = \eta_0 \begin{pmatrix} 0 \\ 1 \end{pmatrix} \] \[ + \xi_0 \begin{pmatrix} 1 \\ -2At \end{pmatrix} \] \[ + C_0 \begin{pmatrix} \sin(\omega t + \phi_0) \\ \frac{2\Omega}{\omega} \cos(\omega t + \phi_0) \end{pmatrix} \] 其中 \[ A = \frac{\Omega^2 m - D^2 V(R_0)}{4\Omega m}. \] 常数 \(\eta_0, \xi_0, C_0, \phi_0\) 由初始条件确定. 如果 \(C_0=0\), 则感兴趣的粒子在圆轨道上, 但不一定与参考轨迹相同. 如果 \(C_0=0\) 且 \(\xi_0=0\), 我们有一个" 同行者" , 即与参考轨道在同一圆轨道上, 但相位不同的粒子. 如果 \(C_0=0\) 且 \(\eta_0=0\), 我们有一个粒子在内部或外部于参考轨道的圆轨道上, 并从参考轨道剪切开. 剪切是由于圆轨道的角速度随半径变化的事实. 常数 A 给出了每个半径处的剪切速率. 如果 \(\eta_0=0\) 且 \(\xi_0=0\) 但 \(C_0 \neq 0\), 则我们有" 周转圆运动" . 近圆轨道上的粒子可以看作是在围绕参考圆轨道的一个椭圆上运动. 该椭圆在圆周运动方向上被拉长了因子 \(2\Omega/\omega\), 并且它以与圆周运动相反的方向旋转. 周转圆的初始相位是 \(\phi_0\). 当然, 这些解的任何组合都可能存在.

周转圆频率 ω 和剪切率 A 由力定律(势能的径向导数)确定. 对于与半径的幂成正比的力定律 \[ F \propto r^{1-n} \] 周转圆频率与轨道频率相关: \[ \frac{\omega}{\Omega} = 2 \sqrt{1 - \frac{n}{4}} \]

剪切率是 \[ \frac{A}{\Omega} = \frac{n}{4}. \] 对于一些特定的整数力定律, 我们看到:

n 0 1 2 3 4 5
A/Ω 0 1/4 1/2 3/4 1 5/4
ω/Ω 2 √3 √2 1 0 ±i

我们可以通过检查几个例子来了解周转圆近似产生的轨道类型. 对于某些力定律, 我们得到周转圆频率与轨道频率的整数比. 在这些情况下, 我们得到闭合轨道. 对于平方反比力定律 (n=3), 我们得到椭圆轨道, 力场中心位于椭圆的一个焦点. 图 5.3 展示了如何通过将椭圆周转圆上的运动与相同频率的圆上运动叠加来构造这种轨道的近似. 如果力与半径成正比 (n=0), 我们得到一个二维谐振子. 这里周转圆频率是轨道频率的两倍. 图 5.4 展示了这如何产生以力源为中心的椭圆轨道. 如果力与半径的 -3/4 次幂成正比, 则周转圆频率是轨道频率的 3/2. 这产生了一个三叶模式, 如图 5.5 所示. 对于其他力定律, 该分析预测的轨道是由进动的近似椭圆产生的多叶模式. 大多数情况具有不成公比的周转圆频率和轨道频率, 导致轨道在有限时间内不闭合.

周转圆近似给出了实际轨道样貌的一个很好的概念. 图 5.6, 通过数值积分粒子在场中运动的原始直角坐标方程绘制, 显示了 \(F = -r^{-2.3}\) 力定律特有的玫瑰花结型图像, 其周转圆频率和轨道频率不成公比.

我们可以直接比较数值积分系统与我们的周转圆近似之一. 例如, 数值积分我们的 \(F \propto r^{-3/4}\) 系统的结果与

我们通过周转圆得到的图像非常相似. (见图 5.7 并与图 5.5 比较. )

6.6.16. 练习 5.16: 坍缩轨道

当力定律变得更陡峭时, 到底会发生什么? 通过绘制 r, pr 空间中哈密顿量的等高线来研究这个问题, 对于力定律指数 n 的各种值. 对于哪些 n 值存在稳定的圆轨道? 在不存在稳定圆轨道的情况下, 圆轨道和其他非圆轨道会发生什么? 这些结果如何与刘维尔定理和哈密顿系统中吸引子的不存在性一致?

6.6.17. 5.6.5 经典" 规范" 变换

向拉格朗日量添加全时间导数会导致相同的拉格朗日方程. 然而, 这两个拉格朗日量具有不同的动量, 它们导致不同的哈密顿方程. 在这里, 我们找出如何用生成函数表示相应的正则变换.

让我们重述第一章中关于全时间导数和拉格朗日量的结果. 考虑某个函数 G(t, q)

时间和坐标的函数. 我们证明了如果 L 和 L' 通过 \[ L'(t, q, \dot{q}) = L(t, q, \dot{q}) + \partial_0 G(t, q) + \partial_1 G(t, q) \dot{q} \] 相关联, 那么运动的拉格朗日方程是相同的. 两个拉格朗日量中使用的广义坐标是相同的, 但与坐标共轭的动量是不同的. 按通常方式定义 \[ P(t, q, \dot{q}) = \partial_2 L(t, q, \dot{q}) \] 以及 \[ P'(t, q, \dot{q}) = \partial_2 L'(t, q, \dot{q}). \] 所以我们有 \[ P'(t, q, \dot{q}) = P(t, q, \dot{q}) + \partial_1 G(t, q). \] 在轨迹上计算, 我们有 \[ p'(t) = p(t) + \partial_1 G(t, q(t)). \] 这个变换是 F₂ 型变换的一个特例. 设 \[ F_2(t, q, p') = q p' - G(t, q), \] 那么相关的变换是

\begin{align*} q' &= \partial_2 F_2(t, q, p') = q \\ p &= \partial_1 F_2(t, q, p') = p' - \partial_1 G(t, q) \\ H'(t, q', p') &= H(t, q, p) + \partial_0 F_2(t, q, p') \\ &= H(t, q, p) - \partial_0 G(t, q). \end{align*}

显式地, 新的哈密顿量是 \[ H'(t, q', p') = H(t, q', p' - \partial_1 G(t, q')) - \partial_0 G(t, q'), \] 其中我们利用了 q=q' 这一事实. 这个变换有趣之处在于坐标变换是恒等变换, 但新旧动量不同,

即使在 G 没有显式时间依赖性的情况下也是如此. 假设我们有一个形式为 \[ H(t, x, p) = \frac{p^2}{2m} + V(x) \] 的哈密顿量, 那么变换后的哈密顿量是 \[ H'(t, x', p') = \frac{(p' - \partial_1 G(t, x'))^2}{2m} + V(x') - \partial_0 G(t, x'). \] 我们看到这个变换可以用来修改哈密顿量中动量线性出现的项. 从 H 开始, 变换引入线性动量项; 从 H' 开始, 变换消除线性项.

我们用驱动摆来说明这个变换的用法. 驱动摆的哈密顿量是自动从 3.1.1 节推导出来的. 我们在这里重复结果(稍微整理了一下)

\begin{align*} H(t, \theta, p_\theta) &= \frac{p_\theta^2}{2ml^2} - glm \cos\theta \\ &+ gm y_s(t) - \frac{p_\theta}{l} \sin\theta D y_s(t) - \frac{m}{2} (\cos\theta)^2 (D y_s(t))^2, \end{align*}

其中 \(y_s\) 是驱动函数. 哈密顿量相当混乱, 并且包含一个角动量线性出现的项, 其系数同时依赖于角坐标和时间. 让我们看看如果我们应用我们的变换来消除线性项会发生什么. 我们可以通过要求动量的线性项被抵消来识别变换函数 G: \[ G(t, \theta) = -ml \cos\theta D y_s(t). \] 变换后的动量是 \[ p'_\theta = p_\theta + ml \sin\theta D y_s(t), \] 变换后的哈密顿量是 \[ H'(t, \theta, p'_\theta) = \frac{(p'_\theta)^2}{2ml^2} - ml(g + D^2 y_s) \cos\theta \]

\[ + gm y_s(t) - \frac{m}{2} (y_s(t))^2 \] 丢弃最后两项, 它们不影响运动方程, 我们发现 \[ H'(t, \theta, p'_\theta) = \frac{(p'_\theta)^2}{2ml^2} - ml(g + D^2 y_s) \cos\theta. \] 因此, 通过一个直接的正则变换, 我们找到了驱动摆的哈密顿量, 其形式相当简单, 即具有引力加速度被枢轴加速度修改的摆. 实际上, 这与我们之前通过检查(见方程 1.120)找到的驱动摆拉格朗日量的备用形式对应的哈密顿量相同. 这里的推导是通过一个简单的正则变换完成的, 其动机是希望消除动量中不希望出现的线性项.

6.6.18. 练习 5.17: 生成函数的构造

假设正则变换 Ca 和 Cb 由 F₁ 类生成函数 F₁a 和 F₁b 生成. a. 证明 Ca 的逆变换的生成函数是 -F₁a. b. 证明复合变换 Ca ◦ Cb 的生成函数是 F₁a + F₁b, 利用生成函数不依赖于中间点这一事实.

6.6.19. 练习 5.18: 线性正则变换

我们考虑具有两个自由度的系统, 以及哈密顿量通过复合变换的变换. a. 考虑由以下 F₂ 生成的线性正则变换 \[ F_2(t; x_1, x_2; p'_1, p'_2) = p'_1 a x_1 + p'_1 b x_2 + p'_2 c x_1 + p'_2 d x_2. \] 证明这些变换就是点变换, 并且相应的 F₁ 为零. b. 其他线性正则变换可以通过以下 F₁ 生成 \[ F_1(t; x_1, x_2; x'_1, x'_2) = x'_1 a x_1 + x'_1 b x_2 + x'_2 c x_1 + x'_2 d x_2. \] 当然, 我们可以类似地构造 F₃ 和 F₄ 类变换来制造更多生成器. 所有线性正则变换都可以用这种方式得到吗? 如果不行, 请展示一个不能这样生成的.

c. 所有线性正则变换都可以由 a 和 b 部分所示函数生成的变换复合而成吗? d. 需要多少个独立参数来指定具有两个自由度的系统的所有可能的线性正则变换?

6.6.20. 练习 5.19: 积分不变量

考虑由以下函数生成的具有两个自由度的系统的线性正则变换: \[ F_1(t; x_1, x_2; x'_1, x'_2) = x'_1 a x_1 + x'_1 b x_2 + x'_2 c x_1 + x'_2 d x_2, \] 以及一般平行四边形, 其顶点在原点, 相邻边从原点开始并延伸到相空间点 \((x_{1a}, x_{2a}, p_{1a}, p_{2a})\) 和 \((x_{1b}, x_{2b}, p_{1b}, p_{2b})\). a. 求给定平行四边形的面积, 并求正则变换下目标平行四边形的面积. 注意平行四边形的面积不守恒. b. 求给定平行四边形投影的面积, 以及正则变换下目标投影的面积. 证明作用平面上投影面积的总和是守恒的.

6.6.21. 练习 5.20: 标准映射生成函数

找到标准映射的生成函数(见练习 5.5).

6.6.22. 练习 5.21: 一个不正确的推导

以下是对生成函数规则的不正确推导. 在你阅读时, 尝试找出错误. 就此主题写一篇短文. 实际问题是什么? 设 L 和 L' 是在两个坐标系中表示的拉格朗日量, 路径分别为 q 和 q'. 进一步假设路径上 L 和 L' 的值相差一个构型和时间函数在路径上求值的导数. 这个函数可以用两组坐标表示. 考虑函数 \(F_1(t, q, q')\), 其在路径上的值 \(F_1(t) = F_1(t, q(t), q'(t))\) 在时间 t. \(F_1\) 的时间导数是 \[ DF_1(t) = (\partial_1 F_1)(t, q(t), q'(t)) Dq(t) + (\partial_2 F_1)(t, q(t), q'(t)) Dq'(t) + \partial_0 F_1(t, q(t), q'(t)). \] 拉格朗日量之间的关系因此是 \[ L(t, q, \dot{q}) - L'(t, q', \dot{q}') \]

\[ = (\partial_1 F_1)(t, q, q') \dot{q} + (\partial_2 F_1)(t, q, q') \dot{q}' + \partial_0 F_1(t, q, q'). \] 现在用哈密顿量重写拉格朗日量 \[ [p\dot{q} - H(t, q, p)] - [p'\dot{q}' - H'(t, q', p')] \] \[ = \partial_1 F_1(t, q, q') \dot{q} + \partial_2 F_1(t, q, q') \dot{q}' + \partial_0 F_1(t, q, q'), \] 其中 p 由 t, q 和 \(\dot{q}\) 以及拉格朗日量 L 确定. 对于加'函数也存在类似的关系. 让我们收集项

\begin{align*} 0 &= [p - \partial_1 F_1(t, q, q')] \dot{q} \\ &- [p' + \partial_2 F_1(t, q, q')] \dot{q}' \\ &- H(t, q, p) + H'(t, q', p') - \partial_0 F_1(t, q, q'). \end{align*}

如果关系 (5.148–5.150) 成立, 那么这些行中的每一行都独立为零, 显然验证了拉格朗日量相差一个全时间导数. 如果这是真的, 那么运动方程将被保持, 变换将被证明是正则的. 23

6.7. 5.7 时间演化是正则的

在本节中, 我们证明时间演化生成一个正则变换: 如果我们考虑哈密顿系统的所有可能初始状态, 并且我们跟踪所有轨迹相同的时间间隔, 那么从每个轨迹的初始状态到最终状态的映射是一个正则变换.

我们使用时间演化来生成一个变换 \[ (t, q, p) = C_\Delta(t', q', p') \] 其获得方式如下. 设 \(\sigma(t) = (t, \bar{q}(t), \bar{p}(t))\) 是哈密顿方程的一个解. 变换 \(C_\Delta\) 满足 \[ C_\Delta(\sigma(t)) = \sigma(t + \Delta), \]

6.7.1. 再论刘维尔定理

我们通过证明相流的散度为零, 利用运动方程(见 3.8 节), 推断出相空间中的体积被时间演化所保持. 我们也可以利用时间演化是正则变换这一事实来利用相空间中的体积被演化所保持.

6.7.2. 时间演化的另一种观点

存在另一种可以从时间演化构造出来的正则变换. 我们定义变换 \(C'_\Delta\) 使得 \[ C'_\Delta = C_\Delta \circ S_{-\Delta}, \] 其中 \(S_\Delta(a, b, c) = (a + \Delta, b, c)\) 平移相空间状态的时间. 26 更明确地说, 给定一个状态 \((t, q', p')\), 我们演化从 t 减去 Δ 得到的状态; 也就是说, 我们将状态 \((t - \Delta, q', p')\) 作为哈密顿方程演化的初始状态. 状态路径 σ 满足 \[ \sigma(t - \Delta) = (t - \Delta, \bar{q}(t - \Delta), \bar{p}(t - \Delta)) = (t - \Delta, q', p'). \] 变换的输出是状态 \[ (t, q, p) = \sigma(t) = (t, \bar{q}(t), \bar{p}(t)). \] 变换满足 \[ (t, \bar{q}(t), \bar{p}(t)) = C'_\Delta(t, \bar{q}(t - \Delta), \bar{p}(t - \Delta)). \] \(C'_\Delta\) 的参数不是一致的相空间状态, 时间参数必须减去 Δ, 然后通过该状态的演化进行变换.

为什么这是一个好主意? 我们通常的正则变换不改变时间分量. 这种修改后的时间演化变换因此具有我们之前讨论过的形式.

6.7.3. 练习 5.22: 验证

对于 \(C_\Delta\), 哈密顿方程守恒的条件 (5.19) 是 \[ D_s H \circ C_\Delta = DC_\Delta D_s H'_\Delta, \] 对于 \(C'_\Delta\), 哈密顿方程守恒的条件 (5.19) 是 \[ D_s H \circ C'_\Delta = DC'_\Delta D_s H'_\Delta. \] 验证这些条件是否满足.

6.7.4. 练习 5.23: 驱动谐振子

我们可以使用简单的驱动谐振子来说明时间演化产生一个辛变换, 该变换可以以两种方式扩展为正则变换. 我们使用驱动谐振子是因为它的解可以紧凑地用显式形式表示. 假设我们有一个自然频率为 ω₀ 的谐振子, 由频率为 ω, 幅度为 α 的周期性正弦驱动. 我们将考虑的哈密顿量是 \[ H(t, q, p) = \frac{1}{2} p^2 + \frac{1}{2} \omega_0^2 q^2 - \alpha q \cos \omega t. \] 对于给定初始状态 \((t_0, q_0, p_0)\) 演化时间 Δ 的一般解是 \[ \begin{pmatrix} q(t_0 + \Delta) \\ p(t_0 + \Delta)/\omega_0 \end{pmatrix} = \begin{pmatrix} \cos\omega_0\Delta & \sin\omega_0\Delta \\ -\sin\omega_0\Delta & \cos\omega_0\Delta \end{pmatrix} \begin{pmatrix} q_0 - \alpha' \cos\omega t_0 \\ (1/\omega_0)(p_0 + \alpha' \omega \sin\omega t_0) \end{pmatrix} + \begin{pmatrix} \alpha' \cos\omega(t_0 + \Delta) \\ -\alpha'(\omega/\omega_0) \sin\omega(t_0 + \Delta) \end{pmatrix} \] 其中 \(\alpha' = \alpha / (\omega_0^2 - \omega^2)\). a. 填写过程的细节

(define (((C alpha omega omega0) delta-t) state)
  ...)

实现驱动谐振子的时间演化变换. b. 用 C 表示, 从给定状态出发的一般解是

(define (((solution alpha omega omega0) state0) t)
  (((C alpha omega omega0) (- t (time state0))) state0))

检查 C 的实现是否正确, 方法是用它构造解并验证解是否满足哈密顿方程. 通过与数值积分比较进一步检查解. c. 我们知道对于任何相空间状态函数 F, 该函数沿解路径 σ 的变化率是: \[ D(F \circ \sigma) = \partial_0 F \circ \sigma + \{F, H\} \circ \sigma \] 通过编写一个简短的程序来测试它, 证明对于由 (C delta) 实现的驱动谐振子的函数, 这是成立的. 为什么这很有趣? d. 验证 C 和 Cp 都是辛的, 使用 symplectic?. e. 使用过程 canonical? 来验证 C 和 Cp 对于适当变换的哈密顿量都是正则的.

6.7.5. 5.7.1 时间演化的另一种观点

我们还可以使用庞加莱-嘉当积分不变量来证明时间演化生成正则变换. 考虑相空间坐标的一个二维区域 R', 在某个特定时间 t'(见图 5.8). 设 R 是该区域在时间间隔为 Δ 的时间演化下在时间 t 的像. 时间演化由哈密顿量 H 控制. 设 \( \sum_i A_i \) 是 R 在基本正则平面上的投影的有向面积之和. 27 类似地, 设 \( \sum_i A'_i \) 是 R' 的有向投影面积之和. 我们将证明 \( \sum_i A_i = \sum_i A'_i \), 因此庞加莱积分不变量被时间演化所保持. 通过证明庞加莱积分不变量被保持, 我们将证明由时间演化生成的变换的 qp 部分是辛的. 由此, 我们可以像以前一样构造正则变换.

在扩展相空间中, 我们看到演化扫出一个圆柱形体积, 其端盖是区域 R' 和 R, 每个都在固定的时间. 设 R'' 是由将 R' 边界映射到区域 R 边界的轨迹扫出的二维区域.

区域 R, R' 和 R'' 共同构成了相空间状态体积的边界. 整个边界上的庞加莱-嘉当积分不变量为零. 28 因此 \[ \sum_{i=0}^n A_i - \sum_{i=0}^n A'_i + \sum_{i=0}^n A''_i = 0, \]

6.7.6. 截面的面积保持

我们可以使用庞加莱-嘉当不变量来证明对于自治二自由度系统, 截面(适当构造)保持面积.

为此, 我们考虑一个坐标(比如 q₂)等于零的截面, 并通过累积 (q₁, p₁) 对来构造截面. 我们假设所有初始条件都具有相同的能量. 我们再次计算扩展相空间中正则投影面积的总和. 因为所有初始条件都具有相同的 q₂=0, 所以在 (q₂, p₂) 平面上的面积为零, 并且因为所有轨迹都具有相同的哈密顿量值, 所以在 (t, T) 平面上的投影面积也为零. 所以投影面积的总和恰好是截面上的区域面积. 现在让截面上的每个点演化到下一个截面穿越点. 对于截面上的每个点, 这可能需要不同的时间量. 计算映射区域的面积总和. 同样, 映射区域的所有点都具有相同的 q₂, 因此 (q₂, p₂) 平面上的面积为零, 并且它们继续具有相同的能量, 因此 (t, T) 平面上的面积为零. 所以映射区域的面积再次恰好是截面上的面积, 即 (q₁, p₁) 平面. 时间演化保持面积总和, 所以截面上的面积与映射面积相同.

因此, 只要截面点完全位于一个正则平面上, 截面就保持面积. 例如, 对于 Hénon-Heiles 截面, 我们绘制了当 x=0 且 px≥0 时 py 对 y 的值. 因此对于所有截面点, x 坐标具有固定值 0, 轨迹都具有相同的能量, 并且累积的点完全在 (py, y) 正则平面内. 所以 Hénon-Heiles 截面保持面积.

6.7.7. 5.7.2 时间演化的另一种观点

我们可以直接从作用量原理证明时间演化生成一个正则变换. 回想一下拉格朗日作用量 S 是 \[ S[q](t_1, t_2) = \int_{t_1}^{t_2} L \circ \Gamma[q]. \] 我们在推导拉格朗日方程时计算了作用量的变分. 变分是(见方程 1.33) \[ \delta_\eta S[q](t_1, t_2) = (\partial_2 L \circ \Gamma[q]) \eta \Big|_{t_1}^{t_2} - \int_{t_1}^{t_2} (E[L] \circ \Gamma[q]) \eta, \] 用欧拉-拉格朗日算子 E 重写. 在推导拉格朗日方程时, 我们只考虑了保持路径端点不变的变分. 然而, 方程 (5.358) 对任意变分都成立. 这里我们考虑在可实现路径 q(其中 \(E[L] \circ \Gamma[q] = 0\))周围端点处不为零的变分. 对于这些变分, 作用量的变分只是积分项: \[ \delta_\eta S[q](t_1, t_2) = (\partial_2 L \circ \Gamma[q]) \eta \Big|_{t_1}^{t_2} = p(t_2) \eta(t_2) - p(t_1) \eta(t_1). \] 回想一下 p 和 η 是结构, 乘积意味着分量的乘积之和.

考虑一个连续的可实现路径族, 参数为 s 的路径是 \(\tilde{q}(s)\), 该路径在时间 t 的坐标是 \(\tilde{q}(s)(t)\). 我们定义 \(\tilde{\eta}(s) = D\tilde{q}(s)\); 沿族的路径变分是参数路径关于参数的导数. 设 \[ \tilde{S}(s) = S[\tilde{q}(s)](t_1, t_2) \] 是从 t₁ 到 t₂ 路径 \(\tilde{q}(s)\) 的作用量值. 沿这个路径族的动作导数是29 \[ D\tilde{S}(s) = \delta_{\tilde{\eta}(s)} S[\tilde{q}(s)] = (\partial_2 L \circ \Gamma[\tilde{q}(s)]) \tilde{\eta}(s) \Big|_{t_1}^{t_2} - \int_{t_1}^{t_2} (E[L] \circ \Gamma[\tilde{q}(s)]) \tilde{\eta}(s). \] 由于 \(\tilde{q}(s)\) 是一条可实现路径, \(E[L] \circ \Gamma[\tilde{q}(s)] = 0\). 所以 \[ D\tilde{S}(s) = (\partial_2 L \circ \Gamma[\tilde{q}(s)]) \tilde{\eta}(s) \Big|_{t_1}^{t_2} = \tilde{p}(s)(t_2) \tilde{\eta}(s)(t_2) - \tilde{p}(s)(t_1) \tilde{\eta}(s)(t_1), \] 其中 \(\tilde{p}(s)\) 是 \(\tilde{q}(s)\) 的共轭动量. \(D\tilde{S}\) 的 contentcopy download Use code with caution. Org

\(D\tilde{S}\) 的积分是

\begin{align*} S[\tilde{q}(s_2)](t_1, t_2) - S[\tilde{q}(s_1)](t_1, t_2) &= \int_{s_1}^{s_2} (D\tilde{S}) \\ &= \int_{s_1}^{s_2} (h(t_2) - h(t_1)), \end{align*}

其中 \[ h(t)(s) = \tilde{p}(s)(t) \tilde{\eta}(s)(t) = \tilde{p}(s)(t) D\tilde{q}(s)(t). \] 传统记法中, 后一个线积分写作 \[ \int_{\gamma_2} \sum_i p_i dq^i - \int_{\gamma_1} \sum_i p_i dq^i, \] 其中 \(\gamma_1(s) = \tilde{q}(s)(t_1)\) 且 \(\gamma_2(s) = \tilde{q}(s)(t_2)\).

对于一个闭合路径族(使得 \(\tilde{q}(s_2) = \tilde{q}(s_1)\)), 路径端点处作用量的差为零, 所以我们推断出 \[ \oint_{\gamma_2} \sum_i p_i dq^i = \oint_{\gamma_1} \sum_i p_i dq^i, \] 这就是积分不变量的线积分版本. 用面积积分表示, 使用斯托克斯定理, 这是 \[ \sum_i \int_{R_{i2}} dp_i dq^i = \sum_i \int_{R_{i1}} dp_i dq^i, \] 其中 \(R_{ij}\) 是第 i 个正则平面上的区域. 我们已经发现时间演化保持积分不变量, 因此时间演化生成一个正则变换.

6.8. 5.8 哈密顿-雅可比方程

如果我们能找到一个正则变换, 使得变换后的哈密顿量恒等于零, 那么根据哈密顿方程, 新的坐标和动量将是常数. 解的所有时间变化都将被包含在正则变换中, 解就再也没有其他内容了.

完成这项工作的混合变量生成函数满足一个称为哈密顿-雅可比方程的偏微分方程. 在大多数情况下, 哈密顿-雅可比方程无法显式求解. 当它可以求解时, 哈密顿-雅可比方程提供了一种将问题简化为有用的简单形式的方法.

回想一下 F₂ 型生成函数满足的关系:

\begin{align*} q' &= \partial_2 F_2(t, q, p') \\ p &= \partial_1 F_2(t, q, p') \\ H'(t, q', p') &= H(t, q, p) + \partial_0 F_2(t, q, p'). \end{align*}

如果我们要求新的哈密顿量为零, 那么 F₂ 必须满足方程 \[ 0 = H(t, q, \partial_1 F_2(t, q, p')) + \partial_0 F_2(t, q, p'). \] 因此, 问题的解被" 简化" 为求解关于 F₂ 的 n 维偏微分方程, 其中包含未指定的新(常数)动量 p'. 这就是哈密顿-雅可比方程, 在某些情况下我们可以求解它.

我们也可以尝试一种稍微不那么激进的求解方法. 与其试图找到一个使新哈密顿量恒等于零的 F₂, 我们可以寻找一个 F₂ 型函数 W, 它给出一个仅是新动量函数的新哈密顿量. 由这种形式的哈密顿量描述的系统也很容易求解. 所以如果我们设

\begin{align*} H'(t, q', p') &= H(t, q, \partial_1 W(t, q, p')) + \partial_0 W(t, q, p') \\ &= E(p') \end{align*}

并且能够解出 W, 那么问题基本上就解决了. 在这种情况下, 加'动量都是常数, 加'位置随时间线性变化. 这是哈密顿-雅可比方程的另一种形式.

这两种形式是相关的. 假设我们有一个 W 满足第二种形式的哈密顿-雅可比方程 (5.372). 那么由 W 构造的 F₂ \[ F_2(t, q, p') = W(t, q, p') - E(p') t \] 满足第一种形式的哈密顿-雅可比方程 (5.371). 此外 \[ p = \partial_1 F_2(t, q, p') = \partial_1 W(t, q, p'), \] 所以加'动量在两种表述中是相同的. 但是

\begin{align*} q' &= \partial_2 F_2(t, q, p') \\ &= \partial_2 W(t, q, p') - DE(p') t \\ &= q'_W - DE(p') t, \end{align*}

所以我们看到加'坐标相差一个时间线性项--\(p'(t) = p'_0\) 和 \(q'(t) = q'_0\) 都是常数. 因此我们可以使用 W 或 F₂ 作为生成函数, 这取决于我们想要的新哈密顿量的形式.

注意, 如果 H 是时间无关的, 那么我们通常可以找到一个时间无关的 W 来完成这项工作. 对于时间无关的 W, 哈密顿-雅可比方程简化为 \[ E(p') = H(t, q, \partial_1 W(t, q, p')). \]

6.8.1. 练习 5.24: 使用 F₁ 的哈密顿-雅可比方程

我们使用了一个 F₂ 型生成函数来进行哈密顿-雅可比变换. 使用 F₁ 型生成函数进行等价变换. 找出对应于方程 (5.371), (5.372), 和 (5.376) 的方程.

6.8.2. 5.8.1 谐振子

考虑熟悉的与时间无关的哈密顿量 \[ H(t, x, p) = \frac{p^2}{2m} + \frac{kx^2}{2}. \] 我们为此问题构造哈密顿-雅可比方程 \[ 0 = H(t, x, \partial_1 F_2(t, x, p')) + \partial_0 F_2(t, x, p') \] 使用 \(F_2(t, x, p') = W(t, x, p') - E(p') t\), 我们发现 \[ E(p') = H(t, x, \partial_1 W(t, x, p')). \] 明确写出来 \[ E(p') = \frac{(\partial_1 W(t, x, p'))^2}{2m} + \frac{kx^2}{2}, \] 解出 ∂₁W \[ \partial_1 W(t, x, p') = \sqrt{2m \left( E(p') - \frac{kx^2}{2} \right)}. \] 积分得到所需的 W: \[ W(t, x, p') = \int^x \sqrt{2m \left( E(p') - \frac{kz^2}{2} \right)} dz. \] 我们可以使用 W 或相应的 F₂ 作为生成函数. 首先, 取 W 作为生成函数. 我们得到

坐标变换通过微分得到 \[ x' = \partial_2 W(t, x, p') = \int^x \frac{m DE(p')}{\sqrt{2m \left( E(p') - \frac{kz^2}{2} \right)}} dz \] 然后积分得到 \[ x' = \sqrt{\frac{m}{k}} DE(p') \arcsin\left( \sqrt{\frac{k}{2E(p')}} x \right) + C(p'), \] 其中 C(p') 是某个积分常数. 反解这个, 我们得到用加'坐标和动量表示的未加'坐标 \[ x = \sqrt{\frac{2E(p')}{k}} \sin\left[ \frac{1}{DE(p')} \sqrt{\frac{k}{m}} (x' - C(p')) \right]. \] 新的哈密顿量 H' 只依赖于动量 \[ H'(t, x', p') = E(p'). \] 运动方程很简单 \[ Dx'(t) = \partial_2 H'(t, x'(t), p'(t)) = DE(p') \] \[ Dp'(t) = -\partial_1 H'(t, x'(t), p'(t)) = 0, \] 解为 \[ x'(t) = DE(p') t + x'_0 \] \[ p'(t) = p'_0 \] 对于初始条件 x'₀ 和 p'₀. 如果我们将这些 x'(t) 和 p'(t) 的表达式代入方程 (5.385), 我们发现

\begin{align*} x(t) &= \sqrt{\frac{2E(p')}{k}} \sin\left[ \frac{1}{DE(p')} \sqrt{\frac{k}{m}} (DE(p') t + x'_0 - C(p')) \right] \\ &= \sqrt{\frac{2E(p')}{k}} \sin\left[ \sqrt{\frac{k}{m}} (t - t_0) \right] \\ &= A \sin(\omega t + \phi), \end{align*}

其中角频率是 \(\omega = \sqrt{k/m}\), 振幅是 \(A = \sqrt{2E(p')/k}\), 相位是 \(\phi = -\omega t_0 = \omega (x'_0 - C(p')) / DE(p')\). 我们也可以使用 \(F_2 = W - Et\) 作为生成函数. 新的哈密顿量为零, 所以 x' 和 p' 都是常数, 但旧变量和新变量之间的关系是

\begin{align*} x' &= \partial_2 F_2(t, x, p') \\ &= \partial_2 W(t, x, p') - DE(p') t \\ &= \sqrt{\frac{m}{k}} DE(p') \sin^{-1} \left( \sqrt{\frac{k}{2E(p')}} x \right) + C(p') - DE(p') t. \end{align*}

将解 \(x' = x'_0\) 和 \(p' = p'_0\) 代入并解出 x, 我们得到方程 (5.389). 所以我们再次看到这两种方法是等价的.

有趣的是注意到解依赖于常数 \(E(p')\) 和 \(DE(p')\), 但运动在任何本质方式上并不依赖于函数 E 实际上是什么. 动量 p' 是常数, 常数值由初始条件设定. 给定一个特定的函数 E, 初始条件确定了 p', 但可以不进一步指定 E 函数而获得解.

如果我们选择特定的函数 E, 我们可以得到特定的正则变换. 例如, 一个方便的选择就是 \[ E(p') = \alpha p', \] 对于某个稍后会选择的常数 α. 我们发现 \[ x = \sqrt{\frac{2\alpha p'}{k}} \sin\left( \frac{\omega}{\alpha} x' \right). \] 所以一个方便的选择是 \(\alpha = \omega = \sqrt{k/m}\), 这样 \[ x = \sqrt{\frac{2p'}{\beta}} \sin x', \]

其中 \(\beta = \sqrt{km}\). 新的哈密顿量是 \[ H'(t, x', p') = E(p') = \omega p'. \] 解就是 \(x' = \omega t + x'_0\) 和 \(p' = p'_0\). 将 x 的表达式代入 \(H(t, x, p) = H'(t, x', p')\), 我们推导出 \[ p = \sqrt{2m \left( \omega p' - \frac{k}{2} x^2 \right)} = \sqrt{2p'\beta} \cos x'. \] 这两个变换方程 (5.393) 和 (5.395) 就是我们所谓的极坐标-正则变换(方程 5.34). 我们已经证明了这个变换是正则的, 并且它解决了谐振子问题, 但它不是推导出来的. 这里我们已经推导出了这个变换, 作为哈密顿-雅可比方程解的一个特例.

我们也可以探索 E 函数的其他选择. 例如, 我们可以选择 \[ E(p') = \frac{1}{2} \alpha p'^2. \] 按照之前的相同步骤 \[ x = \sqrt{\frac{\alpha p'^2}{k}} \sin\left( \frac{\omega}{\alpha p'} x' \right). \] 所以一个方便的选择又是 \(\alpha = \omega\), 留下 \[ x = \frac{p'}{\beta} \sin\left( \frac{x'}{p'} \right) \] \[ p = \beta p' \cos\left( \frac{x'}{p'} \right), \] 其中 \(\beta = (km)^{1/4}\). 根据构造, 这个变换也是正则的, 并且也将谐振子问题带入了一个易于求解的形式. \[ H'(t, x', p') = \frac{1}{2} \omega p'^2 \] 谐振子哈密顿量已被变换成看起来很像自由粒子哈密顿量的东西. 这

非常有趣. 注意, 哈密顿量 (5.394) 没有一个明确定义的勒让德变换到等价的拉格朗日量, 而" 自由粒子" 谐振子有一个明确定义的勒让德变换: \[ L'(t, x', \dot{x}') = \frac{\dot{x}'^2}{2\omega}. \] 当然, 可能存在其他性质使得一种选择比其他选择对于特定应用更有用.

6.8.3. 练习 5.25: 摆

解摆的哈密顿-雅可比方程; 研究循环和振荡相空间区域. (注意: 这是一个漫长的故事, 需要一些椭圆函数的知识. )

6.8.4. 5.8.2 开普勒问题

我们可以使用哈密顿-雅可比方程来找到解决开普勒问题的正则坐标. 这是进行轨道问题微扰理论的基本第一步. 在直角坐标 (x, y, z) 中, 开普勒哈密顿量是 \[ H_r(t; x, y, z; p_x, p_y, p_z) = \frac{p^2}{2m} - \frac{\mu}{r}, \] 其中 \(r^2 = x^2 + y^2 + z^2\) 且 \(p^2 = p_x^2 + p_y^2 + p_z^2\). 开普勒问题描述了两个物体的相对运动; 它也出现在涉及轨道运动的其他问题的表述中, 例如 n 体问题. 我们尝试形式为 \(W(t; x, y, z; p'_x, p'_y, p'_z)\) 的生成函数. 哈密顿-雅可比方程则为30

\begin{multline*} E(p') = \frac{1}{2m} \left[ (\partial_{1,0} W(t; \dots))^2 + (\partial_{1,1} W(t; \dots))^2 \right. \\ \left. + (\partial_{1,2} W(t; \dots))^2 \right] - \frac{\mu}{r}. \end{multline*}

6.8.5. 5.8.3 F₂ 和拉格朗日量

哈密顿-雅可比方程的解, 即生成时间演化的混合变量生成函数, 与变分原理中使用的作用量有关. 特别地, 在可实现路径上, 生成函数的导数与拉格朗日量具有相同的值.

设 \(F_2(t) = F_2(t, q(t), p'(t))\) 是 F₂ 沿路径 q 和 p' 在时间 t 的值. F₂ 的导数是

\begin{align*} D F_2(t) &= \partial_1 F_2(t, q(t), p'(t)) Dq(t) \\ &+ \partial_2 F_2(t, q(t), p'(t)) Dp'(t) \\ &+ \partial_0 F_2(t, q(t), p'(t)) \\ &= p(t) Dq(t) \\ &+ \partial_2 F_2(t, q(t), p'(t)) Dp'(t) \\ &+ \partial_0 F_2(t, q(t), p'(t)), \end{align*}

其中我们在第一项中使用了 p 关于 F₂ 的关系. 使用哈密顿-雅可比方程 (5.371) 这变成

\begin{align*} D F_2(t) &= p(t) Dq(t) - H(t, q(t), p(t)) + \partial_2 F_2(t, q(t), p'(t)) Dp'(t) \\ &= L(t, q(t), Dq(t)) + \partial_2 F_2(t, q(t), p'(t)) Dp'(t). \end{align*}

在可实现路径上我们有 \(Dp'(t) = 0\), 所以在可实现路径上 F₂ 的时间导数与路径上的拉格朗日量相同. 任何路径上拉格朗日量的时间积分是该路径的作用量. 这意味着, 除了在可实现路径上是常数但在变换后的相空间坐标 q' 和 p' 中可能是函数的附加项之外, 求解哈密顿-雅可比方程的 F₂ 与可实现路径的拉格朗日作用量具有相同的值.

对于 F₁, 可以得出相同的结论. 除了在可实现路径上是常数但在变换后的相空间坐标 q' 和 p' 中可能是函数的附加项之外, 求解相应哈密顿-雅可比方程的 F₁ 与可实现路径的拉格朗日作用量具有相同的值.

6.8.6. 5.8.4 作用量生成时间演化

我们定义函数 \(\bar{F}(t_1, q_1, t_2, q_2)\) 为满足 \(q(t_1)=q_1\) 和 \(q(t_2)=q_2\) 的可实现路径 q 的作用量值. 所以 \(\bar{F}\) 满足 \[ \bar{F}(t_1, q(t_1), t_2, q(t_2)) = S[q](t_1, t_2) = \int_{t_1}^{t_2} L \circ \Gamma[q]. \]

对于在端点处不一定为零且围绕可实现路径 q 的变分 η, 作用量的变分是 \[ \delta_\eta S[q](t_1, t_2) = \partial_2 L \circ \Gamma[q] \eta \Big|_{t_1}^{t_2} = p(t_2) \eta(t_2) - p(t_1) \eta(t_1). \] 或者, 方程 (5.423) 中 S[q] 的变分给出

\begin{align*} \delta_\eta S[q](t_1, t_2) &= \partial_1 \bar{F}(t_1, q(t_1), t_2, q(t_2)) \eta(t_1) \\ &+ \partial_3 \bar{F}(t_1, q(t_1), t_2, q(t_2)) \eta(t_2). \end{align*}

比较方程 (5.424) 和 (5.425), 并利用变分 η 是任意的这一事实, 我们发现 \[ \partial_1 \bar{F}(t_1, q(t_1), t_2, q(t_2)) = -p(t_1) \] \[ \partial_3 \bar{F}(t_1, q(t_1), t_2, q(t_2)) = p(t_2). \] \(\bar{F}\) 关于坐标参数的偏导数给出了动量. 抽象掉路径, 我们有 \[ \partial_1 \bar{F}(t_1, q_1, t_2, q_2) = -p_1 \] \[ \partial_3 \bar{F}(t_1, q_1, t_2, q_2) = p_2. \] 这有点像 F₁ 型生成函数关系, 但这里有两个时间. 给定一条可实现路径 q, 使得 \(q(t_1)=q_1\) 且 \(q(t_2)=q_2\), 我们得到关于时间槽的偏导数:

\begin{align*} \partial_0 (S[q])(t_1, t_2) &= -L(t_1, q(t_1), Dq(t_1)) \\ &= \partial_0 \bar{F}(t_1, q_1, t_2, q_2) + \partial_1 \bar{F}(t_1, q_1, t_2, q_2) Dq(t_1) \\ &= \partial_0 \bar{F}(t_1, q_1, t_2, q_2) - p(t_1) Dq(t_1). \end{align*}

因此

\begin{align*} \partial_0 \bar{F}(t_1, q_1, t_2, q_2) &= H(t_1, q_1, p_1) \\ &= H(t_1, q_1, -\partial_1 \bar{F}(t_1, q_1, t_2, q_2)). \end{align*}

类似地

\begin{align*} \partial_2 \bar{F}(t_1, q_1, t_2, q_2) &= -H(t_2, q_2, p_2) \\ &= -H(t_2, q_2, \partial_3 \bar{F}(t_1, q_1, t_2, q_2)). \end{align*}

这些是哈密顿-雅可比方程对, 在路径的端点处计算.

解方程 (5.427) 得到 q₂ 和 p₂ 作为 t₂ 以及初始状态 t₁, q₁, p₁ 的函数, 我们得到用 \(\bar{F}\) 表示的系统时间演化. 函数 \(\bar{F}\) 生成时间演化.

函数 \(\bar{F}\) 可以用求解哈密顿-雅可比方程的 F₂ 或 F₁ 表示. 我们可以通过使用哈密顿-雅可比方程的 F₂ 解来计算时间演化, 以用常数 q' 和 p' 表示状态 \((t_1, q_1, p_1)\) 在给定时间 t₁. 然后我们可以执行后续变换, 在不同的时间 t₂ 将 q' p' 变换回原始状态变量, 得到状态 \((t_2, q_2, p_2)\). 正则变换的复合是正则的. 复合的生成函数是每个步骤生成函数的差值: \[ \bar{F}(t_1, q_1, t_2, q_2) = F_2(t_2, q_2, p') - F_2(t_1, q_1, p'), \] 条件是 \[ \partial_2 F_2(t_2, q_2, p') - \partial_2 F_2(t_1, q_1, p') = 0, \] 这允许我们消除 p'.

6.8.7. 练习 5.27: 匀加速运动

a. 计算匀加速粒子作为端点和时间函数的拉格朗日作用量. 用它构造从给定初始状态出发的时间演化的正则变换. b. 求解匀加速粒子的哈密顿-雅可比方程, 得到使变换后哈密顿量为零的 F₂. 证明拉格朗日作用量可以表示为这个 F₂ 的两个应用的差值.

6.9. 5.9 李变换

任何哈密顿量下的系统演化都会生成一个连续的正则变换族. 要研究由哈密顿量 H 控制的某个系统的行为, 有时适合使用由相同相空间上另一个类哈密顿函数 W 控制的演化生成的正则变换. 这样的正则变换称为李变换.

函数 H 和 W 都是定义在相同相空间上的哈密顿型函数. 由 H 控制的时间间隔 Δ 的时间演化是一个正则变换 \(C_{\Delta, H}\). 由 W 控制的时间间隔 ε 的演化是一个正则变换 \(C'_{\epsilon, W}\): \[ (t, q, p) = C'_{\epsilon, W} (t, q', p'). \] H 演化中的自变量是时间, W 演化中的自变量是正则变换的一个任意参数. 我们为 W 演化选择了 C', 使得由 W 导出的正则变换不改变由 H 控制的系统中的时间.

图 5.9 展示了如何使用李变换来变换轨迹. 我们可以从图中看到正则变换满足关系: \[ C'_{\epsilon, W} \circ C_{\Delta, H} = C_{\Delta, H'} \circ C'_{\epsilon, W}. \] 对于不依赖于自变量的生成元 W, 由此产生的正则变换 \(C'_{\epsilon, W}\) 是不含时的且辛的. 对于不含时辛变换

变换, 如果哈密顿量通过复合变换, 则变换是正则的32 \[ H' = H \circ C'_{\epsilon, W}. \] 我们将只使用自变量无关的生成元的李变换.

6.9.1. 函数的李变换

相空间函数 F 的值如果其参数改变则会改变. 我们定义函数 F 的函数 \(E'_{\epsilon, W}\), 其相空间坐标为 (t, q, p), 通过 \[ E'_{\epsilon, W} F = F \circ C'_{\epsilon, W}. \] 我们称 \(E'_{\epsilon, W} F\) 为函数 F 的李变换. 特别地, 李变换推进坐标和动量选择器函数 \(Q=I_1\) 和 \(P=I_2\):

\begin{align*} (E'_{\epsilon, W} Q)(t, q', p') &= (Q \circ C'_{\epsilon, W})(t, q', p') = Q(t, q, p) = q \\ (E'_{\epsilon, W} P)(t, q', p') &= (P \circ C'_{\epsilon, W})(t, q', p') = P(t, q, p) = p \end{align*}

所以我们可以重述方程 (5.436) 为: \[ (E'_{\epsilon, W} F)(t, q', p') = F(t, (E'_{\epsilon, W} Q)(t, q', p'), (E'_{\epsilon, W} P)(t, q', p')). \] 更一般地, 李变换深入到复合中: \[ (E'_{\epsilon, W} (F \circ G)) = F \circ (E'_{\epsilon, W} G) \]

6.9.2. 简单的李变换

例如, 假设我们正在研究一个系统, 其中旋转会是一个有用的变换. 为了构造这样的变换, 我们注意到我们打算让一个构型坐标以给定速率均匀增加. 在这种情况下, 我们希望一个角度递增. 仅由与该构型坐标共轭的动量组成的哈密顿量总是能完成这项工作. 所以角动量是旋转的合适生成元.

如果使用极坐标 r, θ 和共轭动量 pr, pθ, 分析很简单. 生成元 W 就是: \[ W(\tau; r, \theta; p_r, p_\theta) = p_\theta \]

6.9.3. 例子

假设我们有一个由哈密顿量控制的系统 \[ H(t; x, y; p_x, p_y) = \frac{1}{2}(p_x^2 + p_y^2) + \frac{1}{2} a (x-y)^2 + \frac{1}{2} b (x+y)^2. \] 哈密顿方程耦合了 x 和 y 的运动

\begin{align*} Dx &= p_x \\ Dy &= p_y \\ Dp_x &= -a(x-y) - b(x+y) \\ Dp_y &= a(x-y) - b(x+y). \end{align*}

我们可以通过执行 π/4 的坐标旋转来解耦系统. 这是由 \[ W(\tau; x, y; p_x, p_y) = x p_y - y p_x, \] 生成的,

这与上面的类似, 但没有 z 自由度. 演化 \((τ; x, y; p_x, p_y)\) 由 W 演化 π/4 间隔给出正则旋转:

\begin{align*} x &= x' \cos\pi/4 - y' \sin\pi/4 \\ y &= x' \sin\pi/4 + y' \cos\pi/4 \\ p_x &= p'_x \cos\pi/4 - p'_y \sin\pi/4 \\ p_y &= p'_x \sin\pi/4 + p'_y \cos\pi/4. \end{align*}

用这个时间无关变换复合哈密顿量 H 得到新的哈密顿量 \[ H'(t; x', y'; p'_x, p'_y) = (\frac{1}{2} p_x^{'2} + b x^{'2}) + (\frac{1}{2} p_y^{'2} + a y^{'2}), \] 这是一个两个解耦谐振子的哈密顿量. 因此, 最初的耦合问题已通过李变换转化为一种新形式, 其解很容易.

6.10. 5.10 李级数

泰勒定理为我们提供了一种在已知点附近逼近足够好函数值的方法. 如果我们知道 f 及其在 t 处的所有导数, 那么对于足够小的 ε, 我们可以得到 f(t + ε) 的值, 如下所示: \[ f(t+\epsilon) = f(t) + \epsilon Df(t) + \frac{1}{2}\epsilon^2 D^2 f(t) + \dots + \frac{1}{n!} \epsilon^n D^n f(t) + \dots \] 我们还记得指数函数的幂级数是: \[ e^x = 1 + x + \frac{1}{2} x^2 + \dots + \frac{1}{n!} x^n + \dots \] 这表明我们可以形式上构造一个泰勒级数算子作为微分算子的指数: 34 \[ e^{\epsilon D} = I + \epsilon D + \frac{1}{2} (\epsilon D)^2 + \dots + \frac{1}{n!} (\epsilon D)^n + \dots \]

6.10.1. 练习 5.28: 二项式级数

将 \((1+x)^n\) 展开为泰勒级数. 当然, 对于正整数 n, 除了前 n+1 项外, 所有系数都必须为零. 然而, 在一般情况下, 对于符号 n, 系数是 n 的相当复杂的多项式. 例如, 你会发现第七项是:

(+ (* 1/5040 (expt n 7))
   (* -1/240 (expt n 6))
   (* 5/144 (expt n 5))
   (* -7/48 (expt n 4))
   (* 29/90 (expt n 3))
   (* -7/20 (expt n 2))
   (* 1/7 n))

这些项必须计算为帕斯卡三角形中的项. 特别是, 对于 n<7, 这个多项式必须为零. 这是如何安排的?

6.10.2. 动力学

现在用动力学函数玩这个游戏, 我们希望提供一个可以指数化的类导数算子, 它将给出推进算子. 关键思想是用泊松括号表示函数的导数. 方程 (3.75) 展示了如何一般地做到这一点: \[ D(F \circ \sigma) = (\{F, H\} + \partial_0 F) \circ \sigma \] 我们定义算子 \(D_H\) 为 \[ D_H F = \partial_0 F + \{F, H\}, \] 所以 \[ D_H F \circ \sigma = D(F \circ \sigma), \] 并且这个算子的迭代可以用来计算更高阶的导数: \[ D^n (F \circ \sigma) = D_H^n F \circ \sigma \] 因此我们可以重写路径函数 \(f=F \circ \sigma\) 在关于 H 的间隔 ε 内的推进, 作为应用于相空间函数 F 的导数算子 \(D_H\) 的幂级数, 然后与路径复合: \[ f(t+\epsilon) = (e^{\epsilon D} f)(t) = (e^{\epsilon D_H} F) \circ \sigma(t) \] 实际上, 我们可以在这个级数收敛时用它来实现时间推进算子.

6.10.3. 练习 5.29: 迭代导数

证明方程 (5.466) 是正确的.

6.10.4. 练习 5.30: 拉格朗日模拟

比较 \(D_H\) 与全时间导数算子. 回想一下 \[ D_t F \circ \Gamma[q] = D(F \circ \Gamma[q]) \] 将路径状态空间函数的导数抽象为路径导数的函数. 定义另一个类导数算子 \(D_L\), 类似于 \(D_H\), 它给出函数沿是给定拉格朗日量拉格朗日方程解的拉格朗日状态路径的时间导数. 这可能有何用处?

设 H 是一个哈密顿量. 如果 F 和 H 都是时间无关的, 我们可以简化 F 推进的计算. 在这种情况下, 我们定义李导数算子 \(L_H\) 使得 \[ L_H F = \{F, H\} \] 读作" F 关于 H 的李导数" . 35 所以 \[ D_H = \partial_0 + L_H \] 对于时间无关的 F \[ D(F \circ \sigma) = L_H F \circ \sigma \] 我们可以迭代这个过程来计算更高阶的导数. 所以 \[ L_H^2 F = \{\{F, H\}, H\}, \] F 关于 H 的连续更高阶泊松括号给出了在轨迹上求值时的连续更高阶导数. 设 \(f = F \circ \sigma\), 我们有 \[ Df = (L_H F) \circ \sigma \] \[ D^2 f = (L_H^2 F) \circ \sigma \] \[ \dots \] 因此我们可以重写路径函数 f 在关于 H 的间隔 ε 内的推进, 作为应用于相空间函数 F 的李导数算子的幂级数, 然后与路径复合: \[ f(t+\epsilon) = (e^{\epsilon D} f)(t) = (e^{\epsilon L_H} F) \circ \sigma(t) \] 我们可以用级数实现时间推进算子 \(E'_{\epsilon, H}\) \[ E'_{\epsilon, H} F = (e^{\epsilon L_H} F), \]

6.10.5. 计算李级数

我们可以使用李变换作为计算工具来局部检查动力学系统的演化. 我们将 F 的李导数定义为类导数算子, 相对于给定的哈密顿函数 H: 36

(define ((Lie-derivative H) F)
  (Poisson-bracket F H))

我们还定义一个过程来实现李变换: 37

(define (Lie-transform H t)
  (exp (* t (Lie-derivative H))))

让我们首先检查质量为 m, 弹簧常数为 k 的简谐振子位置的李级数. 注意我们通过传递一个合适的哈密顿函数和一个演化区间来构成李变换(级数)算子. 然后将得到的算子赋予位置选择器过程. 李变换算子返回新的位置选择器过程, 当给定相空间坐标 x₀ 和 p₀ 时, 它返回从这些坐标演化 dt 区间后选择的位置.

6.11. 5.11 指数恒等式

李变换的复合可以写成李导数算子指数的乘积. 通常, 李导数算子不可交换. 如果 A 和 B 是不可交换的算子, 则指数不按通常方式组合: \[ e^A e^B \ne e^{A+B}. \] 因此, 回忆一些关于不可交换算子指数的结果会很有帮助. 我们引入交换子 \[ [A, B] = AB - BA. \] 交换子是双线性的, 并满足雅可比恒等式 \[ [A, [B, C]] + [B, [C, A]] + [C, [A, B]] = 0, \] 对于所有 A, B, C 都成立. 我们引入记号 \(\Delta_A\) 表示关于算子 A 的交换子: \[ \Delta_A B = [A, B]. \]

用 Δ 表示, 这与 \[ [\Delta_A, \Delta_B] = \Delta_{[A, B]}. \] 相同. 一个重要的恒等式是

\begin{align*} e^C A e^{-C} &= e^{\Delta_C} A \\ &= A + [C, A] + \frac{1}{2} [C, [C, A]] + \dots. \end{align*}

我们可以逐项检查. 我们看到 \[ e^C A^2 e^{-C} = e^C A e^{-C} e^C A e^{-C} = (e^C A e^{-C})^2, \] 使用了 \(e^{-C} e^C = I\), 恒等算子. 使用相同的技巧 \[ e^C A^n e^{-C} = (e^C A e^{-C})^n. \] 更一般地, 如果 f 可以表示为幂级数, 则 \[ e^C f(A, B, \dots) e^{-C} = f(e^C A e^{-C}, e^C B e^{-C}, \dots) \] 例如, 将其应用于指数函数 \[ e^C e^A e^{-C} = e^{e^C A e^{-C}}. \] 使用方程 (5.482), 我们可以重写这个 \[ e^{\Delta_C} e^A = e^{e^{\Delta_C} A}. \]

6.11.1. 练习 5.31: 李导数的交换子

a. 设 W 和 W' 是两个相空间状态函数. 使用泊松括号雅可比恒等式证明 \[ [L_W, L_{W'}] = -L_{\{W, W'\}}. \] b. 考虑给出角动量分量(用直角正则坐标表示)的相空间状态函数 \(J_x(t; x, y, z; p_x, p_y, p_z) = y p_z - z p_y\) \(J_y(t; x, y, z; p_x, p_y, p_z) = z p_x - x p_z\) \(J_z(t; x, y, z; p_x, p_y, p_z) = x p_y - y p_x\)

证明 \[ [L_{J_x}, L_{J_y}] + L_{J_z} = 0. \] c. 将算子的雅可比恒等式与泊松括号雅可比恒等式关联起来.

6.11.2. 练习 5.32: Baker-Campbell-Hausdorff

推导组合不可交换算子指数的规则: \[ e^A e^B = e^{A+B + \frac{1}{2}[A, B] + \dots}. \]

6.12. 5.12 总结

正则变换可用于在更易于理解或暴露出问题某些对称性的坐标中重构问题.

在本章中, 我们研究了动力学系统的不同表示. 我们发现, 如果变换的坐标-动量部分具有辛导数, 并且哈密顿量以指定方式变换, 则不同的表示将是等价的. 如果相空间变换是时间无关的, 那么哈密顿量通过与相空间变换复合进行变换. 辛条件可以用基本泊松括号等价地表示. 泊松括号和 ω 函数在正则变换下是不变的. ω 的不变性意味着正则坐标-动量平面上投影面积的总和被正则变换保持(庞加莱积分不变量).

我们可以在其中将时间视为另一个坐标来表述一个扩展相空间. 时间相关变换在扩展相空间中很简单. 在扩展相空间中, 庞加莱积分不变量是庞加莱-嘉当积分不变量. 我们也可以将一个时间无关问题重构为一个自由度较少的时间相关问题, 其中一个原始坐标扮演时间角色; 这就是约化相空间.

生成函数是相空间坐标和时间的实值函数, 它通过其偏导数表示正则变换. 我们发现所有正则

变换可以由生成函数表示. 证明依赖于庞加莱积分不变量(而不依赖于可以向拉格朗日量添加全时间导数而不改变运动方程的事实).

任何哈密顿系统的时间演化都会导出一个正则变换: 如果我们考虑哈密顿系统的所有可能初始状态, 并且我们跟踪所有轨迹相同的时间间隔, 那么从每个轨迹的初始状态到最终状态的映射是一个正则变换. 对于我们选择的任何区间, 这都成立, 因此时间演化生成一个连续的正则变换族.

我们将这个思想推广到生成除时间演化之外的连续正则变换. 这样的变换对于微扰理论的支撑将特别有用.

在极少数情况下, 可以进行正则变换到一个问题易于求解的表示: 当所有坐标都可忽略且所有动量都守恒时. 这里我们研究哈密顿-雅可比方法来寻找这样的正则变换. 对于哈密顿-雅可比方法有效的问题, 我们发现系统的时​​间演化由一个正则变换给出. contentcopy download Use code with caution. Org

7. 第六章正则微扰理论

三体问题以及二体问题的首次处理归功于牛顿. 它出现在<原理>第一卷第十一节中, 艾里曾说这是" 物理科学史上写过的最有价值的一章. " ……牛顿从理论中得到的月球近地点运动值仅为观测值的一半. 1872年, 在牛顿一些未发表的手稿中, 即所谓的朴茨茅斯收藏馆中发现, 牛顿通过包含二阶微扰已经解释了近地点的全部运动. 这项工作天文学家们并不知道, 月球近地点的运动直到1749年才从理论中推导出来……牛顿认为月球理论非常困难, 据说他曾绝望地告诉他的朋友哈雷, 它" 让他头疼, 经常让他彻夜难眠, 以至于他再也不想它了. "

Forest Ray Moulton, <天体力学导论>(1914).

动力学系统的闭合形式解只能在极少数情况下找到. 然而, 有些系统与可解系统仅相差一个小的效应. 微扰理论的目标是将给定系统的运动方面与邻近可解系统的方面联系起来. 我们可以尝试找到一种方法, 将这个近似问题的精确解变换为原始问题的近似解. 我们也可以使用微扰理论, 尝试通过描述可解系统解被附加效应扭曲的特征方式来预测解的定性特征. 例如, 我们可能想预测最大共振区域的位置或最大混沌区的位置和大小. 能够预测这些特征可以深入了解特定系统的行为.

例如, 假设我们有一个由哈密顿量表征的系统, 它分解为两部分, 如下所示, \[ H = H_0 + \epsilon H_1 \] 其中 H₀ 是可解的, ε 是一个小参数. 我们的系统与可解系统之间的差异是一个小的附加复杂性.

有许多策略可以做到这一点. 一种策略是寻找一个正则变换, 消除阻碍求解的 ε 阶项–这通常会引入 ε² 阶的新项. 然后寻找另一个正则变换, 消除阻碍求解的 ε² 阶项, 留下 ε³ 阶项. 我们可以想象重复这个过程, 直到阻碍求解的部分在 ε 中的阶数如此之高, 以至于可以忽略不计. 将问题简化为可解问题后, 我们可以反转变换序列, 找到原始问题的近似解. 这个过程收敛吗? 我们怎么知道我们能忽略剩余项? 让我们沿着这条路走下去, 看看它会通向哪里.

7.1. 6.1 李级数微扰理论

给定一个系统, 我们寻找哈密顿量的一种分解形式 \[ H(t, q, p) = H_0(t, q, p) + \epsilon H_1(t, q, p), \] 其中 H₀ 是可解的. 我们假设哈密顿量没有显式的时间依赖性; 如果必要, 可以通过进入扩展相空间来确保这一点. 我们还假设已经进行了一个正则变换, 使得 H₀ 仅依赖于动量: \[ \partial_1 H_0 = 0. \] 我们执行一个李变换, 并找到李生成元 W 必须满足的条件, 以消除哈密顿量中的 ε 阶项.

李变换和相关的李级数指定了一个正则变换:

\begin{align*} H' &= E'_{\epsilon, W} H = e^{\epsilon L_W} H \\ q &= (E'_{\epsilon, W} Q)(t, q', p') = (e^{\epsilon L_W} Q)(t, q', p') \\ p &= (E'_{\epsilon, W} P)(t, q', p') = (e^{\epsilon L_W} P)(t, q', p') \\ (t, q, p) &= (E'_{\epsilon, W} I)(t, q', p') = (e^{\epsilon L_W} I)(t, q', p'), \end{align*}

其中 Q = I₁ 和 P = I₂ 是坐标和动量选择器, I 是恒等函数. 回想一下定义

\begin{align*} e^{\epsilon L_W} F &= F + \epsilon L_W F + \frac{1}{2} \epsilon^2 L_W^2 F + \dots \\ &= F + \epsilon \{F, W\} + \frac{1}{2} \epsilon^2 \{\{F, W\}, W\} + \dots, \end{align*}

其中 \(L_W F = \{F, W\}\). 将李变换应用于 H

\begin{align*} H' &= e^{\epsilon L_W} H \\ &= H_0 + \epsilon L_W H_0 + \frac{1}{2} \epsilon^2 L_W^2 H_0 + \dots \\ &+ \epsilon H_1 + \epsilon^2 L_W H_1 + \dots \\ &= H_0 + \epsilon (L_W H_0 + H_1) + \epsilon^2 \left( \frac{1}{2} L_W^2 H_0 + L_W H_1 \right) + \dots. \end{align*}

如果 W 满足条件 \[ L_W H_0 + H_1 = 0, \] 则 ε 的一阶项为零, 这是一个关于 W 的线性偏微分方程. 变换后的哈密顿量是

\begin{align*} H' &= H_0 + \epsilon^2 \left( \frac{1}{2} L_W^2 H_0 + L_W H_1 \right) + \dots \\ &= H_0 - \frac{1}{2} \epsilon^2 L_W H_1 + \dots, \end{align*}

其中我们使用了条件 (6.7) 来简化 ε² 的贡献. 微扰理论的这个基本步骤消除了哈密顿量中某个特定阶(ε 阶)的项, 但这样做产生了更高阶的新项(这里是 ε² 及更高阶).

此时, 我们可以通过将哈密顿量 (6.8) 截断到 H₀ 来找到一个近似解, 这是可解的. 给定初始条件 \((t_0, q_0, p_0)\) 的近似解是通过使用变换 (6.4) 的逆找到对应的 \((t_0, q'_0, p'_0)\) 获得的. 然后使用截断哈密顿量 H₀ 的解将系统演化到时间 t, 得到状态 \((t, q', p')\). 演化点的相空间坐标通过变换 (6.4) 变换回原始变量, 得到状态 \((t, q, p)\). 近似解是

\begin{align*} (t, q, p) &= (E'_{\epsilon, W} E''_{t-t_0, H_0} E''_{-\epsilon, W} I)(t_0, q_0, p_0) \\ &= (e^{\epsilon L_W} e^{(t-t_0) L_{H_0}} e^{-\epsilon L_W} I)(t_0, q_0, p_0). \end{align*}

如果要通过求和级数来评估李变换 \(E'_{\epsilon, W} = e^{\epsilon L_W}\), 我们必须指定求和扩展到的阶数.

假设一切顺利, 我们可以想象重复这个过程来消除 ε² 项, 依此类推, 使变换后的哈密顿量尽可能接近 H₀. 不幸的是, 存在复杂性. 我们可以通过考虑一些具体的应用来理解其中的一些复杂性以及如何处理它们.

7.2. 6.2 摆作为微扰转子

摆是一个简单的单自由度系统, 其解是已知的. 如果我们将摆视为带有附加重力复杂性的自由转子, 那么我们可以执行如上所述的微扰步骤, 看看它对摆的已知运动的近似效果如何.

摆的运动由哈密顿量描述 \[ H(t, \theta, p) = \frac{p^2}{2\alpha} - \epsilon \beta \cos(\theta), \] 其中坐标为 θ, 共轭角动量为 p, α = ml² 且 β = mgl. 参数 ε 允许我们缩放微扰; 对于实际的摆, 它为 1. 我们将哈密顿量分为自由转子哈密顿量和重力微扰: \[ H = H_0 + \epsilon H_1, \]

其中 \[ H_0(t, \theta, p) = \frac{p^2}{2\alpha} \] \[ \epsilon H_1(t, \theta, p) = -\epsilon \beta \cos\theta. \] 李生成元 W 满足条件 (6.7): \[ \{H_0, W\} + H_1 = 0, \] 或者 \[ -\frac{p}{\alpha} \partial_1 W(t, \theta, p) - \beta \cos\theta = 0. \] 所以 \[ W(t, \theta, p) = -\frac{\alpha \beta \sin\theta}{p}, \] 其中忽略了任意积分常数. 变换后的哈密顿量是 \(H' = H_0 + o(\epsilon^2)\). 如果我们能忽略 ε² 的贡献, 那么变换后的哈密顿量就是 \[ H'(t, \theta', p') = \frac{(p')^2}{2\alpha}, \] 解为 \[ \theta' = \theta'_0 + \frac{p'_0}{\alpha} (t - t_0) \] \[ p' = p'_0. \] 我们将这些解与原始问题的解联系起来, 使用李级数

\begin{align*} \theta &= (e^{\epsilon L_W} Q)(t, \theta', p') \\ &= \theta' + \epsilon \{Q, W\}(t, \theta', p') + \dots \\ &= \theta' + \epsilon \partial_2 W(t, \theta', p') + \dots \\ &= \theta' + \epsilon \frac{\alpha \beta \sin\theta'}{(p')^2} + \dots. \end{align*}

类似地, \[ p = p' + \epsilon \frac{\alpha \beta \cos\theta'}{p'} + \dots. \] 注意, 如果李级数被截断, 它并非严格的正则变换; 只有无限级数才是正则的.

初始值 \(\theta'_0\) 和 \(p'_0\) 由初始值 θ 和 p 通过逆李变换确定: \[ \theta' = (e^{-\epsilon L_W} Q)(t, \theta, p) \] \[ = \theta - \epsilon \frac{\alpha \beta \sin\theta}{p^2} + \dots, \] 以及 \[ p' = p - \epsilon \frac{\alpha \beta \cos\theta}{p} + \dots. \] 注意, 如果我们截断坐标变换到 ε 的一阶(或任何有限阶), 那么逆变换并非精确的变换逆.

给定初始条件 \((t_0, \theta_0, p_0)\) 的近似解是通过使用变换 (6.20) 和 (6.21) 找到相应的 \((t_0, \theta'_0, p'_0)\) 获得的. 然后使用解 (6.17) 将系统演化. 演化点的相空间坐标使用变换 (6.18) 和 (6.19) 变换回原始变量.

我们定义摆哈密顿量的两个部分:

(define ((H0 alpha) state)
  (let ((ptheta (momentum state)))
    (/ (square ptheta) (* 2 alpha))))
(define ((H1 beta) state)
  (let ((theta (coordinate state)))
    (* -1 beta (cos theta))))

摆的哈密顿量可以表示为参数 ε 的级数展开:

(define (H-pendulum-series alpha beta epsilon)
  (series (H0 alpha) (* epsilon (H1 beta))))

其中 series 过程是一个级数的构造函数, 其首项已给出, 所有后续项均为零. 消除 ε 阶项的李生成元是

(define ((W alpha beta) state)
  (let ((theta (coordinate state))
        (ptheta (momentum state)))
    (/ (* -1 alpha beta (sin theta)) ptheta)))

我们检查 W 是否满足条件 (6.7): 1

(print-expression
 ((+ ((Lie-derivative (W 'alpha 'beta)) (H0 'alpha))
     (H1 'beta))
  a-state))
0

并且它对哈密顿量具有预期的效果

(show-expression
 (series:sum
  (((exp (* 'epsilon (Lie-derivative (W 'alpha 'beta))))
    (H-pendulum-series 'alpha 'beta 'epsilon))
   a-state)
  2))

确实, ε 阶项已被移除, 并引入了 ε² 阶项. 忽略 ε² 项, 新哈密顿量的解是

(define (((solution0 alpha beta) t) state0)
  (let ((t0 (time state0))
        (theta0 (coordinate state0))
        (ptheta0 (momentum state0)))
    (up t
        (+ theta0 (/ (* (- t t0) ptheta0) alpha))
        ptheta0)))

7.2.1. 练习 6.1: 辛残差

计算变换 (C alpha beta epsilon order) 的李级数截断各阶的辛检验残差.

7.2.2. 6.2.1 高阶

我们可以通过执行额外的微扰步骤来改进微扰解. 总体计划与之前相同. 我们执行一个新的生成元的李变换, 该生成元消除哈密顿量中的期望项.

在第一步之后, 哈密顿量到二阶为,

\begin{align*} H'(t, \theta', p') &= \frac{(p')^2}{2\alpha} + \epsilon^2 \frac{\alpha \beta^2}{2(p')^2} (\sin\theta')^2 + \dots \\ &= \frac{(p')^2}{2\alpha} + \epsilon^2 \frac{\alpha \beta^2}{4(p')^2} (1 - \cos(2\theta')) + \dots \\ &= H_0(p') + \epsilon^2 H_2(t, \theta', p') + \dots. \end{align*}

执行一个带有生成元 W' 的李变换, 新的哈密顿量是 \[ H'' = e^{\epsilon^2 L_{W'}} H' = H_0 + \epsilon^2 (L_{W'} H_0 + H_2) + \dots. \] 因此 W' 的条件是二阶项被消除 \[ L_{W'} H_0 + H_2 = 0. \] 这是 \[ -\frac{p'}{\alpha} \partial_1 W'(t, \theta', p') + \frac{\alpha \beta^2}{4(p')^2} (1 - \cos(2\theta')) = 0. \] 一个满足此条件的生成元是 \[ W'(t, \theta', p') = \frac{\alpha^2 \beta^2}{4(p')^3} \theta' + \frac{\alpha^2 \beta^2}{8(p')^3} \sin(2\theta'). \] 这个生成元有两个贡献, 一个与 \(\theta'\) 成正比, 另一个涉及 \(\theta'\) 的三角函数.

由此李变换产生的相空间坐标变换如前所述. 对于给定的初始条件, 我们首先执行对应于 W 的逆变换, 然后是对应于 W' 的逆变换, 使用 H₀ 求解系统的演化, 然后使用 W' 和 W 变换回来. 近似解是

\begin{align*} (t, \theta, p) &= (E'_{\epsilon, W} E'_{\epsilon^2, W'} E''_{t-t_0, H_0} E''_{-\epsilon^2, W'} E''_{-\epsilon, W} I)(t_0, \theta_0, p_0) \\ &= (e^{\epsilon L_W} e^{\epsilon^2 L_{W'}} e^{(t-t_0) L_{H_0''}} e^{-\epsilon^2 L_{W'}} e^{-\epsilon L_W} I)(t_0, \theta_0, p_0). \end{align*}

用这种方式得到的解与摆的实际演化在图 6.5 中进行了比较. 所有李级数中的项都包括到 ε⁴ 阶. 微扰解, 包括这第二个微扰步骤, 在初始段与实际解非常接近, 但随后两者开始发散. 时间间隔跨度为 10. 在更长的时间内, 发散实际上很严重, 如图 6.6 所示. 时间间隔跨度为 100. 这些解从 θ=0 开始, pθ=0.7. 参数为 α=1.0 和 β=0.1.

微扰解的一个问题是 W' 中存在项以及相应的相空间坐标变换与 \(\theta'\) 成正比, 而 \(\theta'\) 随时间线性增长. 因此解只能在短时间内有效; 有效区间取决于特定轨迹的频率以及乘以各种项的系数的大小. 解的微扰表示中这种与时间成比例的项称为长期项. 它们限制了微扰理论的有效性到短时间.

7.2.3. 6.2.2 消除长期项

对于长期项问题有一个简单的解决方案, 由 Lindstedt 和 Poincaré 发展. 每个微扰步骤的目标是消除哈密顿量中阻碍求解的项. 然而, H' 中导致生成元 W' 中长期项的项实际上并不阻碍求解. 因此, 更好的程序是将该项保留在哈密顿量中, 并找到仅消除 θ' 中周期性项的生成元 W''. 因此 W'' 满足 \[ -\frac{p'}{\alpha} \partial_1 W''(t, \theta', p') - \frac{\alpha \beta^2}{4(p')^2} \cos(2\theta') = 0. \] 生成元是 \[ W''(t, \theta', p') = \frac{\alpha^2 \beta^2}{8(p')^3} \sin(2\theta'). \] 用这个生成元执行李变换后, 新的哈密顿量是 \[ H''(t, \theta'', p'') = \frac{(p'')^2}{2\alpha} + \epsilon^2 \frac{\alpha \beta^2}{4(p'')^2} + \dots. \]

包括到 ε² 阶的项, 解是 \[ \theta'' = \theta''_0 + \left( \frac{p''_0}{\alpha} - \epsilon^2 \frac{\alpha \beta^2}{2(p''_0)^3} \right) (t - t_0) \] \[ p'' = p''_0. \] 我们像以前一样通过复合变换, 修正哈密顿量的解以及逆变换来构造给定初始条件的解. 近似解是

\begin{align*} (t, \theta, p) &= (E'_{\epsilon, W} E'_{\epsilon^2, W''} E'''_{t-t_0, H''} E'''_{-\epsilon^2, W''} E'''_{-\epsilon, W} I)(t_0, \theta_0, p_0) \\ &= (e^{\epsilon L_W} e^{\epsilon^2 L_{W''}} e^{(t-t_0) L_{H'''}} e^{-\epsilon^2 L_{W''}} e^{-\epsilon L_W} I)(t_0, \theta_0, p_0). \end{align*}

结果相空间演化如图 6.7 所示. 现在微扰解是相平面中的一条闭合曲线, 并且与实际解非常一致.

通过修改哈密顿量的可解部分, 我们正在修改解的频率. 长期项的出现

是因为我们试图用一个频率的傅立叶级数来近似另一个频率的解. 作为一个类比, 考虑

\begin{align*} \sin(\omega + \Delta\omega) t &= \sin\omega t \cos\Delta\omega t + \cos\omega t \sin\Delta\omega t \\ &= \sin\omega t \left( 1 - \frac{(\Delta\omega t)^2}{2} + \dots \right) + \cos\omega t (\Delta\omega t + \dots). \end{align*}

周期项乘以时间多项式. 这些多项式是周期函数幂级数的初始段. 无限级数是收敛的, 但如果级数被截断, 误差在长时间内会很大.

将微扰解继续到更高阶现在是对我们已经执行的步骤的直接重复. 在微扰解的每一步, 哈密顿量的可解部分都会有新的贡献, 这些贡献吸收了潜在的长期项. 贡献恰好是在哈密顿量写成傅立叶级数后哈密顿量的角度无关部分. 傅立叶级数的常数部分与哈密顿量关于角度的平均值相同. 因此, 在微扰理论的每一步, 微扰的平均值都包含在哈密顿量的可解部分中, 周期部分通过李变换消除.

7.3. 6.3 多自由度

在将微扰理论应用于具有多个自由度的系统时会遇到其他问题. 考虑形式为 \[ H = H_0 + \epsilon H_1, \] 的哈密顿量, 其中 H₀ 仅依赖于动量, 因此是可解的. 我们假设哈密顿量没有显式的时间依赖性. 我们进一步假设坐标都是角度, 并且 H₁ 是坐标的多重周期函数. 执行带有生成元 W 的李变换, 新的哈密顿量是

\[ H' = e^{\epsilon L_W} H = H_0 + \epsilon (L_W H_0 + H_1) + \dots, \] 和以前一样. 消除 ε 阶项的条件是 \[ \{H_0, W\} + H_1 = 0, \] 一个线性偏微分方程. 根据假设, 哈密顿量 H₀ 仅依赖于动量. 我们定义 \[ \omega_0(p) = \partial_2 H_0(t, \theta, p), \] 未受扰系统的频率元组. 对 W 的条件是 \[ \omega_0(p) \partial_1 W(t, \theta, p) = H_1(t, \theta, p). \] 由于 H₁ 是坐标的多重周期函数, 我们可以将其写成泊松级数2 \[ H_1(t, \theta, p) = \sum_k A_k(p) \cos(k \cdot \theta). \] 类似地, 我们假设 W 可以写成泊松级数: \[ W(t, \theta, p) = \sum_k B_k(p) \sin(k \cdot \theta). \] 将这些代入要求消除 ε 阶项的条件中, 我们发现 \[ \sum_k B_k(p) (\omega_0(p) \cdot k) \cos(k \cdot \theta) = \sum_k A_k(p) \cos(k \cdot \theta). \] 余弦是正交的, 所以每一项必须单独为零. 我们推断出 \[ B_k(p) = \frac{A_k(p)}{k \cdot \omega_0(p)}, \]

7.3.1. 6.3.1 驱动摆作为微扰转子

更具体地, 考虑周期驱动摆. 我们将在扩展相空间中为驱动摆开发近似解, 将其视为微扰转子. 我们使用哈密顿量 \[ H(t, \theta, p) = \frac{p^2}{2ml^2} - ml(g - A\omega^2 \cos(\omega t)) \cos\theta. \] 我们可以通过进入扩展相空间来消除显式时间依赖性. 哈密顿量是

\begin{align*} H(\tau; \theta, t; p, T) &= T + \frac{p^2}{2ml^2} - ml(g - A\omega^2 \cos(\omega t)) \cos\theta \\ &= T + \frac{p^2}{2\alpha} - \beta \cos\theta + \gamma \cos(\theta + \omega t) + \gamma \cos(\theta - \omega t), \end{align*}

常数为 \(\alpha=ml^2\), \(\beta=mlg\), \(\gamma=\frac{1}{2}mlA\omega^2\).

为了将驱动摆近似为微扰转子, 我们选择 \[ H_0(\tau; \theta, t; p, T) = T + \frac{p^2}{2\alpha} \] \[ H_1(\tau; \theta, t; p, T) = -\beta \cos\theta + \gamma \cos(\theta + \omega t) + \gamma \cos(\theta - \omega t). \] 注意微扰 H₁ 在其泊松级数中只有三项, 所以在第一步微扰中只有三个区域将从适用域中排除. 微扰 H₁ 特别简单: 它只有三项, 并且系数是常数. 消除 H₁ 中 ε 阶项的李级数生成元, 满足 \[ \{H_0, W\} + H_1 = 0, \] 是 \[ W(\tau; \theta, t; p, T) = -\frac{\beta}{\omega_r(p)} \sin\theta + \frac{\gamma}{\omega_r(p) + \omega} \sin(\theta + \omega t) + \frac{\gamma}{\omega_r(p) - \omega} \sin(\theta - \omega t), \] 其中 \(\omega_r(p) = \partial_{2,0} H_0(\tau; \theta, t; p, T) = p/\alpha\) 是未受扰转子频率.

由此产生的近似解有三个区域存在小分母, 因此有三个区域被排除在微扰解的适用范围之外. 当 \(\omega_r(p)\) 接近 0, ω 和 -ω 时, 区域被排除. 在这些区域之外, 微扰解效果很好, 就像转子近似中的摆一样. 不幸的是, 驱动摆相空间的一些更有趣的区域被排除了: 我们发现无驱动摆残余的区域被排除了, 摆自转与驱动同步的两个共振区域也被排除了. 我们需要开发方法来近似这些区域. contentcopy download Use code with caution. Org

7.4. 6.4 非线性共振

我们可以为孤立共振区域发展一个近似, 如下所示. 我们再次考虑形式为 \[ H = H_0 + \epsilon H_1, \] 的哈密顿量, 其中 \(H_0(t, q, p) = \hat{H}_0(p)\) 仅依赖于动量, 因此是可解的. 我们假设哈密顿量没有显式的时间依赖性. 我们进一步假设坐标都是角度, 并且 H₁ 是坐标的多重周期函数, 可以写成 \[ H_1(t, \theta, p) = \sum_k A_k(p) \cos(k \cdot \theta). \] 假设我们对相空间中 \(n \cdot \omega_0(p)\) 接近零的区域感兴趣, 其中 n 是一个整数元组, 每个自由度对应一个整数. 如果我们像之前那样用消除所有 ε 阶项的生成元 W 来发展微扰理论, 那么变换后的哈密顿量就是 H₀, 这是解析可解的, 但是分母中会有 \(n \cdot \omega_0(p)\) 项. 由此产生的解不适用于该共振附近.

正如通过将更多项与哈密顿量的可解部分分组来解决长期项问题一样, 我们可以通过消除较少项并将更多项与可解部分分组来发展在共振区域内有效的近似.

为了在 \(n \cdot \omega_0(p)\) 接近零的共振区域发展微扰近似, 我们取生成元 W 为 \[ W_n(t, \theta, p) = \sum_{k \neq 0, k \neq n} \frac{A_k(p)}{k \cdot \omega_0(p)} \sin(k \cdot \theta), \] 排除了 W 中导致该区域小分母的项. 变换后的哈密顿量是 \[ H'_n(t, \theta, p) = \hat{H}_0(p) + \epsilon A_0(p) + \epsilon A_n(p) \cos(n \cdot \theta) + \dots, \]

其中附加项的阶数更高. 通过从生成函数中排除项 k=n, 该项在变换后保留下来.

变换后的哈密顿量仅依赖于角度的一个组合, 因此可以进行变量替换, 使得新的变换后的哈密顿量在除一个坐标(即这个角度组合)之外的所有坐标中都是循环的. 这个变换后的哈密顿量是可解的(可简化为求积).

例如, 假设存在两个自由度 θ = (θ₁, θ₂), 并且我们对 n·ω₀ 接近零的相空间区域感兴趣, 其中 n = (n₁, n₂). 角度组合 n·θ 在共振区域内变化缓慢. 变换后的哈密顿量 (6.60) 形式为 \[ H'_n(t; \theta_1, \theta_2; p_1, p_2) = \hat{H}_0(p_1, p_2) + \epsilon A_0(p_1, p_2) + \epsilon A_n(p_1, p_2) \cos(n_1 \theta_1 + n_2 \theta_2). \] 我们可以变换变量到 σ = n₁θ₁ + n₂θ₂, 第二个坐标为, 比如说, θ' = θ₂. 3 使用 F₂ 型生成函数 \[ F_2(t; \theta_1, \theta_2; \Sigma, \Theta') = (n_1 \theta_1 + n_2 \theta_2) \Sigma + \theta_2 \Theta'. \] 变换是

\begin{align*} p_1 &= n_1 \Sigma \\ p_2 &= n_2 \Sigma + \Theta' \\ \sigma &= n_1 \theta_1 + n_2 \theta_2 \\ \theta' &= \theta_2. \end{align*}

在这些变量中, 变换后的共振哈密顿量 H'n 变为

\begin{align*} H''_n(t; \sigma, \theta'; \Sigma, \Theta') &= \hat{H}_0(n_1 \Sigma, n_2 \Sigma + \Theta') + \epsilon A_0(n_1 \Sigma, n_2 \Sigma + \Theta') \\ &+ \epsilon A_n(n_1 \Sigma, n_2 \Sigma + \Theta') \cos(\sigma). \end{align*}

这个哈密顿量在 θ' 中是循环的, 所以 Θ' 是常数. 有了这个常数动量, 共轭对 (σ, Σ) 的哈密顿量只有一个自由度. 解是哈密顿量的等值线. 这些解可以重新用

7.4.1. 6.4.1 摆的近似

共振哈密顿量 (6.64) 具有单一自由度, 因此是可解的(可简化为求积). 我们可以利用解仅在共振的直接邻域内有效这一事实来发展一个近似解析解. 共振哈密顿量可以近似为一个广义摆哈密顿量. 设 \[ H''_{n,0}(t; \sigma, \theta'; \Sigma, \Theta') = \hat{H}_0(n_1 \Sigma, n_2 \Sigma + \Theta') + \epsilon A_0(n_1 \Sigma, n_2 \Sigma + \Theta') \] 和 \[ H''_{n,1}(t; \sigma, \theta'; \Sigma, \Theta') = \epsilon A_n(n_1 \Sigma, n_2 \Sigma + \Theta') \cos(\sigma). \] 共振哈密顿量是 \[ H''_n = H''_{n,0} + \epsilon H''_{n,1}. \] 定义共振中心 \( \Sigma_n \) 为共振频率为零的要求 \[ \partial_{2,0} H''_{n,0}(t; \sigma, \theta'; \Sigma_n, \Theta') = 0. \] 现在将共振的两部分在共振中心展开:

\begin{align*} H''_{n,0}(t; \sigma, \theta'; \Sigma, \Theta') &= H''_{n,0}(t; \sigma, \theta'; \Sigma_n, \Theta') \\ &+ \partial_{2,0} H''_{n,0}(t; \sigma, \theta'; \Sigma_n, \Theta') (\Sigma - \Sigma_n) \\ &+ \frac{1}{2} \partial^2_{2,0} H''_{n,0}(t; \sigma, \theta'; \Sigma_n, \Theta') (\Sigma - \Sigma_n)^2 \\ &+ \dots, \end{align*}

和 \[ H''_{n,1}(t; \sigma, \theta'; \Sigma, \Theta') = H''_{n,1}(t; \sigma, \theta'; \Sigma_n, \Theta') + \dots. \] \(H''_{n,0}\) 展开的第一项是常数, 可以忽略. 第二项的系数为零, 根据 \( \Sigma_n \) 的定义. 第三项是第一个重要项. 我们假设 \(H''_{n,1}\) 的第一项是非零常数. 现在共振处 Σ 中分离线的尺度通常与 \( \sqrt{\epsilon} \) 成正比. 因此 \(H''_{n,0}\) 的第三项和 \(H''_{n,1}\) 的第一项都与 ε 成正比. 后续项的阶数更高. 只保留 ε 阶项, 近似共振哈密顿量的形式为 \[ \frac{(\Sigma - \Sigma_n)^2}{2\alpha'} - \beta' \cos\sigma, \] 这是动量中心平移的摆的哈密顿量. 这是解析可解的.

7.4.2. 驱动摆共振

考虑周期驱动摆在共振 \(\omega_r(p) = \omega\) 附近的行​​为. 驱动摆的哈密顿量 (6.54) 在 H₁ 中有三个共振项. 完整生成元 (6.56) 有三个项, 旨在消除哈密顿量中相应的共振项. 由此产生的近似解在三个共振 \(\omega_r(p) = 0\), \(\omega_r(p) = \omega\), \(\omega_r(p) = -\omega\) 附近都有小分母.

为了在 \(\omega_r(p) = \omega\) 共振附近发展共振近似, 我们不将相应的项包含在生成元中, 以便相应的项留在哈密顿量中. 给出完整生成元 (6.56) 各项的名称是有帮助的:

\begin{align*} W^0(\tau; \theta, t; p, T) &= -\frac{\beta}{\omega_r(p)} \sin\theta \\ W^-(\tau; \theta, t; p, T) &= \frac{\gamma}{\omega_r(p) + \omega} \sin(\theta + \omega t) \\ W^+(\tau; \theta, t; p, T) &= \frac{\gamma}{\omega_r(p) - \omega} \sin(\theta - \omega t), \end{align*}

完整的生成元是 \(W^0 + W^- + W^+\).

为了研究在 \(\omega_r(p) = \omega\)(" " 共振)附近相空间中的运动, 我们使用排除相应项的生成元 \[ W_ = W0 + W^-. \] 使用这个生成元, 变换后的哈密顿量是 \[ H_+(\tau; \theta, t; p, T) = T + \frac{p^2}{2\alpha} + \gamma \cos(\theta - \omega t) + \dots. \] 排除高阶项, 这个哈密顿量只有一个坐标组合, 因此可以通过进行一个正则变换到一个哈密顿量, 该哈密顿量在除一个自由度之外的所有自由度中都是循环的. 通过混合变量生成函数定义变换 \[ F_2(\tau; t, \theta; \Sigma, T') = (\theta - \omega t) \Sigma + t T', \] 给出变换 \[ \sigma = \theta - \omega t \] \[ t = t' \] \[ p = \Sigma \] \[ T = T' - \omega \Sigma. \] 在这些新坐标中, 共振哈密顿量是

\begin{align*} H'_+(\tau; \sigma, t'; \Sigma, T') &= T' - \omega \Sigma + \frac{\Sigma^2}{2\alpha} + \gamma \cos\sigma \\ &= \frac{(\Sigma - \alpha\omega)^2}{2\alpha} + \gamma \cos\sigma + T' - \frac{1}{2}\alpha\omega^2. \end{align*}

这个哈密顿量在 t' 中是循环的, 所以解是 H'+ 在 (σ, Σ) 中的等值线. 实际上这里可以说的更多, 因为 H'+ 已经是摆的形式, 在 Σ 方向上平移了 αω, 并且在相位上平移了 π. 相移 π 的出现是因为余弦项的符号是正的, 而不是像通常摆那样是负的. 等值线的草图如图 6.8 所示.

7.4.3. 练习 6.2: 共振宽度

验证共振区域的半宽是 \(2\sqrt{\alpha\gamma}\).

7.4.4. 练习 6.3: 使用计算机

验证使用生成元 W₊, 变换后的哈密顿量由方程 (6.75) 给出.

驱动摆在 \(\omega_r(p) = \omega\) 共振附近的近似解是 \[ (\tau; \theta, t; p, T) = (E'_{\epsilon, W_+} E''_{\tau-\tau_0, H'_+} E''_{-\epsilon, W_+} I)(\tau_0; \theta_0, t_0; p_0, T_0). \] 为了找出近似解对实际驱动摆建模的程度, 我们使用这个近似解制作一个截面, 并将其与实际驱动摆的截面进行比较. 共振区域中近似解的截面如图 6.9 所示. 实际驱动摆的截面如图 6.10 所示. 对应关系出奇地好, 但实际截面的某些特征没有被表示出来. 例如, 实际分界线附近存在一个小的混沌区. 注意共振岛如何不对称于常数动量线. 共振哈密顿量对称于 \(\Sigma = \alpha\omega\), 所以其本身会给出一个对称的共振岛. 必要的畸变是由消除其他共振的 W₊ 变换引入的.

\(\omega_r(p) = 0\) 共振附近的微扰解与 \(\omega_r(p) = \omega\) 和 \(\omega_r(p) = -\omega\) 共振的微扰解平滑地合并. 我们可以通过使用每个相空间区域的适当共振解来构造一个复合微扰解. 复合微扰解的截面如图 6.10 所示. 实际驱动摆的相应截面也显示出来. 微扰解捕捉到了实际截面上看到的许多特征. 然而, 一阶微扰解没有捕捉到两个主共振之间的共振岛或主共振区域内包含的次级岛链. 一阶微扰解没有

显示出实际驱动摆截面上明显的分界线附近的混沌区.

我们看到, 从一阶微扰解对各种共振区域的比较来看, 实际驱动摆的截面可以通过组合为每个共振发展的近似来近似构造. 共振区域的形状被消除邻近共振的变换所扭曲, 因此产生的片段一致地拼接在一起. 每个共振区域的预测宽度与实际宽度一致: 它没有因为消除其他共振项而引入的区域扭曲而显著改变. 实际截面的所有特征都没有在这个一阶近似的合成中再现: 存在混沌区和岛屿未被解释.

对于更大的驱动, 一阶微扰导出的近似更差. 在图 6.11 中, 驱动强度增加了五倍, 我们失去了分隔共振区域的不变曲线. 主要的共振岛屿持续存在, 但分界线附近的混沌区已合并成一个大的混沌海.

图 6.11 中更强驱动摆的一阶微扰解仍然相当好地近似了主共振岛的中心, 但当我们移出并遇到在 \(\omega_r(p) = \omega\) 共振区域可见的次级岛屿时, 它就失败了. 这里两个区域的近似不太吻合. 混沌海出现在微扰解不匹配的区域.

7.4.5. 6.4.2 解读哈密顿量

主共振岛的位置和宽度通常可以直接从哈密顿量中读出, 当表示为泊松级数时. 对于微扰级数中的每一项, 都存在一个相应的共振岛. 岛屿的宽度通常可以简单地从哈密顿量中的系数计算出来. 因此, 仅仅通过查看哈密顿量, 我们就可以很好地了解截面上会看到什么样的行为. 例如, 在驱动摆中, 哈密顿量 (6.53) 有三项. 我们可以预料到, 仅仅通过查看哈密顿量, 截面上就会发现三个主要的共振岛. 我们知道这些岛屿将位于

共振角组合缓慢的地方. 所以对于周期驱动摆, 共振发生在 \(\omega_r(p) = \omega\), \(\omega_r(p) = 0\) 和 \(\omega_r(p) = -\omega\) 附近. 可以用一个简单的计算来计算共振岛的近似宽度.

7.4.6. 6.4.3 共振重叠判据

随着驱动大小的增加, 分界线附近的混沌区变大, 然后合并成一个大的混沌海. 共振重叠判据给出了这种情况发生时间的解析估计. 基本思想是比较邻近共振宽度的总和与它们的分离. 如果半宽之和大于分离距离, 则共振重叠判据预测在重叠共振附近将存在大尺度混沌行为. 在周期驱动摆的情况下, \(\omega_r(p)=0\) 共振的半宽是 \(2\sqrt{\alpha\beta}\), \(\omega_r(p)=\omega\) 共振的半宽是 \(2\sqrt{\alpha\gamma}\)(见图 6.12). 共振的分离是 \(\alpha\omega\). 所以如果 \[ 2\sqrt{\alpha\beta} + 2\sqrt{\alpha\gamma} \ge \alpha\omega. \] 则发生共振重叠. 驱动的幅度通过 γ 进入. 求解, 我们发现共振重叠发生的 γ 值. 对于上面图中使用的参数 \(\alpha=\beta=1, \omega=5\), 共振重叠值为 \(\gamma = 9/4\). 我们看到, 事实上, 混沌区在 \(\gamma = 5/4\) 时已经合并. 因此在这种情况下, 共振重叠判据高估了获得大尺度混沌行为所需的共振强度. 这通常是共振重叠判据的典型情况.

思考为什么共振重叠判据通常高估获得大尺度混沌所需强度的一种方法是, 还有其他需要考虑的效应. 例如, 随着驱动增加, 主共振之间出现二阶共振; 这些共振占据空间, 因此共振重叠发生在比仅考虑主共振所预期的更小的驱动下. 此外, 每个分界线处的混沌区具有一定的宽度, 也必须占据面积.

7.4.7. 6.4.4 高阶微扰理论中的共振

随着驱动的增加, 出现了各种新的岛屿, 这些岛屿在原始哈密顿量中并不明显. 要找到这些区域中运动的近似, 我们可以使用更高阶的微扰理论. 基本计划与之前相同. 在任何阶段, 哈密顿量(可能是早期微扰理论阶段的结果)都表示为泊松级数(多角傅立叶级数). 在感兴趣区域内非共振的项通过李变换消除. 剩余的共振项仅涉及角度的一个组合, 因此通过进行到共振坐标的正则变换是可解的. 我们完成求解并将变换转换回原始坐标.

让我们找到在图 6.10 中可见的 \(\omega_r(p)=0\) 共振和 \(\omega_r(p)=-\omega\) 共振之间的二阶岛屿的微扰近似. 细节很繁琐, 所以我们只给出一些中间结果.

这个共振不靠近三个主共振, 所以我们可以使用完整生成元 (6.56) 来消除哈密顿量中的那三个主共振项. 在这个微扰步骤之后, 哈密顿量看起来太毛糙了.

我们将变换后的哈密顿量展开为泊松形式, 并将项分为共振项和非共振项. 非共振项可以通过李变换消除. 这个李变换使哈密顿量中的共振项保持不变, 并对截面上的曲线引入额外的扭曲. 这种后一种扭曲在这种情况下很小, 计算起来非常麻烦, 所以我们干脆不包括这种效应. 共振哈密顿量则为(经过相当多的代数运算) \[ H_{2:1}(\tau; \theta, t; p, T) = \frac{p^2}{2\alpha} + T + \frac{\alpha\beta\gamma}{4p^2} \frac{\alpha^2\omega^2 + 2\alpha\omega p + 2p^2}{(\alpha\omega + p)^2} \cos(2\theta + \omega t) \] 这是可解的, 因为它只有一个坐标组合.

我们可以通过进行摆近似来得到一个解析解. 哈密顿量在动量 p 中已经是二次的, 所以我们只需要在共振中心 \(p_{2:1} = \alpha\omega / 2\) 处计算势能项的系数. 共振哈密顿量, 在摆近似中, 是 \[ H'_{2:1}(\tau; \theta, t; p, T) = \frac{p^2}{2\alpha} + \frac{2\beta\gamma}{\alpha\omega^2} \cos(2\theta + \omega t). \] 进行到共振变量 \(\sigma = 2\theta - \omega t\) 的变换将此简化为具有单一自由度的摆哈密顿量. 将这个摆哈密顿量的解析解与由完整 W 生成的变换相结合, 我们得到一个近似的微扰解 \[ (\tau; \theta, t; p, T) = (E'_{\epsilon, W} E''_{\tau-\tau_0, H'_{2:1}} E''_{-\epsilon, W} I)(\tau_0; \theta_0, t_0; p_0, T_0). \] 使用这个解在适当共振区域的截面如图 6.13 所示. 将其与实际截面(图 6.10)进行比较, 我们看到近似解很好地代表了这个共振运动.

7.4.8. 6.4.5 倒置垂直平衡的稳定性

作为第二个应用, 我们使用二阶微扰理论来研究周期驱动摆的倒置垂直平衡的稳定性.

实际上, 过程与刚才类似, 但这里我们关注一组不同的共振项. 对于垂直平衡缓慢变化的项是那些涉及 θ 但不涉及 t 的项, 例如 \(\cos(\theta)\) 和 \(\cos(2\theta)\). 所以我们想使用生成元 \(W^+ + W^-\) 来消除涉及 θ 和 ωt 组合的非共振项, 同时保留中心共振. 用这个生成元对哈密顿量进行李变换后, 我们将变换后的哈密顿量写成泊松级数并收集共振项. 变换后的共振哈密顿量是 \[ H'_V(\tau; \theta, t; p, T) = \frac{p^2}{2\alpha} - \beta\epsilon \cos\theta + \frac{\alpha\gamma^2\epsilon^2(\alpha^2\omega^2 + p^2)}{2(\alpha^2\omega^2 - p^2)^2} \cos(2\theta) + \dots. \] 图 6.14 显示了这个共振哈密顿量 \(H'_V\) 的等值线. 图 6.14 显示了相同参数下实际驱动摆的截面. 共振哈密顿量的行为与实际驱动的行为无法区分

摆. 理论在这里效果特别好; 没有邻近的共振, 因为驱动频率很高.

我们可以通过对不动点 θ=π, p=0 的共振哈密顿量进行线性稳定性分析来获得倒置垂直平衡稳定性的解析估计. 如果我们首先在共振中心进行摆近似, 代数会稍微简单一些. 共振哈密顿量近似为 \[ H''_V(\tau; \theta, t; p, T) = \frac{p^2}{2\alpha} - \beta\epsilon \cos\theta + \frac{\gamma^2\epsilon^2}{2\alpha\omega^2} \cos(2\theta) + \dots. \] 倒置垂直平衡的线性稳定性分析表明稳定性条件为 \[ \gamma^2 > \alpha \beta \omega^2. \] 用原始物理参数表示, 垂直平衡线性稳定的条件是 \[ \frac{\omega}{\omega_s} \frac{A}{l} > \sqrt{2}, \] 其中 \(\omega_s = \sqrt{g/l}\), 小幅度振荡频率. 要使垂直平衡稳定, 驱动幅度和驱动频率的标度乘积必须足够大.

这个解析估计与图 6.15 中驱动摆的行为进行了比较. 对于任何给定的参数赋值, 可以通过第 4 章的方法测试驱动摆倒置垂直平衡的线性稳定性: 数值上, 这涉及确定共振中心参考轨道的特征多项式的根. 在图中, 对参数网格的每个点评估了倒置垂直平衡的稳定性. 对于线性稳定的参数组合显示一个点. 对角线是倒置平衡稳定区域的解析边界: \((\omega/\omega_s)(A/l) = \sqrt{2}\). 我们看到稳定区域的边界与微扰理论推导出的解析估计吻合得很好. 注意, 对于非常高的驱动幅度, 存在另一个不稳定性区域, 这个微扰分析没有捕捉到.

7.5. 6.5 项目

7.5.1. 练习 6.4: 周期驱动摆

a. 详细说明图 6.10 中显示的主驱动摆共振的微扰理论. b. 详细说明倒置垂直平衡稳定性的微扰理论. 推导共振哈密顿量, 并绘制其等高线. 将这些等高线与各种参数的截面进行比较. c. 进行导致方程 (6.87) 的线性稳定性分析. 图 fig:dpend-inverted-summary 的上部发生了什么? 为什么当判据 (6.87) 预测稳定性时系统不稳定? 使用截面来研究这个参数区域.

7.5.2. 练习 6.5: 自旋-轨道耦合

自旋-轨道问题的哈密顿量, 在 2.11.2 节中描述, 是

\begin{align*} H(t, \theta, p_\theta) &= \frac{p_\theta^2}{2C} - \frac{n^2 \epsilon^2 C}{4} \frac{a^3}{R^3(t)} \cos 2(\theta - f(t)) \\ &= \frac{p_\theta^2}{2C} - \frac{n^2 \epsilon^2 C}{4} \left( \cos(2\theta - 2nt) + \frac{7e}{2} \cos(2\theta - 3nt) \right. \\ &\quad \left. - \frac{e}{2} \cos(2\theta - nt) + \dots \right) \end{align*}

其中忽略的项在偏心率 e 中阶数更高. a. 找出三个主共振的宽度和中心. 将宽度的预测与截面上看到的岛屿宽度进行比较. 写出共振重叠判据, 并与向大尺度混沌过渡的数值实验进行比较. b. 同步岛的不动点偏离平均自转速率. 这表明月球自转存在" 受迫" 振荡. 通过使用李变换消除两个非同步共振, 为同步岛中的运动发展一个微扰理论. 预测截面上同步共振中心的固定点位置, 从而预测月球受迫振荡的幅度. contentcopy download Use code with caution. Org

8. 7 附录: 我们的记法

一个充分的记法应该至少被两个人理解, 其中一个可能是作者. Abdus Salam, (1950).

我们采用一种函数式数学记法, 这种记法与 Spivak 在其<流形微积分>中使用的记法很接近. 函数式记法的使用避免了传统数学记法中的许多歧义; 传统记法的歧义可能成为经典力学中清晰推理的障碍. 函数式记法仔细区分了函数本身与函数应用于特定参数时的值. 在函数式记法中, 数学表达式是明确且自包含的.

我们采用一种通用算术, 其中基本的算术运算, 如加法和乘法, 被扩展到广泛的数学类型. 因此, 例如, 加法运算符 + 可以应用于数字, 数字元组, 矩阵, 函数等. 通用算术形式化了用于操作数学对象的常见非正式实践.

我们经常想要操作聚合量, 例如一个粒子集合的所有直角坐标的集合, 而不显式地操作分量部分. 张量算术提供了一种操作聚合对象的传统方法: 索引标记部分, 并引入约定, 如求和约定, 来操作索引. 我们引入一种元组算术作为操作聚合量的替代方法, 这通常允许我们避免用索引标记部分. 元组算术受到张量算术的启发, 但它更通用: 元组的所有分量不必具有相同的大小或类型.

数学记法与计算机语言 Scheme [21] 的表达式一一对应. Scheme 基于 λ-演算 [12], 并直接支持函数的操作. 我们将 Scheme 扩展了符号, 数值和通用特性以支持我们的应用. 有关 Scheme 的简单介绍, 请参见附录 8. 数学记法和 Scheme 之间的对应关系要求数学表达式是明确且自包含的. Scheme 在验证数学推导中提供了即时反馈, 并促进了系统行为的探索.

8.0.1. 函数

函数 f 给定参数 x 的值写作 f(x). 表达式 f(x) 表示函数在给定参数处的值; 当我们希望表示函数本身时, 我们只写 f. 函数可以接受多个参数. 例如, 我们可能有函数 d, 它给出平面上两点由其直角坐标给出的欧几里得距离. \[ d(x_1, y_1, x_2, y_2) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}. \] 在 Scheme 中我们可以这样写:

(define (d x1 y1 x2 y2)
  (sqrt (+ (square (- x2 x1)) (square (- y2 y1)))))

如果一个函数的值域与另一个函数的定义域重叠, 则可以复合函数. 函数的复合是通过将一个函数的输出传递给另一个函数的输入来构造的. 我们使用 ◦ 运算来写两个函数的复合: \[ (f \circ g) : x \mapsto (f \circ g)(x) = f(g(x)). \] 一个计算其参数正弦值立方的过程 h 可以通过复合过程 cube 和 sin 来定义:

(define h (compose cube sin))
(h 2)
.7518269446689928

这与

(cube (sin 2))
.7518269446689928

相同.

算术被扩展到函数的处理: 通常的数学运算可以应用于函数. 例子是加法和乘法; 如果两个函数接受相同类型的参数并且它们的值可以相加或相乘, 我们可以相加或相乘这两个函数:

\begin{align*} (f+g)(x) &= f(x) + g(x), \\ (fg)(x) &= f(x) g(x). \end{align*}

一个过程 g, 它将其参数的立方乘以其参数的正弦, 是:

(define g (* cube sin))
(g 2)
7.274379414605454
(* (cube 2) (sin 2))
7.274379414605454

8.0.2. 符号值

像通常的数学记法一样, 算术被扩展以允许使用表示未知或不完全指定数学对象的符号. 这些符号被当作它们具有已知类型的值一样进行操作. 默认情况下, Scheme 符号被假定表示一个实数. 所以表达式 'a 是一个表示未指定实数的字面 Scheme 符号.

(print-expression
 ((compose cube sin) 'a))
(expt (sin a) 3)

过程 print-expression 简化表达式, 移除类型标签, 并以可读形式显示它. 我们可以使用简化器来验证三角恒等式:

(print-expression
 ((- (+ (square sin) (square cos)) 1) 'a))
0

正如能够操作符号数字很有用一样, 能够操作符号函数也很有用. 过程 literal-function 生成一个除了其名称之外没有其他已知属性的函数过程. 默认情况下, 字面函数被定义为接受一个实数参数并产生一个实数值. 例如, 我们可能想使用一个函数 \(f : \mathbf{R} \to \mathbf{R}\).

(print-expression
 ((literal-function 'f) 'x))
(g x)
(print-expression
 ((compose (literal-function 'f) (literal-function 'g)) 'x))
(f (g x))

我们也可以制作具有多个, 可能是结构化参数并返回结构化值的字面函数. 例如, 要表示一个名为 g 的字面函数, 它接受两个实数参数并返回一个实数值 (\(g : \mathbf{R} \times \mathbf{R} \to \mathbf{R}\)), 我们可以写:

(define g (literal-function 'g (-> (X Real Real) Real)))
(print-expression (g 'x 'y))
(g x y)

我们可以在任何可以使用相同类型的显式函数的地方使用这样的字面函数. 有一整套语言用于根据字面函数的参数类型和数量以及它们的值的类型来描述字面函数的类型. 这里我们用表达式: (-> (X Real Real) Real) 描述了一个将实数对映射到实数的函数. 稍后我们将介绍结构化参数和值, 并将展示字面函数处理这些的扩展.

8.0.3. 元组

有两种元组: up 元组和 down 元组. 我们将元组写成其分量的有序列表; 如果是 up 元组, 则用圆括号界定, 如果是 down 元组, 则用方括号界定. 例如, 速度分量 \(v^0, v^1, v^2\) 的 up 元组 v 是 \[ v = (v^0, v^1, v^2). \] 动量分量 \(p_0, p_1, p_2\) 的 down 元组 p 是 \[ p = [p_0, p_1, p_2]. \]

up 元组的分量通常用上标标识. down 元组的分量通常用下标标识. 在引用元组元素时, 我们使用从零开始的索引. 这个记法遵循张量算术中的通常约定. 在 Scheme 中, 我们用构造器 up 和 down 来制作元组.

(define v (up 'v^0 'v^1 'v^2))
(print-expression v)
(up v^0 v^1 v^2)
(define p (down 'p_0 'p_1 'p_2))
(print-expression p)
(down p_0 p_1 p_2)

元组算术与通常的张量算术不同之处在于, 元组的分量也可能是元组, 并且不同的分量不必具有相同的结构. 例如, 相空间状态的元组结构 s 是 \[ s = (t, (x, y), [p_x, p_y]). \] 它是一个包含时间, 坐标和动量的 up 元组. 时间 t 没有子结构. 坐标是坐标分量 x 和 y 的 up 元组. 动量是动量分量 \(p_x\) 和 \(p_y\) 的 down 元组. 在 Scheme 中:

(define s (up 't (up 'x 'y) (down 'p_x 'p_y)))

为了引用元组结构的分量, 存在一类选择器函数. 例如:

\begin{align*} I(s) &= s \\ I_0(s) &= t \\ I_1(s) &= (x, y) \\ I_2(s) &= [p_x, p_y] \\ I_{1,0}(s) &= x \\ &\dots \\ I_{2,1}(s) &= p_y. \end{align*}

选择器上整数下标的序列描述了到所需分量的访问链. 过程 component 是实现选择器函数 \(I_z\) 的通用选择器过程:

((component 0 1) (up (up 'a 'b) (up 'c 'd)))
b

要访问元组的一个分量, 我们也可以使用选择器过程 ref, 它接受一个元组和一个索引, 并返回指定的元组元素:

(ref (up 'a 'b 'c) 1)
b

我们到处都使用从零开始的索引. 过程 ref 可用于访问元组树的任何子结构:

(ref (up (up 'a 'b) (up 'c 'd)) 0 1)
b

两个相同长度的 up 元组可以逐元素相加或相减, 产生一个 up 元组, 前提是分量对于加法是兼容的. 类似地, 两个相同长度的 down 元组可以逐元素相加或相减, 产生一个 down 元组, 前提是分量对于加法是兼容的.

任何元组都可以乘以一个数, 方法是将每个分量乘以该数. 当然, 数可以相乘. 对于加法兼容的元组构成一个向量空间.

如果两个元组类型相反, 长度相同, 且它们对应的元素对于收缩是兼容的, 则称这两个元组对于收缩是兼容的. 如果两个元组对于收缩是兼容的, 则通用乘法被解释为收缩: 结果是对应分量乘积之和. 例如, 上面介绍的 p 和 v 对于乘法是兼容的; 乘积是 \[ pv = p_0 v^0 + p_1 v^1 + p_2 v^2. \] 所以对于收缩兼容的元组的乘积是一个内积. 元组的收缩是可交换的: \(pv = vp\). 使用上面定义的元组 p 和 v

(print-expression
 (* p v))
(+ (* p_0 v^0) (* p_1 v^1) (* p_2 v^2))

元组结构可以用来表示线性变换. 例如, 通常由矩阵表示的旋转 \[ \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix} \] 可以表示为一个元组结构, 1 \[ \begin{pmatrix} \begin{pmatrix} \cos\theta \\ \sin\theta \end{pmatrix} & \begin{pmatrix} -\sin\theta \\ \cos\theta \end{pmatrix} \end{pmatrix}. \] 这样的元组与表示向量的 up 元组进行收缩是兼容的. 所以, 例如: \[ \begin{pmatrix} \begin{pmatrix} \cos\theta \\ \sin\theta \end{pmatrix} & \begin{pmatrix} -\sin\theta \\ \cos\theta \end{pmatrix} \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} x \cos\theta - y \sin\theta \\ x \sin\theta + y \cos\theta \end{pmatrix}. \] 两个表示线性变换的元组, 虽然不兼容收缩, 也可以通过乘法组合. 在这种情况下, 乘积表示线性变换的复合. 例如, 表示两次旋转的元组的乘积是 \[ \begin{pmatrix} \dots \end{pmatrix} \begin{pmatrix} \dots \end{pmatrix} = \begin{pmatrix} \dots \end{pmatrix}. \] 表示线性变换的元组的乘法是结合的, 但通常不可交换, 就像变换的复合是结合的但通常不可交换一样.

对于不兼容收缩的两个结构进行乘法的实际规则很简单. 如果 A 和 B 不兼容收缩, 乘积是 B 类型的元组, 其分量是 a 与 B 的分量的乘积. 相同

8.0.4. 导数

函数 f 的导数是一个函数. 记作 Df. 我们的记法约定是 D 是一个高优先级运算符. 因此 D 作用于相邻函数, 然后才发生任何其他应用: Df(x) 与 (Df)(x) 相同. 高阶导数通过对导数运算符求幂来描述. 因此函数 f 的 n 阶导数记作 \(D^n f\).

用于产生函数导数的 Scheme 过程名为 D. sin 过程的导数是计算 cos 的过程:

(define derivative-of-sine (D sin))
(print-expression (derivative-of-sine 'x))
(cos x)

函数 f 的导数是函数 Df, 其在特定参数处的值是可以乘以参数增量 Δx 以获得 f 值增量的线性近似: \[ f(x + \Delta x) \approx f(x) + Df(x) \Delta x. \] 例如, 设 f 是对其参数求立方的函数 (\(f(x)=x^3\)), 则 Df 是产生其参数平方三倍的函数 (\(Df(y) = 3y^2\)). 所以 f(5)=125 且 Df(5)=75. 参数为 x+Δx 的 f 值是 \[ f(x + \Delta x) = (x + \Delta x)^3 = x^3 + 3x^2 \Delta x + 3x (\Delta x)^2 + (\Delta x)^3 \] 且 \[ Df(x) \Delta x = 3x^2 \Delta x. \] 所以 Df(x) 乘以 Δx 得到 f(x+Δx) 中 Δx 的线性项, 当 Δx 很小时, 提供了对 \(f(x+\Delta x) - f(x)\) 的良好近似.

导数是算子. 算子就像函数, 只是算子的乘法被解释为复合, 而函数的乘法是值的乘法(见方程 7.3). 如果 D 是一个普通函数, 那么乘法规则将意味着 D²f 只是 Df 与自身的乘积, 这不是所期望的. 算术被扩展以允许操作算子. 一个典型的算子是 \[ (D + 1)(D - 1) = D^2 - 1, \] 它从其二阶导数中减去一个函数. 1 充当恒等算子: 当与算子进行算术组合时, 数字被视为将其输入乘以该数字的算子. 这样的算子可以构造并在 Scheme 中使用:

(print-expression
 (((* (- D 1) (+ D 1)) (literal-function 'f)) 'x))
(+ (((expt D 2) f) x) (* -1 (f x)))

8.0.5. 多参数函数的导数

导数推广到接受多个参数的函数. 多参数实值函数的导数是一个对象, 其与参数增量元组的收缩给出函数值增量的线性近似.

多参数函数可以看作是这些参数的 up 元组的函数. 因此, 增量参数元组是分量的 up 元组, 每个参数位置对应一个. 因此, 这样一个函数的导数是函数关于每个参数位置偏导数的 down 元组.

假设我们有一个接受两个实值参数的实值函数 g, 我们想近似 g 从其在 x, y 处的值的增量. 如果参数增加元组 (Δx, Δy), 我们计算:

\begin{align*} Dg(x, y) (\Delta x, \Delta y) &= [\partial_0 g(x, y), \partial_1 g(x, y)] \cdot (\Delta x, \Delta y) \\ &= \partial_0 g(x, y) \Delta x + \partial_1 g(x, y) \Delta y. \end{align*}

使用上面定义的二元字面函数 g:

(print-expression ((D g) 'x 'y))
(down (((partial 0) g) x y) (((partial 1) g) x y))

通常, 偏导数只是接受多个参数(或结构化参数或两者, 见下文)的函数导数的分量. 因此, 函数的偏导数是分量选择器与该函数导数的复合. 实际上: \[ \partial_0 g = I_0 \circ Dg \] \[ \partial_1 g = I_1 \circ Dg. \] 具体地, 如果 \[ g(x, y) = x^3 y^5 \] 那么 \[ Dg(x, y) = [3x^2 y^5, 5x^3 y^4] \] 改变参数 Δx 和 Δy 的增量的一阶近似是

\begin{align*} g(x + \Delta x, y + \Delta y) - g(x, y) &\approx [3x^2 y^5, 5x^3 y^4] \cdot (\Delta x, \Delta y) \\ &= 3x^2 y^5 \Delta x + 5x^3 y^4 \Delta y. \end{align*}

数学记法通常不区分多参数函数和参数元组的函数. 设 \(h((x, y)) = g(x, y)\). 函数 h, 接受参数 x 和 y 的元组, 与接受参数 x 和 y 的函数 g 不加区分. 我们使用两种方式来定义函数

多个参数. 两种函数的导数都与参数增量元组兼容收缩. Scheme 在这方面很方便:

(define (h s)
  (g (ref s 0) (ref s 1)))
(print-expression
 (h (up 'x 'y)))
(g x y)
(print-expression ((D g) 'x 'y))
(down (((partial 0) g) x y) (((partial 1) g) x y))
(print-expression ((D h) (up 'x 'y)))
(down (((partial 0) g) x y) (((partial 1) g) x y))

相空间状态函数是时间, 坐标和动量的函数. 设 H 是这样一个函数. H 的值是 \(H(t, (x, y), [p_x, p_y])\), 对应时间 t, 坐标 (x, y), 动量 \([p_x, p_y]\). 设 s 是相空间状态元组, 如 (7.6): \[ s = (t, (x, y), [p_x, p_y]). \] 参数元组 s 的 H 值是 H(s). 我们使用两种方式来写 H 的值.

我们经常展示接受包含元组的多个参数的函数用法, 方法是用分号指示参数元组的边界, 并用逗号分隔其分量. 如果 H 是具有参数 t, (x, y) 和 \([p_x, p_y]\) 的相空间状态函数, 我们可以写成 \(H(t; x, y; p_x, p_y)\). 这个记法丢失了上下标的区别, 但我们的分号和逗号记法方便且相当明确.

H 的导数是一个产生对象的函数, 该对象可以与参数结构的增量收缩以产生函数值的增量. 导数是三个偏导数的 down 元组. 第一个偏导数是关于数值参数的偏导数. 第二个偏导数是关于 up 元组参数每个分量的偏导数的 down 元组. 第三个偏导数是关于 down 元组参数每个分量的偏导数的 up 元组. \[ DH(s) = [\partial_0 H(s), \partial_1 H(s), \partial_2 H(s)] \]

= [\(\partial_0 H(s)\), [\(\partial_{1,0} H(s)\), \(\partial_{1,1} H(s)\)], (\(\partial_{2,0} H(s)\), \(\partial_{2,1} H(s)\))], 其中 \(\partial_{1,0}\) 表示函数第二个参数(索引 1)的第一个分量(索引 0)的偏导数, 依此类推. 实际上 \(\partial_z F = I_z \circ DF\), 对于任何函数 F 和访问链 z. 因此, 如果我们设 Δs 是一个增量相空间状态元组, \[ \Delta s = (\Delta t, (\Delta x, \Delta y), [\Delta p_x, \Delta p_y]), \] 那么

\begin{align*} DH(s) \Delta s &= \partial_0 H(s) \Delta t \\ &+ \partial_{1,0} H(s) \Delta x + \partial_{1,1} H(s) \Delta y \\ &+ \partial_{2,0} H(s) \Delta p_x + \partial_{2,1} H(s) \Delta p_y. \end{align*}

注意: 关于不同结构化参数的偏导数算子通常不可交换.

在 Scheme 中, 我们必须做出明确的选择. 我们通常假设相空间状态函数是元组的函数. 例如

(define H
  (literal-function 'H
    (-> (UP Real (UP Real Real) (DOWN Real Real)) Real)))
(print-expression
 (H s))
(H (up t (up x y) (down p_x p_y)))
(print-expression
 ((D H) s))
(down
 (((partial 0) H) (up t (up x y) (down p_x p_y)))
 (down (((partial 1 0) H) (up t (up x y) (down p_x p_y)))
       (((partial 1 1) H) (up t (up x y) (down p_x p_y))))
 (up (((partial 2 0) H) (up t (up x y) (down p_x p_y)))
     (((partial 2 1) H) (up t (up x y) (down p_x p_y)))))

8.0.6. 结构化结果

一些函数产生结构化输出. 输出是元组的函数等价于分量函数的元组, 每个函数产生输出元组的一个分量. 例如, 一个接受单个数值参数并产生结构化输出的函数可以用来描述一条曲线

通过空间. 以下函数描述了三维空间中绕 z 轴的螺旋路径: \[ h(t) = (\cos t, \sin t, t) = (\cos, \sin, I)(t). \] 导数恰好是每个分量函数导数的 up 元组: \[ Dh(t) = (-\sin t, \cos t, 1). \] 在 Scheme 中我们可以写

(define (helix t)
  (up (cos t) (sin t) t))

或者只是

(define helix (up cos sin identity))

它的导数恰好是每个分量函数导数的 up 元组:

(print-expression ((D helix) 't))
(up (* -1 (sin t)) (cos t) 1)

通常, 产生结构化输出的函数恰好被视为函数的结构, 每个分量对应一个. 接受结构化输入并产生结构化输出的函数的导数是一个对象, 当与增量输入结构收缩时, 产生增量输出的线性近似. 因此, 如果我们定义函数 g 为 \[ g(x, y) = ((x+y)^2, (y-x)^3, e^{x+y}), \] 那么 g 的导数是: \[ Dg(x, y) = \begin{pmatrix} \begin{pmatrix} 2(x+y) \\ -3(y-x)^2 \\ e^{x+y} \end{pmatrix}, \begin{pmatrix} 2(x+y) \\ 3(y-x)^2 \\ e^{x+y} \end{pmatrix} \end{pmatrix} \]

在 Scheme 中:

(define (g x y)
  (up (square (+ x y)) (cube (- y x)) (exp (+ x y))))
(print-expression ((D g) 'x 'y))
(down (up (+ (* 2 x) (* 2 y))
          (+ (* -3 (expt x 2)) (* 6 x y) (* -3 (expt y 2)))
          (* (exp y) (exp x)))
      (up (+ (* 2 x) (* 2 y))
          (+ (* 3 (expt x 2)) (* -6 x y) (* 3 (expt y 2)))
          (* (exp y) (exp x))))

8.0.7. 练习 7.1: 链式法则

设 \(F(x, y) = x^2 y^3\), \(G(x, y) = (F(x, y), y)\), \(H(x, y) = F(F(x, y), y)\), 使得 \(H = F \circ G\). a. 计算 \(\partial_0 F(x, y)\) 和 \(\partial_1 F(x, y)\). b. 计算 \(\partial_0 F(F(x, y), y)\) 和 \(\partial_1 F(F(x, y), y)\). c. 计算 \(\partial_0 G(x, y)\) 和 \(\partial_1 G(x, y)\). d. 计算 \(DF(a, b)\), \(DG(3, 5)\), 和 \(DH(3a^2, 5b^3)\).

8.0.8. 练习 7.2: 计算导数

我们可以将多参数函数表示为过程, 有几种方式, 这取决于我们希望如何使用它们. 最简单的想法是将过程参数与函数的参数等同起来. 例如, 我们可以将练习 7.1 中出现的函数实现如下:

(define (f x y)
  (* (square x) (cube y)))
(define (g x y)
  (up (f x y) y))
(define (h x y)
  (f (f x y) y))

通过这种选择, 将一个具有多个参数的函数(例如 f)与一个产生这些参数元组的函数(例如 g)复合起来很笨拙. 或者, 我们可以将函数参数表示为元组数据结构的槽, 然后与产生这种数据结构的函数复合就很容易了. 然而, 这种选择要求过程构建和拆解结构. 例如, 我们可以定义实现上述函数的过程如下:

(define (f v)
  (let ((x (ref v 0))
        (y (ref v 1)))
    (* (square x) (cube y))))
(define (g v)
  (let ((x (ref v 0))
        (y (ref v 1)))
    (up (f v) y)))
(define h (compose f g))

使用计算机重复练习 7.1. 探索多参数函数的两种实现方式.

9. 8 附录: Scheme

编程语言的设计不应通过堆砌特性, 而应通过消除使附加特性显得必要的弱点和限制. Scheme 证明了极少数表达式构成规则, 并且对其组合方式没有限制, 足以构成一个实用且高效的编程语言, 其灵活性足以支持当今使用的大多数主要编程范式.

Revised³ Report on the Algorithmic Language Scheme, (1986).

这里我们对 Scheme 进行一个基本的介绍. 1 更精确的语言解释请参见 IEEE 标准 [21]. 更长的介绍请参见教科书 [1].

Scheme 是一种基于表达式的简单编程语言. 表达式命名一个值. 例如, 数字 3.14 命名了一个我们熟悉的数的近似值. 存在原始表达式, 例如数字, 我们直接识别, 也存在几种复合表达式.

9.0.1. 过程调用

过程调用是一种复合表达式. 过程调用是由括号界定的一系列表达式. 过程调用中的第一个子表达式被视为命名一个过程, 其余子表达式被视为命名该过程的参数. 当过程应用于给定参数时产生的值是过程调用所命名的值. 例如,

9.0.2. Lambda 表达式

正如我们使用数字来命名数字一样, 我们可以使用 λ-表达式来命名过程. 4 例如, 对其输入求平方的过程可以写为:

(lambda (x) (* x x))

这个表达式可以读作: " 一个接受单个参数 x, 将 x 乘以 x 的过程. " 当然, 我们可以在任何需要过程的地方使用这个表达式. 例如,

((lambda (x) (* x x)) 4)
16

λ-表达式的一般形式是:

(lambda formal-parameters body)

9.0.3. 定义

我们可以使用 define 结构给任何对象命名. 例如, 如果我们进行定义

(define pi 3.141592653589793)
(define square (lambda (x) (* x x)))

那么我们可以在任何可以使用数字或 λ-表达式的地方使用符号 pi 和 square. 例如, 半径为 5 米的球体表面积是:

(* 4 pi (square 5))
314.1592653589793

过程定义可以用更方便的方式表达, 使用" 语法糖" . 平方过程可以定义为

(define (square x) (* x x))

我们可以读作: " 要对 x 求平方, 将 x 乘以 x. "

在 Scheme 中, 过程可以作为参数传递并作为值返回. 例如, 可以制作一个实现两个函数复合的数学概念的过程: 5

9.0.4. 条件句

条件表达式可用于在几个表达式中选择以产生一个值. 例如, 实现绝对值函数的过程可以写为:

(define (abs x)
  (cond ((< x 0) (- x))
        ((= x 0) x)
        ((> x 0) x)))

条件 cond 接受多个子句. 每个子句都有一个谓词表达式, 其值可以是真或假, 以及一个后续表达式. cond 表达式的值是第一个其对应谓词表达式为真的子句的后续表达式的值. 条件表达式的一般形式是

(cond ( predicate-1 consequent-1)
      ...
      ( predicate-n consequent-n))

为方便起见, 存在一个特殊的谓词表达式 else, 可以用作 cond 最后一个子句的谓词. 当只有二元选择时, if 结构提供了另一种构造条件的方式. 例如, 因为我们只需要在参数为负时做一些特殊处理, 我们可以将 abs 定义为:

(define (abs x)
  (if (< x 0)
      (- x)
      x))

if 表达式的一般形式是

(if predicate consequent alternative)

如果谓词为真, if 表达式的值是 consequent 的值, 否则是 alternative 的值.

9.0.5. 递归过程

给定条件句和定义, 我们可以编写递归过程. 例如, 要计算第 n 个阶乘数, 我们可以写:

(define (factorial n)
  (if (= n 0)
      1
      (* n (factorial (- n 1)))))
(factorial 6)
720
(factorial 40)
815915283247897734345611269596115894272000000000

9.0.6. 局部名称

let 表达式用于在局部上下文中给对象命名. 例如,

(define (f radius)
  (let ((area (* 4 pi (square radius)))
        (volume (* 4/3 pi (cube radius))))
    (/ volume area)))
(f 3)
1

let 表达式的一般形式是

(let (( variable-1 expression-1)
      ...
      ( variable-n expression-n))
  body)

let 表达式的值是在变量 variable-i 具有表达式 expression-i 值的上下文中的 body 表达式的值. 表达式 expression-i 可能不引用变量 variable-i.

let 表达式的一个轻微变体提供了一种方便的方式来表达循环结构. 我们可以编写一个实现计算阶乘的替代算法的过程, 如下所示:

(define (factorial n)
  (let clp ((count 1) (answer 1))
    (if (> count n)
        answer
        (clp (+ count 1) (* count answer)))))
(factorial 6)
720

这里, let 后面的符号(本例中是 clp)被局部定义为一个过程, 它以变量 count 和 answer 作为其形式参数. 它第一次被调用时使用表达式 1 和 1, 初始化循环. 每当之后调用名为 clp 的过程时, 这些变量会获得新值, 即操作数表达式 (+ count 1) 和 (* count answer) 的值.

9.0.7. 复合数据–列表和向量

数据可以粘合在一起形成复合数据结构. 列表是一种数据结构, 其中元素按顺序链接. Scheme 向量是一种数据结构, 其中元素打包在线性数组中. 新元素可以添加到列表中, 但访问列表需要与其长度成比例的计算时间. Scheme 向量可以在常数时间内访问, 但 Scheme 向量的长度是固定的. 本书中的所有数据结构都实现为列表和 Scheme 向量的组合. 复合数据对象由称为构造器的过程从分量构建, 分量通过选择器访问.

过程 list 是列表的构造器. 选择器 list-ref 获取列表的一个元素. Scheme 中的所有选择器都是从零开始的. 例如,

(define a-list (list 6 946 8 356 12 620))
a-list
(6 946 8 356 12 620)
(list-ref a-list 3)
356
(list-ref a-list 0)
6

列表由序对构建. 使用构造器 cons 制作序对. 序对两个分量的选择器是 car 和 cdr. 6 列表是序对链, 使得每个序对的 car 是列表元素, 每个序对的 cdr 是下一个序对, 除了最后一个 cdr, 它是一个可区分的值, 称为空列表, 写作 (). 因此,

(car a-list)
6
(cdr a-list)
(946 8 356 12 620)
(car (cdr a-list))
946
(define another-list
  (cons 32 (cdr a-list)))
another-list
(32 946 8 356 12 620)
(car (cdr another-list))
946

a-list 和 another-list 都共享相同的尾部(它们的 cdr).

9.0.8. 符号

符号是我们用来制作程序和代数表达式的一种非常重要的原始数据类型. 你可能已经注意到 Scheme 程序看起来就像列表. 它们就是列表. 构成程序的列表的一些元素是符号, 例如 + 和 vector. 如果我们要制作能够操作程序的程序, 我们需要能够写出一个命名这种符号的表达式. 这是通过引用机制完成的. 符号 + 的名称是表达式 ', 通常, 表达式的名称是表达式前面加一个单引号字符. 因此表达式 ( 3 a) 的名称是 '(+ 3 a). 我们可以用谓词 eq? 测试两个符号是否相同. 利用这个, 我们可以编写一个程序来确定一个表达式是否是一个和:

(define (sum? expression)
  (and (pair? expression)
       (eq? (car expression) '+)))
(sum? '(+ 3 a))
#t
(sum? '(* 3 a))
#f

考虑一下如果我们省略表达式 (sum? '(+ 3 a)) 中的引号会发生什么. 如果变量 a 的值为 4, 我们会问 7 是否是一个和. 但我们想知道的是表达式 (+ 3 a) 是否是一个和. 这就是为什么我们需要引号. contentcopy download Use code with caution. Org

10. 笔记

10.1. 文档中公式的数学表达

10.1.1. 拉格朗日量 (Lagrangian)

拉格朗日量通常表示为 \(L\), 它是一个系统的动能 (\(T\)) 和势能 (\(V\)) 之差: \[ L(t, q, \dot{q}) = T(t, q, \dot{q}) - V(t, q)\] 其中:

  • \(t\) 代表时间
  • \(q\) 代表广义坐标
  • \(\dot{q}\) 代表广义速度

10.1.2. 作用量 (action)

作用量通常表示为 \(S\), 它是拉格朗日量在一段时间内的积分: \[S[q](t_1, t_2) = \int_{t_1}^{t_2} L(t, q(t), \dot{q}(t)) dt\] 其中:

  1. \(q(t)\) 代表描述系统运动轨迹的广义坐标路径函数
  2. \(t_1\) 和 \(t_2\) 代表积分的起始时间和结束时间

10.1.3. 欧拉-拉格朗日方程 (Euler-Lagrange equations)

欧拉-拉格朗日方程是描述系统运动的微分方程, 它由以下公式给出: \[\frac{d}{dt} \frac{\partial L}{\partial \dot{q_i}} - \frac{\partial L}{\partial q_i} = 0\] 其中:

  1. \(i\) 代表广义坐标的索引

10.1.4. 哈密顿量 (Hamiltonian)

哈密顿量通常表示为 \(H\), 它是一个系统的能量函数. 它可以通过对拉格朗日量进行勒让德变换得到: \[H(t, q, p) = \sum_i p_i\dot{q_i} - L(t, q, \dot{q})\] 其中:

  1. \(p_i\) 代表广义动量, 它定义为 \(p_i = \frac{\partial L}{\partial \dot{q_i}}\)

10.1.5. 哈密顿方程 (Hamilton's equations)

哈密顿方程是描述系统在相空间中运动的微分方程, 它由以下公式给出: \[\dot{q_i} = \frac{\partial H}{\partial p_i}\] \[\dot{p_i} = -\frac{\partial H}{\partial q_i}\]

10.1.6. 勒让德变换 (Legendre transformation)

勒让德变换是一种数学变换, 它可以将一个函数的变量替换为其共轭变量. 在经典力学中, 它用于将拉格朗日量转换为哈密顿量. 对于一个函数 \(f(x)\), 其勒让德变换 \(g(s)\) 定义为: \[g(s) = sx - f(x)\] 其中:

  1. \(s = \frac{df}{dx}\)

10.1.7. 泊松括号 (Poisson bracket)

泊松括号是定义在相空间函数上的一个运算, 它由以下公式给出: \[\{F, G\} = \sum_i \left(\frac{\partial F}{\partial q_i} \frac{\partial G}{\partial p_i} - \frac{\partial F}{\partial p_i} \frac{\partial G}{\partial q_i} \right)\] 其中:

  1. \(F\) 和 \(G\) 是相空间函数

以下公式没有在您提供的文档中给出明确的数学表达, 但根据上下文和相关概念, 我们可以推断出其可能的数学表达:

10.1.8. 辛变换 (symplectic transformation)

辛变换是一种保持辛结构的相空间变换. 辛结构由辛 2-形式 \(\omega\) 定义. 一个变换 \(T\) 是辛变换, 如果它满足: \[T^*\omega = \omega\] 其中:

  1. \(T^*\) 代表 \(T\) 的拉回映射

10.1.9. 正则变换 (canonical transformation)

正则变换是一种保持哈密顿方程形式不变的相空间变换.

10.1.10. 哈密顿-雅可比方程 (Hamilton-Jacobi equation)

哈密顿-雅可比方程是一个偏微分方程, 它用于求解哈密顿系统.

10.1.11. 李变换 (Lie transform)

李变换是一种用于微扰理论的正则变换.

10.1.12. 李导数 (Lie derivative)

李导数是定义在向量场和张量场上的一个运算, 它用于描述向量场沿流线的变化.

10.1.13. 庞加莱映射 (Poincaré map)

庞加莱映射是一种用于研究周期性驱动系统或连续时间动力系统的离散时间映射.

10.1.14. 标准映射 (standard map)

标准映射是一个定义在相平面上的面积保持映射, 它是一个具有混沌行为的典型例子.

10.1.15. 庞加莱-伯克霍夫定理 (Poincaré-Birkhoff theorem)

庞加莱-伯克霍夫定理是一个关于环形面积保持映射的定理, 它断言在某些条件下, 映射存在至少两个不动点.

Footnotes:

1

这里的许多陈述仅在假设没有赋值的情况下有效.

(+ 1 2.14)
3.14
(+ 1 (* 2 1.07))
3.14

都是复合表达式, 它们命名与数字 3.14 相同的数. 2 在这些例子中, 符号 + 和 * 命名了分别执行加法和乘法的过程. 如果我们用命名相同事物的表达式替换任何表达式的任何子表达式, 则整个表达式所命名的东西保持不变. 通常, 过程调用写为

( operator operand-1 ... operand-n )

其中 operator 命名一个过程, operand-i 命名第 i 个参数. 3

2

在示例中, 我们使用斜体字表示 Scheme 系统在输入表达式后会打印的值.

3

在 Scheme 中, 每个括号都是必不可少的: 你不能添加额外的括号或删除任何括号.

4

逻辑学家 Alonzo Church [12] 发明了 λ 记法, 允许指定一个匿名函数的命名参数: λx[表达式 in x]. 这读作" 通过将参数代入指示的表达式中的 x 而得到的单参数函数. "

其中 formal-parameters 是将作为过程参数名称的符号列表, body 是可能引用形式参数的表达式. 过程调用的值是过程体的值, 其中参数替换了形式参数.

5

示例缩进是为了帮助可读性. Scheme 不关心额外的空白, 所以我们可以随心所欲地添加, 使内容更易读.

(define compose
  (lambda (f g)
    (lambda (x)
      (f (g x)))))
((compose square sin) 2)
.826821810431806
(square (sin 2))
.826821810431806

使用上面显示的语法糖, 我们可以更方便地写出定义. 以下两者都等价于上面的定义:

(define (compose f g)
  (lambda (x)
    (f (g x))))
(define ((compose f g) x)
  (f (g x)))
6

这些名称是历史的偶然. 它们代表 IBM 704 计算机的" 地址寄存器内容" 和" 减量寄存器内容" , 该计算机用于 1950 年代后期 Lisp 的首次实现.

存在一个谓词 pair?, 对序对为真, 对所有其他类型的数据为假. 向量比列表简单. 存在一个构造器 vector, 可以用来制作向量, 还有一个选择器 vector-ref, 用于访问向量的元素:

(define a-vector
  (vector 37 63 49 21 88 56))
a-vector
#(37 63 49 21 88 56)
(vector-ref a-vector 3)
21
(vector-ref a-vector 0)
37

注意, 向量在打印输出中通过在初始括号前出现的字符" #" 与列表区分开来. 存在一个谓词 vector?, 对向量为真, 对所有其他类型的数据为假. 列表和向量的元素可以是任何类型的数据, 包括数字, 过程, 列表和向量. Scheme 在线文档中可以找到许多其他用于操作列表结构数据和向量结构数据的过程.

7

像 x8102 这样的神秘符号是用于测试函数相等性的唯一实数字面量. 它们出现在残差中表明等式无效.

哈密顿运动方程是

\begin{align*} Dx &= p_x / m \\ Dp_x &= -kx, \end{align*}

给出二阶系统 \[ m D^2 x + kx = 0. \] 解是 \[ x(t) = A \sin(\omega t + \phi), \] 其中 \[ \omega = \sqrt{k/m} \] 且 A 和 φ 由初始条件确定. 让我们对谐振子尝试我们的极坐标-正则变换 \(C_\alpha\). 我们将表达式 (5.33) 和 (5.34) 代入 x 和 \(p_x\) 的哈密顿量中, 得到新的哈密顿量: \[ H'(t, \theta, I) = \frac{\alpha I}{m} (\cos\theta)^2 + \frac{k I}{\alpha} (\sin\theta)^2. \] 如果我们选择 \(\alpha = \sqrt{km}\), 则我们得到 \[ H'(t, \theta, I) = \sqrt{\frac{k}{m}} I = \omega I, \] 并且新的哈密顿量不再依赖于坐标. I 的哈密顿方程是 \[ DI(t) = -\partial_1 H'(t, \theta(t), I(t)) = 0, \] 所以 I 是常数. θ 的方程是 \[ D\theta(t) = \partial_2 H'(t, \theta(t), I(t)) = \omega. \] 所以 \[ \theta(t) = \omega t + \phi. \]

在原始变量中 \[ x(t) = \sqrt{\frac{2I(t)}{\alpha}} \sin\theta(t) = A \sin(\omega t + \phi), \] 常数 \(A = \sqrt{2I(t)/\alpha}\). 所以我们通过进行一个正则变换到新的相空间变量, 使得解是平凡的, 然后将解变换回原始变量, 从而找到了问题的解.

8

线性变换的导数是常数函数, 与参数无关.

9

过程 s->m 接受三个参数: (s->m s* A s). s* 和 s 指定了在左右乘以 A 以给出数值的对象形状; 它们指定了基.

(print-expression
 ((symplectic? (F->CT p->r))
  (up 't
      (up 'r 'varphi)
      (down 'p_r 'p_varphi))))
(matrix-by-rows (list 0 0 0 0 0)
                (list 0 0 0 0 0)
                (list 0 0 0 0 0)
                (list 0 0 0 0 0)
                (list 0 0 0 0 0))

存在进一步的简化. \( \mathcal{J} \) 矩阵表示的第一行和第一列元素都为零. 因此, 单位矩阵的第一列和第一行总是满足条件的. 所以我们只需要考虑与坐标和动量相关的子矩阵. 矩阵 J 的 2n × 2n 维 qp 子矩阵10 称为 n 自由度的辛单位: \[ J_n = \begin{pmatrix} 0_{n \times n} & 1_{n \times n} \\ -1_{n \times n} & 0_{n \times n} \end{pmatrix}. \] 矩阵 \(J_n\) 满足以下恒等式: \[ J_n^T = J_n^{-1} = -J_n. \] 一个满足关系 \[ J_n = A J_n A^T \] 的 2n × 2n 矩阵 A 称为辛矩阵. 这里是测试变换是否是辛的另一种方法:

(define ((symplectic-transform? C) s)
  (symplectic-matrix?
   (qp-submatrix
    (s->m (compatible-shape s)
          ((D C) s)
          s))))
(define (symplectic-matrix? M)
  (let ((2n (m:dimension M)))
    (let ((J (symplectic-unit (quotient 2n 2))))
      (- J (* M J (m:transpose M))))))

过程 symplectic-transform? 仅当被测试的变换通过辛矩阵测试时才返回零矩阵. 适当大小的辛单位矩阵由过程 symplectic-unit 产生. 点变换是辛的. 例如,

(print-expression
 ((symplectic-transform? (F->CT p->r))
  (up 't
      (up 'r 'theta)
      (down 'p_r 'p_theta))))
(matrix-by-rows (list 0 0 0 0)
                (list 0 0 0 0)
                (list 0 0 0 0)
                (list 0 0 0 0))
10

2n+1 维方阵的 qp 子矩阵是通过删除给定矩阵的第一行和第一列得到的 2n 维矩阵. 这可以通过以下方式计算:

(define (qp-submatrix m)
  (m:submatrix m 1 (m:num-rows m) 1 (m:num-cols m)))

如果变换是含时的, 那么结果表明 \(H \circ C\) 并不能构成一个合适的 H'. 相反, 我们假设 \[ H' = H \circ C + K, \] 并寻找保证变换是正则的 K 和 C 的条件. 方程 (5.25), 即变换是正则的条件, 变为

\begin{align*} (\mathcal{J} + \mathcal{T}) \circ (DH) \circ C &= DC \cdot (\mathcal{J} \circ ((DH \circ C) \cdot DC + DK)) \\ &+ DC \cdot (\mathcal{T} \circ ((D(H \circ C)) + DK)). \end{align*}

如果满足以下两个条件, 则此条件成立: \[ \mathcal{J} \circ (DH) \circ C = DC \cdot (\mathcal{J} \circ ((DH \circ C) \cdot (DC))) \] 和

\begin{align*} \mathcal{T} \circ (DH) \circ C &= DC \cdot ((\mathcal{J} + \mathcal{T}) \circ (DK)) \\ &= DC \cdot (\mathcal{J} \circ (DK)) + \partial_0 C \end{align*}

条件 (5.52) 是 C 是辛变换的条件. 条件 (5.53) 是 K 的一个辅助条件. 这个条件实际上不依赖于哈密顿量 H, 因为 \(\mathcal{T}\) 的常数值不依赖于参数. 时间分量总是满足的; 只有坐标和动量分量约束了 K. 在特定状态 s(具有兼容形状 s*)下评估, 对 K 的条件是 \[ \mathcal{T}(s^*) = DC(s) \cdot (\mathcal{J}(DK(s)) + \partial_0 C(s), \] 明确显示哈密顿量 H 没有进入.

因此我们可以得出结论, 如果一个含时变换的位置-动量部分是辛的, 并且如果我们通过添加一个适当的部分来形成新的哈密顿量, 那么这个变换是正则的. 注意我们还没有证明位置-动量部分必须是辛的. 相反, 我们已经证明了如果这部分是辛的, 那么哈密顿量必须以适当的方式修改. 作为一个程序, 对 K 的测试是

(define ((canonical-K? C K) s)
  (let ((s* (compatible-shape s)))
    (- (T-func s*)
       (+ (* ((D C) s) (J-func ((D K) s)))
          (((partial 0) C) s)))))
11

ω 形式也可以写成自由度上的和: \[ \omega(\zeta_1, \zeta_2) = \sum_i ( P_i(\zeta_2) Q^i(\zeta_1) - P_i(\zeta_1) Q^i(\zeta_2) ). \] 注意每个 i 的贡献不混合来自不同自由度的分量.

方程 (5.76) 的左侧是

\begin{align*} (\{f, g\} \circ C)(s') &= \omega((\tilde{\mathcal{J}} \circ Df \circ C)(s'), (\tilde{\mathcal{J}} \circ Dg \circ C)(s')) \\ &= \omega(DC(s') \cdot (\tilde{\mathcal{J}} \circ (D(f \circ C)(s'))), \\ & \quad DC(s') \cdot (\tilde{\mathcal{J}} \circ (D(g \circ C)(s')))), \end{align*}

其中我们使用了有用的关系 (5.74). 方程 (5.76) 的右侧是 \[ \{f \circ C, g \circ C\}(s') = \omega((\tilde{\mathcal{J}} \circ D(f \circ C))(s'), (\tilde{\mathcal{J}} \circ D(g \circ C))(s')). \] 现在左侧必须等于右侧对于任何 f 和 g, 所以方程对于任意形如 \[ \zeta'_1 = (\tilde{\mathcal{J}} \circ D(f \circ C))(s') \] \[ \zeta'_2 = (\tilde{\mathcal{J}} \circ D(g \circ C))(s'). \] 的 \(\zeta'_i\) 也必须成立. \( \zeta'_i \) 是任意没有时间分量的增量状态. 所以我们证明了 \[ \omega(\zeta'_1, \zeta'_2) = \omega(DC(s') \cdot \zeta'_1, DC(s') \cdot \zeta'_2). \] 对于正则 C 和没有时间分量的增量状态 \( \zeta'_i \). 使用方程 (5.72), 我们有 \[ \omega(\zeta'_1, \zeta'_2) = \omega(\zeta_1, \zeta_2). \] 因此双线性反对称函数 ω 在正则变换下是不变的. 作为一个程序, ω 是:

(define (omega zeta1 zeta2)
  (- (* (momentum zeta2) (coordinate zeta1))
     (* (momentum zeta1) (coordinate zeta2))))

我们可以通过计算残差来检查它在极坐标到直角坐标正则变换下的不变性. 我们使用任意状态

(define a-polar-state
  (up 't
      (up 'r 'varphi)
      (down 'p_r 'p_varphi)))

和典型的状态增量

(define zeta1
  (up 0
      (typical-object (coordinate a-polar-state))
      (typical-object (momentum a-polar-state))))
(define zeta2
  (up 0
      (typical-object (coordinate a-polar-state))
      (typical-object (momentum a-polar-state))))

注意 zeta1 和 zeta2 的时间分量为零. 我们计算残差:

(print-expression
 (let ((DCs ((D (F->CT p->r)) a-polar-state)))
   (- (omega zeta1 zeta2)
      (omega (* DCs zeta1) (* DCs zeta2)))))
0

残差为零, 所以 ω 在这个正则变换下是不变的.

12

我们用约束的全时间导数增广拉格朗日量, 以便勒让德变换有明确定义.

\[ P_\lambda(\tau; q_e, q_t, \lambda; v_e, v_t, v_\lambda) = \partial_{2,2} L'_e(\tau; q_e, q_t, \lambda; v_e, v_t, v_\lambda) = v_t - Df(\tau). \] 因此, 扩展动量在对应状态下与原始动量具有相同的值. 与时间坐标共轭的动量是能量的负值加上 \(v_\lambda\). 与 λ 共轭的动量是约束, 必须为零. 接下来我们进行到相应哈密顿表述的变换. 首先, 注意拉格朗日量 \(L_e\) 是速度的一阶齐次形式. 因此, 根据欧拉定理, \[ \partial_2 L_e(\tau; q_e, q_t; v_e, v_t) \cdot (v_e, v_t) = L_e(\tau; q_e, q_t; v_e, v_t), \] 因此 \(L_e\) 的勒让德变换恒等于零. 对于 \(L'_e\), 存在附加项

\begin{align*} \partial_2 L'_e(\tau; \dots) \cdot (v_e, v_t, v_\lambda) &= \partial_2 L_e(\tau; \dots) \cdot (v_e, v_t) + v_\lambda v_t + (v_t - Df(\tau)) v_\lambda \\ &= L_e(\tau; q_e, q_t; v_e, v_t) + v_\lambda v_t + (v_t - Df(\tau)) v_\lambda. \end{align*}

所以对应于 \(L'_e\) 的哈密顿量 \(H'_e\) 是

\begin{align*} H'_e(\tau; q_e, q_t, \lambda; p_e, p_t, p_\lambda) &= v_\lambda v_t \\ &= (p_t + H(q_t, q_e, p_e)) (p_\lambda + Df(\tau)). \end{align*}

我们利用了对应状态下动量具有相同值的事实, 因此在路径上 \(p_e = p \circ t\), 并且 \[ E(q_t, q_e, v_e/v_t) = H(q_t, q_e, p_e). \] 哈密顿量 \(H'_e\) 不依赖于 λ, 因此我们推断 \(p_\lambda\) 是常数. 实际上 \(p_\lambda\) 必须给定值为零, 因为它是约束. 当存在循环坐标时, 我们可以通过将守恒动量共轭的常数值代入哈密顿量来形成剩余自由度的约化哈密顿量.

约化哈密顿量是 \[ H_e(\tau; q_e, q_t; p_e, p_t) = (p_t + H(q_t, q_e, p_e)) Df(\tau). \] 这个扩展哈密顿量控制扩展系统的演化, 对于任意 f. 13 哈密顿方程简化为

\begin{align*} Dq_e(\tau) &= \partial_2 H(t(\tau), q_e(\tau), p_e(\tau)) Df(\tau) \\ Dt(\tau) &= Df(\tau) \\ Dp_e(\tau) &= -\partial_1 H(t(\tau), q_e(\tau), p_e(\tau)) Df(\tau) \\ Dp_t(\tau) &= -\partial_0 H(t(\tau), q_e(\tau), p_e(\tau)) Df(\tau). \end{align*}

第二个方程给出了 t 和 τ 之间的必要关系. 第一个和第三个方程等价于原始坐标中的哈密顿方程. 我们可以如下看到这一点. 使用 \(q_e = q \circ t\), 它们可以重写为

\begin{align*} Dq(t(\tau)) Dt(\tau) &= \partial_2 H(t(\tau), q(t(\tau)), p(t(\tau))) Df(\tau) \\ Dp(t(\tau)) Dt(\tau) &= -\partial_1 H(t(\tau), q(t(\tau)), p(t(\tau))) Df(\tau). \end{align*}

使用 \(Dt(\tau) = Df(\tau)\), 并将这些因子约掉, 我们恢复了哈密顿方程. 14 现在考虑时间与自变量相同的特殊情况: \(f(\tau) = \tau\), \(Df(\tau) = 1\). 在这种情况下 \(q = q_e\) 且 \(p = p_e\). 扩展哈密顿量变为 \[ H'_e(\tau; q_e, t; p_e, p_t) = p_t + H(t, q_e, p_e). \] t 的哈密顿方程变为 \(Dt(\tau) = 1\), 重申了约束. \(Dq_e\) 和 \(Dp_e\) 的哈密顿方程直接就是哈密顿方程

\begin{align*} Dq(\tau) &= \partial_2 H(\tau, q(\tau), p(\tau)) \\ Dp(\tau) &= -\partial_1 H(\tau, q(\tau), p(\tau)). \end{align*}
13

一旦我们进行了这个约化, 将 \(p_\lambda\) 设为零, 我们就不能再进行勒让德变换回到扩展的拉格朗日系统; 我们无法解出 \(p_t\) 关于 \(v_t\) 的表达式. 然而, 在扩展系统中从 \(H'_e\) 到 \(L'_e\) 的勒让德变换, 以及相关的状态变量, 是有明确定义的.

14

如果 f 严格递增, 则 Df 永不为零.

扩展哈密顿量 (5.103) 不依赖于自变量, 因此它是一个守恒量. 因此, 加性常数 \(p_t\) 是能量的负值. \(Dp_t\) 的哈密顿方程将能量的变化与 \(\partial_0 H\) 联系起来. 注意, 在更一般的情况下, 与时间共轭的动量不是能量的负值. 选择 \(t(\tau) = \tau\) 对于许多应用很有用.

注意扩展变换是正则的, 因为两组运动方程描述了等价的动力学. 然而, 该变换不是辛的; 实际上它甚至没有相同数量的输入和输出变量.

15

实际上, 传统的雅可比常数是 \(C = -2H'\).

我们认识到扩展相空间中的新哈密顿量, 它与扩展相空间中的原始哈密顿量具有相同的值, 恰好是雅可比常数加上 \(p'_t\). 现在, 新的哈密顿量不依赖于 t', 所以 \(p'_t\) 是运动常数. 实际上它的值与其余的动力学演化无关, 所以如果我们愿意, 我们可以将 \(p'_t\) 的值设为零. 因此, 我们发现扩展相空间中的哈密顿量, 它是守恒的, 恰好是雅可比常数加上一个任意的加性常数. 我们有两条通往雅可比常数的途径: (1) 将原始系统变换到一个旋转坐标系以消除时间依赖性, 但在此过程中向哈密顿量添加了额外的项, 以及 (2) 进入扩展相空间并立即得到一个积分, 并且通过进入一个旋转参考系认识到这个哈密顿量与雅可比常数相同. 因此有时扩展相空间中的哈密顿量是一个有用的积分.

16

我们也可以选择用 φ 重新参数化, 但那样 \(p_r\) 和 r 都会出现在由此产生的与时间无关的哈密顿量中. 我们选择的路径利用了 φ 没有出现在我们的哈密顿量中, 所以 \(p_\phi\) 是运动常数. 这种结构表明, 要解决这类问题, 我们需要像下棋一样向前看.

为了看到这个过程的效用, 我们继续我们的例子, 使用一个确定的势能–一个引力质量点: \[ V(r) = -\frac{\mu}{r}. \] 当我们将其代入方程 (5.140) 时, 我们得到一团糟, 可以简化为 \[ \phi(r) = L \int^r \frac{dr}{r \sqrt{2mEr^2 + 2m\mu r - L^2}} + \phi_0. \] 积分这个, 我们得到进一步的混乱, 可以简化并重新排列得到以下结果: \[ \frac{1}{r} = \frac{m\mu}{L^2} \left( 1 - \sqrt{1 + \frac{2EL^2}{m\mu^2}} \sin(\phi(r) - \phi_0) \right). \] 这可以被识别为具有偏心率 e 和参数 p 的圆锥截面的极坐标形式 \[ \frac{1}{r} = \frac{1 + e \cos\theta}{p} \] 其中 \[ e = \sqrt{1 + \frac{2EL^2}{m\mu^2}}, \quad p = \frac{L^2}{m\mu} \quad \text{and} \quad \theta = \phi_0 - \phi(r) - \frac{\pi}{2}. \] 事实上, 如果轨道是一个半长轴为 a 的椭圆, 我们有 \[ p = a(1 - e^2) \] 所以我们可以识别能量和角动量在塑造椭圆中的作用: \[ E = -\frac{\mu}{2a} \quad \text{and} \quad L = \sqrt{m\mu a (1 - e^2)}. \] 我们从约化相空间的分析中得到的是轨迹的几何形状, 但我们失去了时域行为. 这种约化通常是值得的.

虽然到目前为止我们一直以特殊方式处理时间, 但我们发现时间并不特殊. 它可以包含在

坐标中使驱动系统自治. 并且它可以从任何自治系统中消除, 以支持任何其他坐标. 这导致了许多简化问题的策略, 通过消除时间变化, 然后在由此产生的保守自治系统上执行正则变换, 以得到一个我们可以然后丢回时间角色的好坐标.

17

这里我们使用索引来选择结构化对象的特定分量. 如果一个索引符号在一个表达式中同时作为上标和下标出现, 则该表达式的值是该索引符号所有可能值的指定分量之和(爱因斯坦求和约定). 因此, 例如, 如果 \(\dot{q}\) 和 p 的维数是 n, 则指示的乘积 \(p_i \dot{q}^i\) 被解释为 \(\sum_{i=0}^{n-1} p_i \dot{q}^i\).

18

如果结构的矩阵表示的行列式非零, 则该结构是非奇异的.

另一个哈密顿方程, \[ Dp_y(t) = -\partial_1 H'(t, y(t), p_y(t)), \] 可以用类似的方式推导出来. 所以生成函数关系确实指定了一个正则变换.

我们所展示的是变换是正则的, 这意味着运动方程适当地变换; 我们还没有证明变换的 qp 部分是辛的. 如果变换是时间无关的, 那么哈密顿量通过复合变换, 在这种情况下我们知道正则蕴含辛.

19

点变换不属于此类: 我们无法从点变换的位置解出动量, 因为对于点变换, 未加'坐标和加'坐标可以相互推导, 因此坐标中没有足够的信息来推导动量.

20

设 F 由路径无关的线积分定义 \[ F(x) = \int_x^{x_0} \sum_i f_i(x) dx^i + F(x_0) \] 则 \[ \partial_i F(x) = f_i(x). \] F 的偏导数不依赖于常数点 \(x_0\) 或从 \(x_0\) 到 x 的路径, 所以我们可以选择一条方便评估偏导数的路径. 设 \[ H(x)(\Delta x^i) = F(x^0, \dots, x^i + \Delta x^i, \dots, x^{n-1}) - F(x^0, \dots, x^i, \dots, x^{n-1}). \] F 关于 F 第 i 个分量的偏导数是 \[ \partial_i F(x) = D(H(x))(0). \] 函数 H 由线积分定义

\begin{align*} H(x)(\Delta x^i) &= \int_{x^0, \dots, x^i + \Delta x^i, \dots, x^{n-1}}_{x^0, \dots, x^i, \dots, x^{n-1}} \sum_j f_j(x) dx^j \\ &= \int_{x^0, \dots, x^i + \Delta x^i, \dots, x^{n-1}}_{x^0, \dots, x^i, \dots, x^{n-1}} f_i(x) dx^i, \end{align*}

其中第二行成立, 因为线积分是沿坐标方向 \(x^i\) 的. 这现在是一个普通积分, 所以 \[ \partial_i F(x) = f_i(x). \]

21

可能存在一些奇异情况和拓扑问题, 阻止这种情况严格成立.

22

各种生成函数传统上以名称 F₁, F₂, F₃ 和 F₄ 著称. 请不要怪我们.

\begin{align*} q &= -\partial_1 F_4(t, p, p') \\ q' &= \partial_2 F_4(t, p, p') \\ H'(t, q', p') - H(t, q, p) &= \partial_0 F_4(t, p, p') \end{align*}

在每种情况下, 如果生成函数不显式依赖于时间, 那么哈密顿量纯粹通过与适当的正则变换复合从彼此获得. 如果生成函数依赖于时间, 则存在附加项.

所呈现的生成函数集体处理坐标和动量. 可以定义更复杂的生成函数, 其中每个自由度的变换由不同类型的生成函数指定.

23

许多教科书通过引入一个未经证实的独立性论证进一步混淆了问题: 他们论证因为 \(\dot{q}\) 和 \(\dot{q}'\) 是独立的, 所以关系式 (5.148–5.150) 必须成立. 这是愚蠢的, 因为 p 和 p' 分别是 \(\dot{q}\) 和 \(\dot{q}'\) 的函数, 所以速度存在隐含的依赖关系, 因此不加证明地将这个方程的各个部分分别设为零是不合理的. 然而, 尽管存在这个问题, 变换是正则的这一事实的推导是有缺陷的.

或者, 等价地, \[ (t + \Delta, \bar{q}(t + \Delta), \bar{p}(t + \Delta)) = C_\Delta(t, \bar{q}(t), \bar{p}(t)). \] 注意 \(C_\Delta\) 改变了时间分量. 这是我们考虑过的第一个这种类型的变换. 24

给定一个状态 \((t', q', p')\), 我们找到从该状态作为初始条件出发的相空间路径 σ, 满足 \[ q' = \bar{q}(t') \] \[ p' = \bar{p}(t'). \] \(C_\Delta(t', q', p')\) 的值 \((t, q, p)\) 则是 \((t'+\Delta, \bar{q}(t'+\Delta), \bar{p}(t'+\Delta))\). 如果变换 \(C_\Delta\) 是辛的并且哈密顿量适当地变换, 则时间演化是正则的. 变换 \(C_\Delta\) 是辛的, 如果双线性反对称形式 ω 对于具有零时间分量的一对一般线性化状态变分是不变的(见方程 5.73).

设 \(\zeta'\) 是状态 \((t', q', p')\) 的一个零时间分量增量. \(C_\Delta(t', q', p')\) 值的线性化增量是 \( \zeta = DC_\Delta(t', q', p') \zeta' \). 增量的像是通过将增量乘以变换的导数得到的. 另一方面, 变换是由时间演化得到的, 所以增量的像也可以通过线性化变分系统的时间演化找到. 设 \[ \bar{\zeta}(t) = (0, \bar{\zeta}_q(t), \bar{\zeta}_p(t)) \] \[ \bar{\zeta}'(t) = (0, \bar{\zeta}'_q(t), \bar{\zeta}'_p(t)) \] 是状态路径 \(\sigma(t) = (t, \bar{q}(t), \bar{p}(t))\) 的变分, 则 \[ \bar{\zeta}(t + \Delta) = DC_\Delta(t, q(t), p(t)) \bar{\zeta}(t) \] \[ \bar{\zeta}'(t + \Delta) = DC_\Delta(t, q(t), p(t)) \bar{\zeta}'(t). \] 辛要求是 \[ \omega(\bar{\zeta}(t), \bar{\zeta}'(t)) = \omega(\bar{\zeta}(t + \Delta), \bar{\zeta}'(t + \Delta)). \]

24

我们关于哪些变换是正则的定理仍然有效, 因为它们只要求自变量的导数为 1.

这对于任意 Δ 必须成立, 因此如果以下量是常数, 则满足:

\begin{align*} A(t) &= \omega(\bar{\zeta}(t), \bar{\zeta}'(t)) \\ &= P(\bar{\zeta}'(t)) Q(\bar{\zeta}(t)) - P(\bar{\zeta}(t)) Q(\bar{\zeta}'(t)) \\ &= \bar{\zeta}'_p(t) \bar{\zeta}_q(t) - \bar{\zeta}_p(t) \bar{\zeta}'_q(t). \end{align*}

我们计算导数: \[ DA(t) = D\bar{\zeta}'_p(t) \bar{\zeta}_q(t) + \bar{\zeta}'_p(t) D\bar{\zeta}_q(t) - D\bar{\zeta}_p(t) \bar{\zeta}'_q(t) - \bar{\zeta}_p(t) D\bar{\zeta}'_q(t). \] 使用哈密顿方程, 变分满足

\begin{align*} D\bar{\zeta}_q(t) &= \partial_1 \partial_2 H(t, \bar{q}(t), \bar{p}(t)) \bar{\zeta}_q(t) \\ &+ \partial_2 \partial_2 H(t, \bar{q}(t), \bar{p}(t)) \bar{\zeta}_p(t), \\ D\bar{\zeta}_p(t) &= -\partial_1 \partial_1 H(t, \bar{q}(t), \bar{p}(t)) \bar{\zeta}_q(t) \\ &- \partial_2 \partial_1 H(t, \bar{q}(t), \bar{p}(t)) \bar{\zeta}_p(t). \end{align*}

将这些代入 DA 并收集项, 我们发现25 \[ DA(t) = 0. \] 我们得出结论, 时间演化生成一个具有辛导数的相空间变换.

要进行正则变换, 我们必须指定哈密顿量如何变换. 相同的哈密顿量描述了一个状态和时间推进状态的演化, 因为后者只是另一个状态. 因此变换后的哈密顿量与原始哈密顿量相同.

25

结构化参数的偏导数通常不可交换, 所以这个推导并不像看起来那么简单. 引入分量索引并按分量考虑方程是有帮助的.

我们已经证明了相空间体积对于辛变换是守恒的. 现在我们已经证明了由时间演化生成的变换是辛变换. 因此, 由时间演化生成的变换保持相空间体积. 这是刘维尔定理的另一种证明.

26

变换 \(S_\Delta\) 在 qp 分量上是恒等变换, 所以是辛的. 尽管它调整了时间, 但它不是时间相关的变换, 因为 qp 分量不依赖于时间. 因此, 如果我们用 \(S_\Delta\) 复合调整哈密顿量, 我们得到一个正则变换.

由此产生的时间演化变换是正则的, 并且形式通常: \[ (t, q, p) = C'_\Delta(t, q', p'). \] 这个变换也可以扩展为正则变换, 并适当调整哈密顿量. 哈密顿量 \(H'_\Delta\) 在变换后的相空间点给出正确的哈密顿方程, 是原始哈密顿量与一个将自变量减去 Δ 的函数复合: \[ H'_\Delta(t, q, p) = H(t - \Delta, q, p), \] 或者 \[ H'_\Delta = H \circ S_\Delta. \] 注意, 如果 H 是时间无关的, 则 \(H'_\Delta = H\).

假设我们有一个过程 `((C delta-t) state)` 实现状态 state 以时间间隔 delta-t 进行时间演化变换. 我们可以得到一个实现 \(C'_\Delta\) 的过程 `((Cp delta-t) state)`, 从实现 \(C_\Delta\) 的 `((C delta-t) state)`, 使用过程

(define ((C->Cp C) delta-t)
  (compose (C delta-t) (shift-t (- delta-t))))

其中 shift-t 实现 \(S_\Delta\):

(define ((shift-t delta-t) state)
  (up
   (+ (time state) delta-t)
   (coordinate state)
   (momentum state)))

要完成正则变换, 我们需要一个变换哈密顿量的过程

(define ((H->Hp delta-t) H)
  (compose H (shift-t (- delta-t))))

因此 C 和 C' 都可以用来进行正则变换, 方法是指定旧哈密顿量和新哈密顿量如何关联. 对于

\(C_\Delta\), 哈密顿量不变. 对于 \(C'_\Delta\), 哈密顿量是时移的.

27

根据斯托克斯定理, 我们可以通过区域边界的线积分来计算区域的面积. 我们将面积的正方向定义为当在平面上绘制时, 坐标在横坐标上, 动量在纵坐标上时, 逆时针遍历的曲线所包围的面积.

28

我们可以这样看. 设 γ 是边界上的任意闭合曲线. 这条曲线将边界分成两个区域. 根据斯托克斯定理, 这两个部分上的积分不变量都可以写成沿该边界的线积分, 但它们的符号相反, 因为 γ 以相反的方向遍历以保持表面在左侧. 所以我们得出结论, 整个表面上的积分不变量为零.

其中 n 索引表示 tT 正则平面. 第二项是负的, 因为在扩展相空间中, 如果法线指向表面外部, 我们取面积为正. 我们将证明由时间演化生成的相空间区域的庞加莱-嘉当积分不变量为零: \[ \sum_{i=0}^n A''_i = 0. \] 这将使我们得出结论 \[ \sum_{i=0}^n A_i - \sum_{i=0}^n A'_i = 0. \] R 和 R' 在 tT 平面上的投影面积为零, 因为 R 和 R' 处于恒定时间, 所以对于这些区域, 庞加莱-嘉当积分不变量与庞加莱积分不变量相同. 因此 \[ \sum_{i=0}^{n-1} A_i = \sum_{i=0}^{n-1} A'_i. \] 我们剩下要证明的是区域 R'' 的庞加莱-嘉当积分不变量为零. 如果 R'' 的任何小块的贡献都为零, 则这将为零. 我们将通过证明该区域中小平行四边形的 ω 形式为零来证明这一点. 设 \((0; q, t; p, T)\) 是该平行四边形的一个顶点. 该平行四边形由从该顶点出发的两个边 \(\zeta_1\) 和 \(\zeta_2\) 指定, 分量为 \((0; \Delta q, \Delta t; \Delta p, \Delta T)\). 对于平行四边形的边 \(\zeta_1\), 我们取一个恒定时间相空间增量, 长度为 Δq 和 Δp, 分别在 q 和 p 方向. 对应于这些变化, 哈密顿量的阶变为 \[ \Delta H = \partial_1 H(t, q, p) \Delta q + \partial_2 H(t, q, p) \Delta p \] 对于恒定时间 Δt = 0. 增量 ΔT 是 ΔH 的负值. 所以扩展相空间增量是 \[ \zeta_1 = (0; \Delta q, 0; \Delta p, -\partial_1 H(t, q, p) \Delta q - \partial_2 H(t, q, p) \Delta p). \]

边 \(\zeta_2\) 是通过顶点在时间间隔 Δt 内的时间演化得到的. 使用哈密顿方程, 我们得到

\begin{align*} \zeta_2 &= (0; Dq(t)\Delta t, \Delta t; Dp(t)\Delta t, DT(t)\Delta t) \\ &= (0; \partial_2 H(t, q, p)\Delta t, \Delta t; -\partial_1 H(t, q, p)\Delta t, -\partial_0 H(t, q, p)\Delta t). \end{align*}

应用于构成该平行四边形边的这些增量状态的 ω 形式给出了平行四边形的面积:

\begin{align*} \omega(\zeta_1, \zeta_2) &= Q(\zeta_1) P(\zeta_2) - P(\zeta_1) Q(\zeta_2) \\ &= (\Delta q, 0) \cdot (-\partial_1 H(t, q, p)\Delta t, -\partial_0 H(t, q, p)\Delta t) \\ &- (\Delta p, -\partial_1 H(t, q, p)\Delta q - \partial_2 H(t, q, p)\Delta p) \cdot (\partial_2 H(t, q, p)\Delta t, \Delta t) \\ &= 0. \end{align*}

所以我们可以得出结论, 这个表达式在整个轨迹管表面的积分也为零. 因此, 任何由时间演化生成的区域的庞加莱-嘉当积分不变量为零.

证明了轨迹管没有贡献, 我们已经证明了两个端盖的庞加莱积分不变量是相同的. 这证明了时间演化生成一个辛 qp 变换.

29

设 f 是一个路径依赖函数, \(\tilde{\eta}(s) = D\tilde{q}(s)\), \(g(s) = f[\tilde{q}(s)]\). f 在 \(\tilde{q}(s)\) 处沿方向 \(\tilde{\eta}(s)\) 的变分是 \(\delta_{\tilde{\eta}(s)} f[\tilde{q}(s)] = Dg(s)\).

F₂ 相应的则在时间上是线性的. 注意一个隐含的要求是能量可以仅写成新动量的函数. 这排除了变换后的相空间坐标 q' 和 p' 仅仅是 q 和 p 的初始条件的可能性.

30

回想一下, ∂₁,₀ 表示对第一个坐标位置的导数.

这是一个关于 W 三个偏导数的偏微分方程. 我们盯了它一会儿, 然后放弃了. 接下来我们尝试转换到球坐标. 这样做是出于势能仅依赖于 r 的事实的动机. 球坐标 \((r, \theta, \phi)\) 中的哈密顿量, 其中 θ 是余纬度, φ 是经度, 是 \[ H_s(t; r, \theta, \phi; p_r, p_\theta, p_\phi) = \frac{1}{2m} \left( p_r^2 + \frac{p_\theta^2}{r^2} + \frac{p_\phi^2}{r^2 \sin^2\theta} \right) - \frac{\mu}{r}. \] 哈密顿-雅可比方程是

\begin{multline*} E(p'_1, p'_2, p'_3) = \frac{1}{2m} \left[ (\partial_{1,0} W(t; \dots))^2 + \frac{1}{r^2} (\partial_{1,1} W(t; \dots))^2 \right. \\ \left. + \frac{1}{r^2 \sin^2\theta} (\partial_{1,2} W(t; \dots))^2 \right] - \frac{\mu}{r}. \end{multline*}

我们可以通过逐步分离变量的依赖关系来求解哈密顿-雅可比方程. 首先看 φ 的依赖关系, 我们看到, 在 W 之外, φ 只出现在一个偏导数中. 如果我们写 \[ W(t; r, \theta, \phi; p'_1, p'_2, p'_3) = f(r, \theta, p'_1, p'_2, p'_3) + p'_3 \phi, \] 那么 \(\partial_{1,2} W(t; \dots) = p'_3\), 并且 φ 不出现在 f 的剩余方程中:

\begin{multline*} E(p'_1, p'_2, p'_3) = \frac{1}{2m} \left[ (\partial_{1,0} f(r, \theta, \dots))^2 \right. \\ \left. + \frac{1}{r^2} \left( (\partial_{1,1} f(r, \theta, \dots))^2 + \frac{(p'_3)^2}{\sin^2\theta} \right) \right] - \frac{\mu}{r}. \end{multline*}

生成函数中 φ 的系数可以使用 p'i 的任何函数. 这个特定的选择具有很好的特性, 即 p'3 是角动量的 z 分量. 如果我们选择, 我们可以消除 θ 的依赖性 \[ f(r, \theta, p'_1, p'_2, p'_3) = R(r, p'_1, p'_2, p'_3) + \Theta(\theta, p'_1, p'_2, p'_3) \]

并要求 Θ 解 \[ (\partial_0 \Theta(\theta, p'_1, p'_2, p'_3))^2 + \frac{(p'_3)^2}{\sin^2\theta} = (p'_2)^2. \] 我们可以自由选择右侧是新动量的任何函数. 这个选择反映了左侧非负的事实. 事实证明 \(p'_2\) 是总角动量. 这个关于 Θ 的方程可以通过求积求解. 确定 R 的剩余方程是 \[ E(p'_1, p'_2, p'_3) = \frac{1}{2m} \left[ (\partial_{1,0} R(r, \dots))^2 + \frac{1}{r^2} (p'_2)^2 \right] - \frac{\mu}{r}, \] 这也可以通过求积求解. 总的来说, 哈密顿-雅可比方程的解读作

\begin{multline*} W(r, \theta, \phi, p'_1, p'_2, p'_3) = \int^r \sqrt{2m E(\dots) + \frac{2m\mu}{r} - \frac{(p'_2)^2}{r^2}} dr \\ + \int^\theta \sqrt{(p'_2)^2 - \frac{(p'_3)^2}{\sin^2\theta}} d\theta + p'_3 \phi. \end{multline*}

有趣的是, 我们对哈密顿-雅可比偏微分方程的解是以下形式

\begin{multline*} W(t; r, \theta, \phi; p'_1, p'_2, p'_3) \\ = R(r, p'_1, p'_2, p'_3) + \Theta(\theta, p'_1, p'_2, p'_3) + \Phi(\phi, p'_1, p'_2, p'_3). \end{multline*}

因此我们有一个变量分离技术, 涉及将解写成单个变量的函数之和. 这可能与基本量子力学和经典电动力学中遇到的变量分离技术形成对比, 后者使用单个变量的函数乘积. 然而, 经典力学中的可积问题是罕见的, 因此将此方法视为一般解法是不正确的.

与动量 \(p'_1, p'_2, p'_3\) 共轭的坐标 \(q'_1, q'_2, q'_3\) 是 \[ q'_1 = \partial_{2,0} W(t; r, \theta, \phi; p'_1, p'_2, p'_3) \]

\[ = m \int^r \left( 2m E(\dots) + \frac{2m\mu}{r} - \frac{(p'_2)^2}{r^2} \right)^{-1/2} dr \]

\begin{align*} q'_2 &= \partial_{2,1} W(t; r, \theta, \phi; p'_1, p'_2, p'_3) \\ &= p'_2 \int^\theta \left( (p'_2)^2 - \frac{(p'_3)^2}{\sin^2\theta} \right)^{-1/2} d\theta \\ &- p'_2 \int^r \frac{1}{r^2} \left( 2m E(\dots) + \frac{2m\mu}{r} - \frac{(p'_2)^2}{r^2} \right)^{-1/2} dr \end{align*}

\[ q'_3 = \partial_{2,2} W(t; r, \theta, \phi; p'_1, p'_2, p'_3) = \phi. \] 我们仍然可以自由选择 E 的函数形式. 一个方便(且传统)的选择是 \[ E(p'_1, p'_2, p'_3) = -\frac{m\mu^2}{2(p'_1)^2}. \] 通过这个选择, 动量 p'₁ 具有角动量的量纲, 共轭坐标是一个角度. 开普勒问题的哈密顿量简化为 \[ H'(t; q'_1, q'_2, q'_3; p'_1, p'_2, p'_3) = E(p'_1, p'_2, p'_3) = -\frac{m\mu^2}{2(p'_1)^2}. \] 因此

\begin{align*} q'_1 &= nt + q'_{10} \\ q'_2 &= q'_{20} \\ q'_3 &= q'_{30}, \end{align*}

其中 \(n = m\mu^2 / (p'_1)^3\), \(q'_{10}, q'_{20}, q'_{30}\) 是初始值. 新变量中只有一个随时间变化. 31

31

正则相空间坐标可以用指定轨道的参数来表示. 我们只总结结果. 更详细的解释见 [33] 或 [35]. 假设我们有一个束缚轨道, 具有半长轴 a, 偏心率 e, 倾角 i, 升交点经度 Ω, 近心点幅角 ω 和平近点角 M. 三个正则动量是 \(p'_1 = \sqrt{m\mu a}\), \(p'_2 = \sqrt{m\mu a (1-e^2)}\) 和 \(p'_3 = \sqrt{m\mu a (1-e^2)} \cos i\). 第一个动量与能量有关, 第二个动量是总角动量, 第三个动量是角动量的 ẑ 分量. 共轭正则坐标是 \(q'_1 = M\), \(q'_2 = \omega\), 和 \(q'_3 = \Omega\).

32

一般来说, 生成元 W 可能依赖于其自变量. 如果是这样, 则需要指定一个规则, 给出 W 演化的自变量初始值. 这个规则可能依赖也可能不依赖于时间. 如果 W 演化的自变量规范不依赖于时间, 则由此产生的正则变换 \(C'_{\epsilon, W}\) 是不含时的, 并且哈密顿量通过复合变换. 如果生成元 W 依赖于其自变量, 并且指定其初始值的规则依赖于时间, 则变换 \(C'_{\epsilon, W}\) 是含时的. 在这种情况下, 哈密顿量 H 和 H' 之间的关系可能需要调整. 在扩展相空间中, 所有这些复杂性都消失了. 只有一种情况. 我们可以假设所有生成元 W 都与自变量无关.

用 \(E'_{\epsilon, W}\) 表示, 正则变换是:

\begin{align*} q &= (E'_{\epsilon, W} Q)(t, q', p') \\ p &= (E'_{\epsilon, W} P)(t, q', p') \\ H' &= E'_{\epsilon, W} H. \end{align*}

我们也可以说 \[ (t, q, p) = (E'_{\epsilon, W} I)(t, q', p'), \] 其中 I 是相空间恒等函数: \(I(t, q, p) = (t, q, p)\). 注意 \(E'_{\epsilon, W}\) 具有性质: 33 \[ E'_{\epsilon_1+\epsilon_2, W} = E'_{\epsilon_1, W} \circ E'_{\epsilon_2, W} = E'_{\epsilon_2, W} \circ E'_{\epsilon_1, W}. \] 恒等 I 是 \[ I = E'_{0, W}. \] 我们可以定义反函数 \[ (E'_{\epsilon, W})^{-1} = E'_{-\epsilon, W} \] 具有性质 \[ I = E'_{\epsilon, W} \circ (E'_{\epsilon, W})^{-1} = (E'_{\epsilon, W})^{-1} \circ E'_{\epsilon, W}. \]

33

具有复合运算和参数 ε 的变换集 \(E'_{\epsilon, W}\) 是一个单参数李群.

变换族满足哈密顿方程:

\begin{align*} Dr &= 0 \\ D\theta &= 1 \\ Dp_r &= 0 \\ Dp_\theta &= 0 \end{align*}

由于出现在 W 中的唯一变量是 pθ, 那么 θ 是唯一随 ε 变化的变量. 事实上, 正则变换族是: \[ r = r' \] \[ \theta = \theta' + \epsilon \] \[ p_r = p'_r \] \[ p_\theta = p'_\theta \] 所以角动量是正则旋转的生成元.

这个例子很简单, 但它说明了李变换的一个重要特征–它们完全用另一组变量给出了一组变量. 这应该与混合变量生成函数变换形成对比, 后者总是给出新旧变量混合表示新旧变量的混合, 因此需要反演才能将一组变量用另一组变量表示. 这种反演只能在特殊情况下以闭合形式写出. 通常, 使用从一开始就生成显式变换的变换规则具有相当大的优势. 李变换总是显式的, 因为它们用另一组变量给出了一组变量, 但要存在显式表达式, 由生成元控制的演化必须是可解的.

让我们考虑另一个例子. 这次考虑一个三自由度的直角坐标问题, 并取变换的生成元为角动量的 z 分量: \[ W(\tau; x, y, z; p_x, p_y, p_z) = x p_y - y p_x \] 演化方程是 \[ Dx = -y \]

\begin{align*} Dy &= x \\ Dz &= 0 \\ Dp_x &= -p_y \\ Dp_y &= p_x \\ Dp_z &= 0 \end{align*}

我们注意到 z 和 pz 不变; 并且控制 x 和 y 演化的方程与控制 px 和 py 演化的方程解耦. 这两对方程都代表简谐运动, 可以通过将它们写成二阶系统来看出. 解是

\begin{align*} x &= x' \cos\epsilon - y' \sin\epsilon \\ y &= x' \sin\epsilon + y' \cos\epsilon \\ z &= z' \end{align*} \begin{align*} p_x &= p'_x \cos\epsilon - p'_y \sin\epsilon \\ p_y &= p'_x \sin\epsilon + p'_y \cos\epsilon \\ p_z &= p'_z \end{align*}

所以我们再次看到角动量的一个分量生成了一个正则旋转. 关于我们的轴的选择没有什么特别之处, 所以我们可以推断角动量绕任何轴的分量都会生成绕该轴的旋转.

34

我们在这里对微分算子玩弄了一些花招. 在形式化处理中, 必须证明这些游戏在数学上是明确定义的, 并具有适当的收敛性质.

目标是能够写出 \[ f(t+\epsilon) = (e^{\epsilon D} f)(t). \] 我们必须小心一点: \((\epsilon D)^2 = \epsilon^2 D D\). 我们只能将其变成 \(\epsilon^2 D^2\), 因为 ε 是一个标量常数, 必须与每个微分算子可交换. 但考虑到这个警告, 我们可以定义微分算子 \[ (e^{\epsilon D} f)(t) = f(t) + \epsilon Df(t) + \frac{1}{2} \epsilon^2 D^2 f(t) + \dots + \frac{1}{n!} \epsilon^n D^n f(t) + \dots \]

在继续之前, 用这些计算一下是很有趣的. 在下面的代码记录中, 我们通过指数化来发展级数. 我们可以通过查看级数项的(无限)序列的连续元素来增量地检查级数. 过程 series:for-each 将其第一个参数应用于作为其第二个参数给出的级数的连续元素. 第三个参数(如果给出)指定要遍历的项数. 在每个以下记录中, 我们打印连续项的简化表达式.

首先要看的是一个未知文字函数围绕 t 展开, 增量为 ε 的一般泰勒展开式. 理解这个简单问题中我们看到的内容将有助于我们理解稍后在更复杂问题中看到的内容.

(series:for-each print-expression
                 (((exp (* 'epsilon D))
                   (literal-function 'f))
                  't)
                 6)
(f t)
(* ((D f) t) epsilon)
(* 1/2 (((expt D 2) f) t) (expt epsilon 2))
(* 1/6 (((expt D 3) f) t) (expt epsilon 3))
(* 1/24 (((expt D 4) f) t) (expt epsilon 4))
(* 1/120 (((expt D 5) f) t) (expt epsilon 5))
...

我们也可以展开我们认识的特定函数, 例如 sin 在 0 附近的展开式.

(series:for-each print-expression
                 (((exp (* 'epsilon D)) sin) 0)
                 6)
0
epsilon
0
(* -1/6 (expt epsilon 3))
0
(* 1/120 (expt epsilon 5))
...

展开我们通常不记得的函数通常很有启发性, 例如 \(f(x) = \sqrt{1+x}\).

(series:for-each print-expression
                 (((exp (* 'epsilon D))
                   (lambda (x) (sqrt (+ x 1))))
                  0)
                 6)
1
(* 1/2 epsilon)
(* -1/8 (expt epsilon 2))
(* 1/16 (expt epsilon 3))
(* -5/128 (expt epsilon 4))
(* 7/256 (expt epsilon 5))
...
35

我们的 \(L_H\) 是微分几何中称为李导数的一个特例. 更一般的想法是向量场定义了一个流. 对象关于向量场的李导数给出了当对象沿流拖动时对象的变化率. 在我们的例子中, 流是由哈密顿方程生成的演化, 哈密顿量为 H.

当这个级数收敛时. 我们已经证明时间演化是正则的, 所以上面的级数是正则变换作为时间幂级数的形式表示. 这些级数可能不收敛, 即使由哈密顿量 H 控制的演化有明确定义.

36

实际上, 我们稍微不同地定义李导数, 如下所示:

(define ((Lie-derivative-procedure H) F)
  (Poisson-bracket F H))
(define Lie-derivative
  (make-operator Lie-derivative-procedure 'Lie-derivative))

原因是我们需要 Lie-derivative 是一个算子, 它就像一个函数, 只是算子的乘积被解释为复合, 而函数的乘积是计算它们值乘积的函数.

37

这里的 Lie-transform 过程也被定义为一个算子, 就像 Lie-derivative 一样, 但在这种情况下, 算子声明纯粹是形式上的, 因为 exp 过程会产生一个级数, 我们目前没有办法迭代该过程.

(series:for-each print-expression
                 (((Lie-transform (H-harmonic 'm 'k) 'dt)
                   coordinate)
                  (up 0 'x0 'p0))
                 6)
x0
(/ (* dt p0) m)
(/ (* -1/2 (expt dt 2) k x0) m)
(/ (* -1/6 (expt dt 3) k p0) (expt m 2))
(/ (* 1/24 (expt dt 4) (expt k 2) x0) (expt m 2))
(/ (* 1/120 (expt dt 5) (expt k 2) p0) (expt m 3))
...

我们应该认出这个级数的项. 我们从初始位置 x₀ 开始. 一阶修正 \((p_0/m) dt\) 是由于初始速度. 接下来我们发现一个加速度项 \((-kx_0/2m) dt^2\) 是由于初始位置处弹簧的恢复力. 李变换同样适用于显示动量如何随区间演化:

(series:for-each print-expression
                 (((Lie-transform (H-harmonic 'm 'k) 'dt)
                   momentum)
                  (up 0 'x0 'p0))
                 6)
p0
(* -1 dt k x0)
(/ (* -1/2 (expt dt 2) k p0) m)
(/ (* 1/6 (expt dt 3) (expt k 2) x0) m)
(/ (* 1/24 (expt dt 4) (expt k 2) p0) (expt m 2))
(/ (* -1/120 (expt dt 5) (expt k 3) x0) (expt m 2))
...

在这个级数中, 我们看到初始动量 p₀ 如何被恢复力 \(-kx_0 dt\) 等等修正. 看看更复杂的相空间函数如何被李级数展开处理会更有趣. 在下面的实验中, 我们研究了通过由相同谐振子哈密顿量生成的变换推进谐振子哈密顿量而产生的李级数:

(series:for-each print-expression
                 (((Lie-transform (H-harmonic 'm 'k) 'dt)
                   (H-harmonic 'm 'k))
                  (up 0 'x0 'p0))
                 6)
(/ (+ (* 1/2 k m (expt x0 2)) (* 1/2 (expt p0 2))) m)
0
0
0
0
0
...

正如我们所希望的, 级数显示了原始能量表达式 \((k/2) x_0^2 + (1/2m) p_0^2\) 作为第一项. 每个后续修正项结果都为零–因为能量是守恒的. 当然, 李级数可以在更复杂的情况下使用, 我们想看到由更复杂的哈密顿量表征的系统运动的展开. 在一般中心场中粒子的平面运动是一个简单的例子, 李级数很有启发性. 在下面的记录中, 我们可以看到级数变得多么迅速复杂. 尝试解释下面显示的第三项(加速度)的加性部分是值得的:

(series:for-each print-expression
                 (((Lie-transform
                    (H-central-polar 'm (literal-function 'U))
                    'dt)
                   coordinate)
                  (up 0
                      (up 'r_0 'phi_0)
                      (down 'p_r_0 'p_phi_0)))
                 4)
(up r_0 phi_0)
(up (/ (* dt p_r_0) m)
    (/ (* dt p_phi_0) (* m (expt r_0 2))))
(up
 (+ (/ (* -1/2 ((D U) r_0) (expt dt 2)) m)
    (/ (* 1/2 (expt dt 2) (expt p_phi_0 2))
       (* (expt m 2) (expt r_0 3))))
 (/ (* -1 (expt dt 2) p_phi_0 p_r_0)
    (* (expt m 2) (expt r_0 3))))

(up (+ (/ (* -1/6 (((expt D 2) U) r0) (expt dt 3) pr0) (expt m 2)) (/ (* -1/2 (expt dt 3) (expt pphi0 2) pr0) (* (expt m 3) (expt r0 4)))) (+ (/ (* 1/3 ((D U) r0) (expt dt 3) pphi0) (* (expt m 2) (expt r0 3))) (/ (* -1/3 (expt dt 3) (expt pphi0 3)) (* (expt m 3) (expt r0 6))) (/ (* (expt dt 3) pphi0 (expt pr0 2)) (* (expt m 3) (expt r0 4))))) … 当然, 如果我们知道闭合形式的李变换, 利用它可能是一个好主意, 但是当我们不知道闭合形式时, 李级数表示法可能会派上用场.

38

: 速度的平方大小是 \(v \cdot v\), 即速度与其自身的矢量点积. 分量结构的平方定义为其各个分量平方和, 因此我们简单地写 \(v^2 = v \cdot v\).

39

: 注意我们正在对函数进行算术运算. 我们扩展算术运算, 以便相同类型 (相同定义域和值域) 的两个函数的组合是相同定义域上的函数, 它在值域中组合参数函数的值. 例如, 如果 f 和 g 是 t 的函数, 那么 fg 是函数 \(t \to f(t)g(t)\). 函数的常数倍是这样一个函数, 其值是常数乘以该函数对每个参数的值: cf 是函数 \(t \to cf(t)\).

40

: 注意我们正在添加过程. 与我们将算术运算扩展到函数类似, 算术运算也扩展到兼容的过程.

41

: minimize 的参数是一个实现所讨论的一元函数的过程, 以及要搜索区域的下界和上界. Scmutils 包含多种数值最小化方法; 这里使用的是 Brent 算法, 误差容限为 \(10^{-5}\). minimize 返回的值是一个包含 3 个数字的列表: 第一个是最小值出现的参数, 第二个是获得的最小值, 第三个是获得最小值所需的最小化算法迭代次数.

42

: 是的, 对于最小化器要求的容差, -1.5987211554602254e-14 是零. 而 435.0000000000237 可以说与之前获得的 435 相同.

43

: 有很多好的方法可以构造这样的参数化近似轨迹集. 可以使用样条或高阶插值多项式; 可以使用切比雪夫多项式; 可以使用傅里叶分量. 选择取决于想要近似的轨迹类型.

44

: 这是实现 make-path 的一种方法: #+BEGINSRC scheme (define (make-path t0 q0 t1 q1 qs) (let ((n (length qs))) (let ((ts (linear-interpolants t0 t1 n))) (Lagrange-interpolation-function (append (list q0) qs (list q1)) (append (list t0) ts (list t1)))))) #+ENDSRC 过程 linear-interpolants 产生一个线性插值前两个参数的元素列表. 我们在这里使用这个过程来指定 ts, 即 t0 和 t1 之间 n 个均匀间隔的中间时间点, 路径将在这些时间点被指定. 被调整的参数 qs 是这些中间时间点的位置. 过程 Lagrange-interpolation-function 接受一个值列表和一个时间列表, 并产生一个计算通过这些点的拉格朗日插值多项式的过程.

45

: 这里使用的最小化器是 Nelder-Mead 下山单纯形法. 通常对于数值过程, nelder-mead 过程的接口很复杂, 有很多可选参数允许用户有效控制误差. 对于这个演示, 我们通过将其包装在更易于接受的 multidimensional-minimize 中来专门化 nelder-mead. 不幸的是, 你总有一天必须学会忍受复杂的数值过程.

46

: 别担心. 我们知道你还不知道为什么这是正确的拉格朗日量. 我们将在 1.6 节讨论这个问题.

47

: 按照惯例, 命名常量具有以冒号开头的名称. 名为 :pi 和 :-pi 的常量正如我们从它们的名称中所期望的那样.

48

:这个结果最初由欧拉发现, 后来由拉格朗日重新推导.

49

:接受结构化参数的函数的导数或偏导数是一个新函数, 它接受相同数量和类型的参数. 这个新函数的取值范围本身就是一个结构, 其分量数量与函数对其求导的参数的分量数量相同.

50

:拉格朗日方程传统上写成形式 \[ \frac{d}{dt} \frac{\partial L}{\partial \dot{q}} - \frac{\partial L}{\partial q} = 0, \] 或者, 如果我们为 q 的每个分量写一个单独的方程, 则为 \[ \frac{d}{dt} \frac{\partial L}{\partial \dot{q}^i} - \frac{\partial L}{\partial q^i} = 0 \quad i = 0, \dots, n-1. \] 在这种书写拉格朗日方程的方式中, 记号没有区分 L (它是三个变量 \(t, q, \dot{q}\) 的实值函数) 和 \(L \circ \Gamma[q]\) (它是一个实变量 t 的实值函数). 如果我们没有意识到这个记号双关语, 方程写出来就没有意义——\(\partial L / \partial \dot{q}\) 是三个变量的函数, 所以在对表达式求 \(d/dt\) 之前, 我们必须将参数 \(q, \dot{q}\) 视为 t 的函数. 类似地, \(\partial L / \partial q\) 是三个变量的函数, 在将其等同于 \(d/dt(\partial L / \partial \dot{q})\) 之前, 我们必须将其视为 t 的函数. 这些链式法则的隐式应用在执行手动计算时不成问题——一旦你理解了方程所代表的含义.

51

: 变分算符 \(\delta_\eta\) 类似于导数算符, 它作用于紧随其后的函数: \(\delta_\eta f[q] = (\delta_\eta f)[q]\).

52

: 多个参数的函数被视为其参数元组的函数. 因此, 多个参数函数的导数是该函数相对于每个参数的偏导数的元组. 因此, 对于拉格朗日量 L \[ DL(t, q, v) = [\partial_0 L(t, q, v), \partial_1 L(t, q, v), \partial_2 L(t, q, v)]. \]

53

: 要使这个论证更精确, 需要仔细分析.

54

: 当我们写一个定义, 命名局部元组的分量时, 我们用分号分隔时间, 位置和速度分量组来表示它们的分组.

55

: 对元组求导是对应元组各分量求偏导的元组 (参见附录中的记号).

56

: 符号 \(\dot{\theta}\) 只是一个助记符号; \(\theta\) 上方的点并非意在表示微分. 为了定义 L, 我们本可以同样写成: \(L(a, b, c) = \frac{1}{2}ml^2 c^2 + mgl \cos b\). 然而, 我们使用带点的符号来提醒我们, 匹配形式参数 (如 \(\dot{\theta}\)) 的参数是某个角度 (如 \(\theta\)) 的变化率.

57

: 在传统记号中, 这些方程读作 \[ \frac{d^2}{dt^2} \frac{\partial L}{\partial \ddot{q}} - \frac{d}{dt} \frac{\partial L}{\partial \dot{q}} + \frac{\partial L}{\partial q} = 0. \]

58

Lagrange-equations 过程使用运算 (partial 1) 和 (partial 2), 它们实现了相对于第二和第三参数位置 (即索引为 1 和 2 的位置) 的偏导数算符.

即从拉格朗日量推导拉格朗日方程的方法总是相同的; 它独立于自由度的数量, 位形空间的拓扑结构, 以及用于描述位形空间中点的坐标系.

59

: 每个自由度都有一个拉格朗日方程. 如果路径是可实现的, 所有方程的残差都为零. 残差排列在一个 down 元组中, 因为它们是由拉格朗日量相对于接受 up 元组的参数槽的导数产生的. 参见关于记号的附录.

60

: 注意, 二阶导数表示为导数算符的平方 (expt D 2). Scmutils 中的算术运算扩展到算符和函数.

61

: 记住 x 和 v 只是拉格朗日量的形式参数. 这个 x 不是推导中早期使用的路径 x, 尽管它可能是该路径在特定时间的值.

第一项是动能, 通常记作 T. 因此, 拉格朗日量的这个选择是 \(L(t, x, v) = T(t, x, v) - V(t, x)\), 即动能和势能之差. 我们通常会将势能函数的参数扩展为形式上包含速度, 这样我们就可以写成 \(L = T - V\).62

62

: 我们总是可以给一个函数添加它不使用的额外参数, 这样它就可以与其他具有相同形式的函数进行代数组合.

63

: 哈密顿在 1834-1835 年为时间无关系统阐述了基本变分原理. 雅可比将此原理命名为“哈密顿原理”. 对于受一般非定常约束的系统, 哈密顿原理在 1848 年由奥斯特罗格拉茨基研究. 在俄国文献中, 哈密顿原理通常被称为哈密顿-奥斯特罗格拉茨基原理. 威廉·罗万·哈密顿 (William Rowan Hamilton, 1805–1865) 是一位杰出的 19 世纪数学家. 他早期关于几何光学 (基于费马原理) 的工作令人印象深刻, 以至于在他还是本科生时就被选为都柏林三一学院天文学教授和爱尔兰皇家天文学家. 他创作了两部 19 世纪数学的里程碑式著作. 他对四元数的发现振兴了抽象代数, 并引发了物理学中矢量技术的发展. 他 1835 年的论文《论动力学中的一种普遍方法》 (On a General Method in Dynamics) 为变分力学奠定了坚实的基础, 最终为莫佩尔蒂 100 年前模糊陈述的最小作用量原理提供了实质内容. 哈密顿也写诗, 并与华兹华斯进行了广泛的通信, 华兹华斯建议他将精力投入数学写作而非诗歌.

看起来我们似乎把拉格朗日方程简化为了不过是 \(F=ma\), 事实上, 这个原理是通过比较这两组方程对这类特殊系统而受到启发的. 然而, 拉格朗日表述的运动方程比 \(F=ma\) 有一个重要的优势. 我们的推导使用了组成粒子的位置的直角坐标分量 \(x_\alpha\) 作为广义坐标, 但如果系统的路径在某个特定坐标系中满足拉格朗日方程, 那么它必须在任何坐标系中都满足方程. 因此我们看到 \(L = T - V\) 适合作为拉格朗日量, 使用任何一组广义坐标. 变分力学方程在任何位形空间和任何坐标系中都以相同的方式导出. 相比之下, 牛顿表述是基于初等几何的: 为了使 \(D^2 x(t)\) 作为加速度有意义, \(x(t)\) 必须是物理空间中的矢量. 拉格朗日方程没有对坐标 q 的含义施加这样的限制. 广义坐标可以是方便描述系统位形的任何参数.

64

: 我们稍后会更多地讨论角动量.

65

: 如脚注 28 所述, 过程 ->local 从时间, 坐标和速度的初始段构造一个局部元组.

66

: 参见 1.6.1 节.

67

: 我们希望你能欣赏这里的 TEX 魔法. 带下划线的符号被 show-expression 转换成下标. 带插入符的符号, 希腊字母的名称, 以及以“dot”结尾的字符 都类似地被错误处理.

68

: 我们将简单地接受带有刚性约束的系统的牛顿过程, 并找到等价的拉格朗日量. 当然, 实际物体从来都不是真正刚性的, 所以我们可能想知道必须做出哪些详细的近似才能将它们视为真正刚性的. 例如, 一个更令人满意的方法是用非常硬的弹簧替换刚性距离约束. 然后我们可以立即写出拉格朗日量 \(L = T - V\), 并且我们应该能够推导出带有刚性约束的系统的牛顿过程作为一种近似. 然而, 这在现阶段做起来太复杂了, 所以我们接受牛顿理想化.

69

: 这个拉格朗日量纯粹是形式上的, 并不代表约束力的模型. 特别要注意, 约束项看起来不像在约束恰好满足时具有最小值的约束势能. 相反, 当约束满足时, 拉格朗日量中的约束项为零, 并且可以根据粒子之间的距离是大于还是小于约束距离而取正值或负值.

既然我们有了一个合适的拉格朗日量, 我们可以利用拉格朗日量可以在任何广义坐标系中重新表达的事实来找到一个更简单的拉格朗日量. 策略是选择一个新的坐标集, 其中许多坐标是常数, 其余坐标是冗余的. 令 q 为一个广义坐标元组, 它无冗余地指定了系统的自由度. 令 c 为另一个广义坐标元组, 它指定了约束指定的粒子之间的距离. c 坐标将具有恒定值. q 和 c 的组合取代了冗余的直角坐标 x.70 此外, 我们仍然有 \(\mathcal{F}\) 坐标, 它们是标量约束力. 我们的新坐标是 q, c 和 \(\mathcal{F}\) 的分量. 存在函数 \(f_\alpha\), 给出组成粒子的直角坐标关于 q 和 c 的关系: \[ x_\alpha = f_\alpha(t, q, c). \quad (1.92) \] 为了用 q, c 和 \(\mathcal{F}\) 来重新表达拉格朗日量, 我们需要找到 \(v_\alpha\) 关于广义速度 \(\dot{q}\) 和 \(\dot{c}\) 的关系: 我们通过沿路径对 \(f_\alpha\) 微分并抽象为任意速度来实现 (参见 1.6.1 节): \[ v_\alpha = \partial_0 f_\alpha(t, q, c) + \partial_1 f_\alpha(t, q, c) \dot{q} + \partial_2 f_\alpha(t, q, c) \dot{c}. \quad (1.93) \] 将这些代入拉格朗日量 (1.89), 并使用 \[ c_{\alpha\beta}^2 = (x_\beta - x_\alpha)^2, \quad (1.94) \] 我们发现 \[ L'(t; q, c, \mathcal{F}; \dot{q}, \dot{c}, \dot{\mathcal{F}}) \] \[ = \sum_\alpha \frac{1}{2} m_\alpha (\partial_0 f_\alpha(t, q, c) + \partial_1 f_\alpha(t, q, c) \dot{q} + \partial_2 f_\alpha(t, q, c) \dot{c})^2 \] \[ - V(t, f(t, q, c)) - \sum_{\{\alpha, \beta | \alpha < \beta, \alpha \leftrightarrow \beta\}} \frac{\mathcal{F}_{\alpha\beta}}{2l_{\alpha\beta}} \left[ c_{\alpha\beta}^2 - l_{\alpha\beta}^2 \right]. \quad (1.95) \]

70

: 通常 x 的分量数等于 q 和 c 的分量数之和; 添加一个支柱会移除一个自由度并添加一个距离约束. 然而, 在某些奇异情况下, 添加单个支柱可能会移除多个自由度. 我们不考虑这些奇异情况.

拉格朗日方程由通常的程序推导得出. 与其写出所有冗长的细节, 不如让我们思考一下它会如何进行. 与 \(\mathcal{F}\) 相关的拉格朗日方程只是重述了约束: \[ 0 = c_{\alpha\beta}^2(t) - l_{\alpha\beta}^2 \quad (1.96) \] 因此我们知道沿解路径 \(c(t) = l\), 且 \(Dc(t) = D^2 c(t) = 0\). 我们可以利用这个结果来简化与 q 和 c 相关的拉格朗日方程. 与 q 相关的拉格朗日方程与它们从拉格朗日量推导出来时相同71 \[ L^v(t, q, \dot{q}) = \sum_\alpha \frac{1}{2} m_\alpha (\partial_0 f_\alpha(t, q, l) + \partial_1 f_\alpha(t, q, l) \dot{q})^2 \] \[ - V(t, f(t, q, l)), \quad (1.97) \] 但这正是 \(T - V\), 其中 T 和 V 是根据广义坐标 q 计算的, 具有固定的约束. 注意约束力不出现在 q 的拉格朗日方程中, 因为在拉格朗日方程中它们乘以一个在解路径上恒等于零的项. 因此, 具有冗余广义坐标 q 和固定约束的 \(T-V\) 的拉格朗日方程等价于具有矢量约束力的牛顿方程. c 的拉格朗日方程可用于找到约束力. 拉格朗日方程非常复杂, 所以我们不会明确地写出它们, 但通常它们是 \(D^2 c\), Dc 和 c 的方程, 它们将依赖于 q, Dq 和 \(\mathcal{F}\). 对 \(\mathcal{F}\) 的依赖是线性的, 所以我们可以用解路径 q 和 Dq, 且 \(c=l\) 和 \(Dc = D^2c = 0\) 来求解 \(\mathcal{F}\). 如果我们对约束力不感兴趣, 我们可以放弃完整的拉格朗日量 (1.95), 转而使用拉格朗日量 (1.97), 它就广义坐标 q 的演化而言是等价的. 同样的推导过程也适用于约束中的长度 \(l_{\alpha\beta}\) 是时间的函数的情况. 它也可以推广到允许距离约束依赖于时间的位置, 通过使某些粒子 \(x_\beta\) 的位置成为时间的指定函数.

71

: 考虑一个函数 g, 比如说, 有三个参数, 令 g0 为满足 \(g_0(x, y) = g(x, y, 0)\) 的两个参数的函数. 那么 \((∂_0 g_0)(x, y) = (∂_0 g)(x, y, 0)\). 值的代入与对不同参数求偏导是可交换的. 在推导 q 的拉格朗日方程时, 我们可以在拉格朗日量中设置 \(c=l\) 和 \(\dot{c}=0\), 但在推导与 c 相关的拉格朗日方程时我们不能这样做, 因为我们必须对这些参数求导.

72

: 元组结构的分量, 例如 \(\Gamma[q](t)\) 的值, 可以用选择器函数来选择: \(I_i\) 从元组中获取索引为 i 的元素.

73

: 例如, Lipschitz 条件是导数的变化率在轨迹每个点周围的开集中被一个常数限制. 参见 [22] 以获得对 Lipschitz 条件的良好处理.

74

: 如果坐标是冗余的, 我们通常无法解出最高阶导数. 然而, 由于我们可以变换到冗余坐标, 并且由于我们可以在冗余坐标中解决初值问题, 并且由于我们可以从冗余坐标构造冗余坐标, 我们通常可以解决冗余坐标的初值问题. 唯一的障碍是我们可能无法指定任意的初始条件: 初始条件必须与约束一致.

首先, 我们展开拉格朗日方程 \[ \partial_1 L \circ \Gamma[q] = D(\partial_2 L \circ \Gamma[q]) \] 使得二阶导数显式出现 \[ \partial_1 L \circ \Gamma[q] = \partial_0 \partial_2 L \circ \Gamma[q] + (\partial_1 \partial_2 L \circ \Gamma[q]) Dq + (\partial_2 \partial_2 L \circ \Gamma[q]) D^2 q. \] 解这个系统得到 \(D^2 q\), 我们得到沿解路径 q 的广义加速度 \[ D^2 q = [\partial_2 \partial_2 L \circ \Gamma[q]]^{-1} [\partial_1 L \circ \Gamma[q] - (\partial_1 \partial_2 L \circ \Gamma[q]) Dq - \partial_0 \partial_2 L \circ \Gamma[q]] \] 其中 \([\partial_2 \partial_2 L \circ \Gamma]^{-1}\) 是 Hessian 矩阵的逆矩阵. 给出加速度的函数是 \[ A = (\partial_2 \partial_2 L)^{-1} [\partial_1 L - \partial_0 \partial_2 L - (\partial_1 \partial_2 L) \dot{Q}], \quad (1.128) \] 其中 \(\dot{Q} = I_2\) 是速度分量选择器. 指定状态的局部元组的那个初始段称为局部状态元组 (local state tuple), 或者更简单地说, 状态元组 (state tuple). 我们可以将给出加速度的函数表示为状态元组的函数, 如下过程所示. 它接受一个计算拉格朗日量的过程, 并返回一个接受状态元组作为其参数并返回加速度的过程.75

(define (Lagrangian->acceleration L)
  (let ((P ((partial 2) L))
        (F ((partial 1) L)))
    (/ (- F
          (+ ((partial 0) P)
             (* ((partial 1) P) velocity)))
       ((partial 2) P))))

一旦我们有了从坐标和速度计算加速度的方法, 我们就可以给出一个计算状态导数作为状态函数的处方. 对于状态 \((t, q(t), Dq(t))\) 在时刻 t, 状态的导数是 \((1, Dq(t), D^2 q(t)) = (1, Dq(t), A(t, q(t), Dq(t)))\). 过程 Lagrangian->state-derivative 接受一个拉格朗日量并返回一个接受状态并返回状态导数的过程:

(define (Lagrangian->state-derivative L)
  (let ((acceleration (Lagrangian->acceleration L)))
    (lambda (state)
      (up 1
          (velocity state)
          (acceleration state)))))

我们用一个包含构成状态的局部元组初始段分量的 up-tuple 来表示状态. 例如, 谐振子的参数化状态导数是

(define (harmonic-state-derivative m k)
  (Lagrangian->state-derivative (L-harmonic m k)))

(print-expression
 ((harmonic-state-derivative 'm 'k)
  (up 't (up 'x 'y) (up 'v_x 'v_y))))

拉格朗日方程是约束可实现路径 q 的二阶微分方程组. 我们可以使用状态导数将拉格朗日方程表示为约束可实现坐标路径 q 和速度路径 v 的一阶微分方程组:

(define ((Lagrange-equations-first-order L) q v)
  (let ((state-path (qv->state-path q v)))
    (- (D state-path)
       (compose (Lagrangian->state-derivative L)
                state-path))))
(define ((qv->state-path q v) t)
  (up t (q t) (v t)))

例如, 我们可以找到二维谐振子运动方程的一阶形式:

(show-expression
 (((Lagrange-equations-first-order (L-harmonic 'm 'k))
   (up (literal-function 'x)
       (literal-function 'y))
   (up (literal-function 'v_x)
       (literal-function 'v_y)))
  't))

\[ \begin{pmatrix} 0 \\ \begin{pmatrix} Dx(t) - v_x(t) \\ Dy(t) - v_y(t) \end{pmatrix} \\ \begin{pmatrix} \frac{kx(t)}{m} + Dv_x(t) \\ \frac{ky(t)}{m} + Dv_y(t) \end{pmatrix} \end{pmatrix} \] 拉格朗日方程残差结构的第一个元素中的零只是时间均匀推进的同义反复: 时间函数就是恒等函数, 所以它的导数是 1, 残差是零. 第二个元素中的方程约束速度路径为坐标路径的导数. 第三个元素中的方程给出速度相对于作用力的变化率.

75

: 在 Scmutils 中, 除以矩阵被解释为左乘该矩阵的逆.

76

: Scmutils 系统提供了一系列数值积分例程, 可以通过此接口访问. 这些包括质量控制的龙格-库塔 (QCRK4) 和 布利尔施-斯托尔 (Bulirsch-Stoer). 默认的积分方法是 Bulirsch-Stoer.

77

: state-advancer 过程在首次遇到状态导数过程时会自动编译它们. 首次使用新的状态导数时会有延迟, 因为此时正在进行编译.

78

: 结果绘制在一个绘图窗口中, 该窗口由过程 frame 创建, 参数为 xmin, xmax, ymin, ymax, 用于指定绘图区域的界限. 点使用过程 plot-point 添加到绘图中, 该过程接受一个绘图窗口以及要绘制点的横坐标和纵坐标. 过程 principal-value 用于将角度减小到一个标准区间. principal-value 的参数是圆要被切割的点. 因此 (principal-value :pi) 是一个将角度 \(\theta\) 减小到区间 \(-\pi \le \theta < \pi\) 的过程.

figure-1.7.png 两个轨道是无法区分的. 大约 75 秒后, 两个轨道发散并变得完全不同. 这种对初始条件的微小变化的极端敏感性是所谓的混沌行为 (chaotic behavior) 的特征. 稍后, 我们将使用其他工具, 如李雅普诺夫指数 (Lyapunov exponents), 相空间 (phase space) 和庞加莱截面 (Poincaré sections) 来进一步研究这个例子.

79

: 在较早的文献中, 守恒量有时被称为第一积分 (first integrals).

80

: 分量的导数等于导数的分量.

81

: 注意, 我们用下标表示广义动量的分量, 用上标表示广义坐标的分量. 这些约定与张量代数中常用的约定一致, 这在处理复杂问题时有时会有所帮助.

82

: 通常, 物理系统中的守恒量与连续对称性相关, 无论是否能找到一个对称性明显的坐标系. 这个强大的概念被形式化了, 并且由 E. Noether 在 20 世纪初证明了一个将守恒定律与对称性联系起来的定理. 参见 1.8.4 节关于诺特定理的内容.

83

: 能量状态函数的符号是一个约定问题.

84

: 欧拉定理指出, 如果 f 是 \(x = (x_0, x_1, \dots)\) 的函数, 并且在每个 \(x_i\) 中都是 n 次齐次的, 那么 \( \sum_i \left(\frac{\partial f}{\partial x_i}(x) x_i\right) = n f(x). \)

85

: 诺特定理比我们在此陈述和证明的更一般. 我们假设变换 F(s) 不依赖于广义速度. 适当地说, 我们也应该考虑速度依赖的对称性.

我们要求变换 F(0) 是恒等坐标变换 \(x = F(0)(t, x')\); 因此 C(0) 是恒等状态变换 \((t, x', v') = C(0)(t, x', v')\). 如果拉格朗日量 L 在变换下不变, 则它具有对应于 F 的连续对称性 \[ L(s) = L \circ C(s) = L \quad (1.148) \] 对于任何 s. 拉格朗日量 L 与变换后的拉格朗日量 L(s) 是同一个函数. 对于任何 s, \(L(s) = L\) 意味着 \(DL(s) = 0\). 显式地, L(s) 是 \[ L(s)(t, x', v') = L(t, F(s)(t, x'), D_t(F(s))(t, x', v')), \quad (1.149) \] 其中我们用全时间导数重写了 C(s) 的速度分量. L 的导数为零: \[ 0 = \frac{dL(s)}{ds}(t, x', v') \] \[ = \partial_1 L(t, x, v) \left(\frac{dF(s)}{ds}\right)(t, x') + \partial_2 L(t, x, v) D_t\left(\frac{dF(s)}{ds}\right)(t, x'), \quad (1.150) \] 这里我们利用了以下事实86 \[ D_t\left(\frac{dF(s)}{ds}\right) = \frac{d}{ds} G(s) \quad \text{其中 } G(s) = D_t(F(s)). \quad (1.151) \] 在可实现路径 q 上, 我们可以使用拉格朗日方程重写第一项 \[ 0 = (D_t \partial_2 L \circ \Gamma[q]) \left( \left(\frac{dF}{ds}\right)(s) \circ \Gamma[q'] \right) \] \[ + (\partial_2 L \circ \Gamma[q]) \left( D_t \left(\frac{dF}{ds}\right)(s) \circ \Gamma[q'] \right). \quad (1.152) \] 对于 s=0, 路径 q 和 \(q'\) 相同, 因此 \(\Gamma[q] = \Gamma[q']\), 这个方程变成 \[ 0 = \left( (D_t \partial_2 L) \left(\left(\frac{dF}{ds}\right)(0)\right) + (\partial_2 L) \left(D_t \left(\left(\frac{dF}{ds}\right)(0)\right)\right) \right) \circ \Gamma[q] \]

86

: 全时间导数类似于对实数参数的导数, 它不产生结构, 所以它可以与产生结构的导数交换. 但要小心, 它可能由于其他原因而不能与某些导数交换. 例如, \(D_t \partial_1 (F(s))\) 与 \(\partial_1 D_t (F(s))\) 相同, 但 \(D_t \partial_2 (F(s))\) 与 \(\partial_2 D_t (F(s))\) 不同. 原因在于 F(s) 不依赖于速度, 但 \(D_t (F(s))\) 依赖.

\[ = D_t\left( (\partial_2 L) \left(\left(\frac{dF}{ds}\right)(0)\right) \right) \circ \Gamma[q]. \quad (1.153) \] 因此状态函数 I, \[ I = (\partial_2 L) \left(\left(\frac{dF}{ds}\right)(0)\right), \quad (1.154) \] 沿解轨迹守恒. 这就是诺特积分 (Noether's integral). 积分是动量和与对称性相关的矢量的乘积.

87

: 过程 Rx 的定义是 #+BEGINSRC scheme (define ((Rx angle) q) (let ((ca (cos angle)) (sa (sin angle))) (let ((x (ref q 0)) (y (ref q 1)) (z (ref q 2))) (up x (- (* ca y) (* sa z)) (+ (* sa y) (* ca z)))))) #+ENDSRC Ry 和 Rz 的定义类似.

(define Noether-integral
  (let ((L (L-central-rectangular
            'm (literal-function 'U))))
    (* ((partial 2) L) ((D F-tilde) 0 0 0))))
(print-expression
 (Noether-integral
  (up 't
      (up 'x 'y 'z)
      (up 'vx 'vy 'vz))))

我们得到角动量的所有三个分量.

88

: 注意 Gamma 比通常多一个参数. 这个参数给出所需的局部元组初始段的长度. 默认长度是 3, 给出局部元组的分量直到并包括速度.

89

: 给定任何可接受的变分, 我们可以通过将给定的变分乘以一个强调任何特定时间间隔的凸起函数来制作另一个可接受的变分.

90

: 如果两个元组值的时间函数的点积在每个时刻都为零, 我们称它们正交. 类似地, 如果在每个时刻一个元组是另一个元组的标量倍数, 则认为元组值函数是平行的. 标量乘数通常是时间的函数.

91

: 回想一下欧拉-拉格朗日算符 E 具有性质 \(E[FG] = F E[G] + E[F] G + D_t F \partial_2 G + \partial_2 F D_t G\).

这里我们使用了 \(\lambda = \Lambda \circ \Gamma[q]\). 如果我们现在使用我们只处理坐标约束的事实, \(\partial_2 \phi = 0\), 那么 \[ E[L''] \circ \Gamma[q] = (E[L] + \lambda E[\phi]) \circ \Gamma[q]. \quad (1.186) \] 拉格朗日方程与从增广拉格朗日量 \(L'\) 推导出的方程相同. 不同之处在于现在我们看到 \(\lambda = \Lambda \circ \Gamma[q]\) 由未增广状态确定. 这与说 \(\lambda\) 可以被消除是相同的. 仅考虑增广拉格朗日量的拉格朗日方程的形式有效性, 我们无法推断出 \(\lambda\) 可以写成状态依赖函数 \(\Lambda\) 与 \(\Gamma[q]\) 的复合. 从增广拉格朗日量推导出的显式拉格朗日方程既依赖于加速度 \(D^2 q\) 也依赖于 \(\lambda\), 因此我们可能无法分别推断出其中任何一个是状态依赖函数与 \(\Gamma[q]\) 的复合. 然而, 现在我们看到 \(\lambda\) 就是这样一个复合. 这使我们能够推断出 \(D^2 q\) 也是一个与路径复合的状态依赖函数. 系统的演化由动力学状态确定.

92

: 这个约束与证明刚性系统可以使用 L=T-V 的演示中使用的约束形式相同. 这里它是一个更一般约束集的特定例子.

这我们认出是摆锤的正确方程. 这与使用无约束广义坐标 \(\theta\) 的摆锤的拉格朗日方程相同. 为了完整起见, 我们可以用其他变量来找到 \(\lambda\) \[ \lambda = \frac{m D^2 x}{2x} = -\frac{1}{2l} (mg \cos \theta + ml (D\theta)^2). \quad (1.197) \] 这证实了 \(\lambda\) 确实是状态与状态路径的复合. 注意 \(2l\lambda\) 是一个力——它是引力的向外分量和离心力之和. 利用这种解释到两个坐标运动方程中, 我们看到涉及 \(\lambda\) 的项是必须施加到无约束粒子上以使其在约束所需圆周上运动的力. 等价地, 我们可以认为 \(2l\lambda\) 是保持质量的摆杆中的张力.93

93

: 实际上, 如果我们像在讨论牛顿约束力时那样缩放约束方程, 我们可以将 \(\lambda\) 等同于约束力 F 的大小. 然而, 尽管 \(\lambda\) 通常与约束力有关, 但它不会是其中之一. 我们选择保留它自然出现的缩放, 而不是人为地让事情看起来漂亮.

94

: 关于非完整系统的一些处理方法, 例如参见 Whittaker [43], Goldstein [18], Gantmakher [17], 或 Arnold 等人 [6].

并且 \[ (\partial_1 \phi \circ \Gamma[q]) \eta = 0. \quad (1.227) \] 因为 \(E[L] \circ \Gamma[q]\) 与 \(\eta\) 正交, 并且 \(\eta\) 被约束为与 \(\partial_1 \phi \circ \Gamma[q]\) 正交, 所以两者在每个时刻必须平行: \[ E[L] \circ \Gamma[q] = \lambda \partial_1 \phi \circ \Gamma[q]. \quad (1.228) \] 导数约束的拉格朗日方程由此推导得出. 如果约束函数是速度相关的, 则此推导不成立. 在这种情况下, 为了使变分 \(\eta\) 与速度相关的约束函数 \(\psi\) 一致, 它必须满足 (参见方程 1.179) \[ (\partial_1 \psi \circ \Gamma[q]) \eta + (\partial_2 \psi \circ \Gamma[q]) D\eta = 0. \quad (1.229) \] 我们可能不再能通过相同的论证消除 \(\eta\), 因为 \(\eta\) 不再与 \(\partial_1 \psi \circ \Gamma[q]\) 正交, 并且我们不能将约束重写为坐标约束, 因为 \(\psi\) 根据假设是不可积的. 以下是 Arnold 等人 ([6]) 对非完整方程的推导, 翻译成我们的记号. 定义“虚速度”\(\xi\) 为任何满足 \[ (\partial_2 \psi \circ \Gamma[q]) \xi = 0. \quad (1.230) \] 的任何速度. 根据 Arnold 的说法, “达朗贝尔-拉格朗日原理”规定 \[ (E[L] \circ \Gamma[q]) \xi = 0, \quad (1.231) \] 对于任何虚速度 \(\xi\). 因为 \(\xi\) 是任意的, 除非它被要求与 \(\partial_2 \psi \circ \Gamma[q]\) 正交, 并且任何这样的 \(\xi\) 都与 \(E[L] \circ \Gamma[q]\) 正交, 那么 \(\partial_2 \psi \circ \Gamma[q]\) 必须与 \(E[L] \circ \Gamma[q]\) 平行. 所以 \[ E[L] \circ \Gamma[q] = \lambda (\partial_2 \psi \circ \Gamma[q]), \quad (1.232) \] 这就是非完整方程. 要将稳态作用量方程转换为 Arnold 的方程, 我们必须做以下事情. 要从方程 (1.226) 得到方程 (1.231), 我们必须用 \(\xi\) 替换 \(\eta\). 然而, 要从方程 (1.229) 得到方程 (1.230), 我们必须设置 \(\eta=0\) 并用 \(\xi\) 替换 \(D\eta\). 所有非完整方程的“推导”都有类似的识别. 归根结底是这样的: 非完整方程并非源自作用量原理. 它们是别的东西. 它们是否正确取决于它们是否与实验一致. 对于具有坐标约束或导数约束的系统, 我们发现拉格朗日方程可以从用约束增广的拉格朗日量推导出来. 然而, 如果约束不可积, 增广拉格朗日量的拉格朗日方程与非完整系统 (方程 1.225) 不同.95 令 \(L'\) 为具有不可积约束 \(\psi\) 的增广拉格朗日量: \[ L'(t; q, \lambda; \dot{q}, \dot{\lambda}) = L(t, q, \dot{q}) + \lambda \psi(t, q, \dot{q}) \quad (1.233) \] 那么与坐标相关的拉格朗日方程是: \[ 0 = E[L] \circ \Gamma[q] \] \[ + D\lambda (\partial_2 \psi) \circ \Gamma[q] + \lambda D((\partial_2 \psi) \circ \Gamma[q]) - \lambda (\partial_1 \psi) \circ \Gamma[q]. \quad (1.234) \] 与 \(\lambda\) 相关的拉格朗日方程就是约束方程 \[ \psi \circ \Gamma[q] = 0. \quad (1.235) \] 这些方程的一个有趣特征是它们既涉及 \(\lambda\) 又涉及 \(D\lambda\). 因此, 通常的状态变量 q 和 Dq, 以及约束条件, 不足以确定推导出的拉格朗日方程的完整初始条件集, 我们还需要指定 \(\lambda\) 的初始值. 通常, 对于任何特定的物理系统, 方程 (1.225) 和 (1.234) 都不同, 事实上它们有不同的解. 任何一组方程是否准确地模拟物理系统并不明显. 第一种处理非完整系统的方法并非通过对完整情况论证的扩展来证明是合理的, 而另一种方法并未完全确定. 也许这表明模型是不充分的; 需要指定更多关于如何维持约束的细节.

95

: Arnold 等人 [6] 将带有约束添加到拉格朗日量的变分力学称为 Vakonomic mechanics.

Author: 青岛红创翻译

Created: 2025-10-25 Sat 11:59