#import "/book.typ": book-page
#import "/templates/my-template.typ": *

#show: book-page.with(title: "Lagrangian Mechanics")
#show: template

= 拉格朗日力学 (Lagrangian Mechanics)

系统的运动可以通过系统每个部分在每个时刻的位置给出. 这种对运动的描述称为*位形路径 (configuration path)*, 他是一个以时间为自变量的函数. 我们想要一种 path-distinguishing function, 它输入一个位形路径并产生一些输出, 当这个路径是可实现的 (realizable) ------即它是可以在现实中发生的------时, 我们希望这个函数可以具备一些特质. 例如, 我们让输出为零当且仅当路径可实现. 

另外一种更强大的方法, 是利用*变分原理*: 对于每个物理系统我们搞一个 path-distinguishing funtion, 它通过让每个可实现路径相对于其他可能路径有一个平稳点来分辨可实现路径. 平稳点的意思是说, 当自变量的变化是微小的, 那么因变量的变化也是微小的. 在一般的函数中, 它通常表现为一个极值点.

== 位形空间 (Configuration Spaces)

位形就是系统的各种位置状态. 这个系统可以做到的所有位置状态的总体就是它的*位形空间*. 这个位形空间的*维度*就是可以完全确定每个状态所需的最小参数数量, 也可以叫它*自由度*. 但是, 有个情况维度和自由度并不等同, 但现在不用管.

例子: 一个在 $RR^3$ 中无拘无束的刚体, 它的位形由其位置和旋转给出, 共六个自由度.

== 广义坐标 (Generalized Coordinates)

考虑一个维度为 $n$ 的位形空间 $M$, 它可以被一个坐标函数 $chi$ 参数化. $chi$ 将位形空间中的元素映射为 $n$ 个实数组成的 $n$ 元组. 而 $chi$ 是由 $n$ 个相互独立的坐标函数 $chi^i, i=0,dots,n - 1$ 组成. 这里我们迁就一下物理学家, 将下标放在变量右上角. 对于一个位形 $m in M$, $chi^i (m)$ 就是这个位形的广义坐标. 因此, 每个位形空间上的点和一个广义坐标一一对应.

系统的运动被一个位形路径 $gamma$ 描述, 它将时间映射为位形空间的点. 与位形路径对应, *坐标路径* $q = chi compose gamma$ 将时间映射为广义坐标. 顺便定义 $q$ 的导数 $dD(q)$, 即 $dD(q)(t) = (dD(q)^(0) (t), dD(q)^(1) (t), dots, dD(q)^(n-1) (t)) $, 表示广义坐标的变化率.

== 平稳作用量原理 (The Principle of Stationary Action)

我们对运动的经验认为:

- 描述物理运动的位形路径是连续且光滑的;
- 运动不依赖系统的整个历史;
- 运动是可确定的 (deterministic), 这意味着, 我们有足够的参数可以确定下一时刻的状态.

我们对位形路径也有一些经验. 如果一个路径是可实现的, 则其任意一段也应是可实现的; 相对地, 若路径的每一段都是可实现的, 则整条路径也是可实现的. 因此整条路径的可实现性与其上每个点有关, 且只与这些点有关. 换言之, 可实现性是路径的局部属性.

由此我们可以初步构思我们需要的 path-distinguishing function, 它可以是对这条路径上某个局部属性的积分. 这种函数通常叫做系统的一个*作用量 (action)*. 令 $q = chi compose gamma$ 是一条坐标路径, $q(t)$ 是位形在 $t$ 时刻的坐标. 那么在时间段 $[t_1, t_2]$ 上的作用量为 $ S[q](t_1, t_2) = integral_(t_1)^(t_2) F[q]. $ 其中 $F[q]$ 是关于 $q$ 的泛函, 以时间为自变量, 它衡量了 $q$ 上的某些局部属性. 这里我们再迁就一下物理学家, 将 $integral_a^b f(x) dd(x)$ 简记为 $integral_a^b f$.

我们可以将 $F$ 分解为两部分: $ F[q] = L compose Gamma[q]. $ $Gamma$ 是一个元组, 它记录了时间, 当时的坐标, 以及其变化率和高阶导数, 即 $ Gamma[q](t) = (t, q(t), dD(q)(t), dots), $ 这个元组的个数与我们所需的导数阶数有关, 我们称它为*局部元组 (local tuple)*. $Gamma$ 只与具体的路径有关, 而与 $chi$ (即坐标系的选择) 无关. $L$ 与我们的研究物理系统相关, 但不依赖于任何具体的路径. 它将 $Gamma$ 中的某些部分挑出来, 并通过某种运算过程输出一个实数值. 以上的分解可以将我们对整个系统和具体路径的考察分离.

$L$ 称为系统的一个*拉格朗日量 (Lagrangian)*, 而其对应的作用量 $ S[q](t_1, t_2) = integral_(t_1)^(t_2) L compose Gamma[q] $ 称为*拉格朗日作用量 (Lagrangian action)*. 当这个作用量只与时间, 位置和速度相关时, 可以写为 $ S[q](t_1, t_2) = integral_(t_1)^(t_2) L(t, q(t), dD(q)(t)) dd(t). $

我们以后会发现, 许多系统的拉格朗日量都是动能和势能之差. 这类拉格朗日量只与时间, 位形和位形变化率有关.

有一点需要注意的是, 当讨论路径的作用量是否对于路径的变化是平稳值时, 必须限制路径的集合, 使得这个集合中只有一条可实现路径. 

*平稳作用量原理*指出, 对于每个动力系统, 都可以构造出一个拉格朗日量, 使得连接两个时间点 $t_1, t_2$ 之间的位形的可实现路径, 与所有可能路径相比, 其作用量 $S[q](t_1, t_2)$ 相对于路径的变化是平稳的. 我们在后面会看到, 对于上述只与位形和位形变化率有关的拉格朗日量, 路径的变化只需限制在保持 $t_1$ 与 $t_2$ 时刻的位形, 即所有的可能路径只需保证它们在 $t_1, t_2$ 两个时刻的位形相同即可.

== 计算作用量

我们通过几个算例来解释上面的原理.

考虑一个三维空间中的自由粒子. 欧拉和拉格朗日告诉我们, 沿可实现路径的动能的积分相比这两点之间的任意其他路径都小. 只要将动能作为拉格朗日量, 那么自由粒子将遵循静止作用量原理. 我们选用一般的直角坐标系作为广义坐标.

设其拉格朗日量为 $ L(t, x, v) = 1 / 2 m (v dot v), $ 这里 $x, v$ 均为对应维度的元组. 我们用 Scheme 写出来 (对于具体的 Scheme 语法, 请参考附录): 

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

这意味着 $L[m](vz(v)) = 1 / 2 m (vz(v) dot vz(v))$.