---
url: /analytical-mechanics/lesson-4/index.md
---
## Part 3 速度相空间

### · 速度相空间

我们需要知道一个函数在某一点的多少信息，才能完全决定其函数形式？答案已经由泰勒公式告诉我们了：

$$
f(t) = f(t\_0) + f'(t\_0)(t - t\_0) + \frac{1}{2} f''(t\_0)(t - t\_0)^2 + \frac{1}{3!} f'''(t\_0)(t - t\_0)^3 + \cdots.
$$

亦即，完全决定一个函数的形式（至少在某点附近），需要知道函数在某点的无穷阶导数.

幸运的是，对于自然界中绝大部分物理系统，我们只需要测量“位置”和“速度”就可以了.

要做到这一点，唯一的可能就是二阶及以上的导数都由函数在某点的值及其一阶导数完全决定，亦即存在如下的关系
$$
f''(t) = F(f(t), f'(t)).
$$

可以验证，再求导，即有

$$
f''' = \frac{\partial F}{\partial f} f' + \frac{\partial F}{\partial f'} f'' = \frac{\partial F}{\partial f} f' + \frac{\partial F}{\partial f'} F(f, f'),
$$

可见三阶导数也可以由函数及其一阶导数决定. 更高阶的导数，依此类推.
$$
f''(t) = F(f(t), f'(t)).
$$
上式正是 $f(t)$ 所满足的二阶微分方程. 而数学家早已告诉我们，确定二阶微分方程的一个解正需要两个初始条件——位置和速度.

对于一般的物理系统，从广义坐标 ${q^a}$ 出发，**广义速度**（generalized velocity）定义为广义坐标的时间导数

$$
v^a := \frac{\mathrm{d}q^a(t)}{\mathrm{d}t} \equiv \dot{q}^a, \quad a = 1, \cdots, s.
$$

所以，只要系统位形的演化满足二阶微分方程，那么知道此时此刻的广义坐标及其一阶导数——广义速度，就可以完全确定此后任意时刻系统的演化. 从这个意义上说，“坐标”与“速度”即包含系统演化的全部信息.

“坐标”与“速度”合在一起，构成系统的**状态**（state）. 知道某一时刻的状态，原则上就知道了此前或此后任一时刻的状态.

物理系统所有可能状态的集合，即状态空间，也被称作**相空间**（phase space）. 相空间的概念在现代物理学中几乎无处不在，被誉为“现代科学中最强大的发明之一”.

这里的“相”指的就是系统的状态（与复数的“相位”并没有关系，虽然两者的英文都是“phase”）. 具体到“坐标”和“速度”构成的状态空间，被称为**速度相空间**（velocity phase space）⁶. 速度相空间中的一点 ${\boldsymbol{q}, \dot{\boldsymbol{q}}}$，代表系统的一种可能的状态. 因此，

> 相空间的维数 = 唯一确定系统演化的独立参量的个数

对于点粒子系统，速度相空间的维数总是偶数维的. 这是因为点粒子系统的运动方程总是需要偶数个初始条件.

将时间轴加入进来，速度相空间中的点也随时间演化扫出一条条的曲线. 但是因为给定一个时刻的状态，就唯一决定了此前和此后所有时刻的状态. 所以速度相空间中的点随时间扫出的曲线是永不相交的.

![](https://pic1.imgdb.cn/item/693eb770696670b0b6596d81.png)

给定系统状态的初始值，就可以得到唯一一条相流曲线. 因此系统运动方程的通解就是一族曲线. 这族曲线在相空间的投影即所谓“相轨迹”或者“相流”，相应的图被称作“相图”.

### · 广义速度变换

在下面的坐标变换中，
$$
q^a \to \bar{q}^a = \bar{q}^a(t, \boldsymbol{q})
$$
广义速度的变换为
$$
\dot{\tilde{q}}^a = \frac{\mathrm{d}\tilde{q}^a}{\mathrm{d}t} = \frac{\partial \tilde{q}^a}{\partial q^b} \dot{q}^b.
$$

逆变换即

$$
\dot{q}^a = \frac{\mathrm{d}q^a}{\mathrm{d}t} = \frac{\partial q^a}{\partial \tilde{q}^b} \dot{\tilde{q}}^b.
$$

注意雅可比矩阵 $\dfrac{\partial \tilde{q}^a}{\partial q^b}$ 和 $\dfrac{\partial q^a}{\partial \tilde{q}^b}$ 都只是广义坐标的函数，因此还可得到

$$
\frac{\partial \dot{\tilde{q}}^a}{\partial \dot{q}^b} = \frac{\partial \tilde{q}^a}{\partial q^b}, \quad \frac{\partial \dot{q}^a}{\partial \dot{\tilde{q}}^b} = \frac{\partial q^a}{\partial \tilde{q}^b},
$$

即速度之间的偏导数关系等于坐标之间的偏导数关系，这是正是广义速度作为矢量在坐标变换下的变换关系.

## Part 4 约束

### · 定义

物理系统的状态空间中有些地方是无法到达的. 实际能够到达的，只是状态空间的某个子空间.

这种对系统所能达到的状态（即广义坐标和广义速度）所强加的运动学限制条件即**约束**（constraint）. 这里“运动学”表明约束和相互作用、亦即动力学（加速度）没有关系.

约束是对系统状态的限制，也就是对“坐标”和“速度”的限制. 对于位形参数为 ${q^1, \cdots, q^m}$ 的系统，约束的一般数学表达式为

$$
\phi(t, q^1, \cdots, q^m, \dot{q}^1, \cdots, \dot{q}^m) = 0.
$$

### · 分类

根据不同的目的，可以对约束做出各种分类. 比如，根据约束方程是否显含时间，可以将约束分为**定常约束**（scleronomous constraint，又叫稳定约束）和**非定常约束**（rheonomous constraint，又叫不稳定约束）. 约束方程不显含时间，即

$$
\phi(q^1, \cdots, q^m, \dot{q}^1, \cdots, \dot{q}^m) = 0,
$$

为定常约束. 反之，则是非定常约束. 需要强调的是，定常约束在另一个有相对运动的参考系中看，则表现为一个非定常约束. 但反过来，不是所有非定常约束都可通过参考系变换成为定常约束.

根据约束方程是“等式”还是“不等式”，又可以将约束分为**双侧约束**（bilateral constraint）和**单侧约束**（unilateral constraint）. 粒子始终不能脱离约束，即约束是“等式”，则是双侧约束. 而如果粒子可以在某一方面脱离约束，即约束是“不等式”

$$
\phi(t, q^1, \cdots, q^m, \dot{q}^1, \cdots, \dot{q}^m) \leq 0,
$$

则是单侧约束. 例如，小球被限制在球壳内运动，即是单侧约束.

约束最重要的一种分类是所谓**完整约束**和**非完整约束**. 约束方程具有形式

$$
\phi(t, q^1, \cdots, q^m) = 0,
$$

的约束被称作**完整约束**（holonomic constraint，又叫几何约束）. 完整约束是广义坐标之间的约束关系，是对系统“可能位形”的直接限制. 完整约束表明有些广义坐标其实不是独立的，可以直接用其他（真正独立的）广义坐标表示出来.

如果一个系统的所有约束皆为完整约束，则该系统称为**完整系统**（holonomic system）. 若一个用 $m$ 个位形参量 ${q^1, \cdots, q^m}$ 描述的系统，存在且只存在 $k$ 个独立的完整约束
$$
\phi\_\alpha(t, q^1, \cdots, q^m) = 0, \quad \alpha = 1, \cdots, k,
$$

则系统独立的广义坐标数为

$$
s = m - k.
$$

广义坐标的优点在存在约束时更加凸显. 例如，考虑 $N$ 个粒子构成的体系，存在 $k$ 个完整约束，基于牛顿力学的求解方法需要求解 $N$ 个粒子的运动方程外加 $k$ 个约束方程，亦即总共 $3N + k$ 个方程.

而如果从一开始就选取合适的广义坐标，${q^1, q^2, \cdots, q^{3N-k}}$，则只需要求解这 $3N - k$ 个独立的广义坐标的方程，从而大大简化了计算.

所有不是完整约束的约束——亦即，约束方程无法写成 $\phi(t, q^1, \cdots, q^m) = 0$ 形式的约束——即是**非完整约束**（nonholonomic constraint 或 anholonomic constraint）. 例如，单侧约束就是一种非完整约束.

非完整约束中最重要的一类是所谓**不可积微分约束**（non-integrable differential constraints）. 所谓微分约束，即约束方程形如
$$
\phi(t, q^1, \cdots, q^m, \dot{q}^1, \cdots, \dot{q}^m) = 0,
$$

简言之，就是约束包含速度——坐标的微分. 一个“完整约束”必然诱导出对应的“微分约束”（即也对速度给出限制）.

所以微分约束并不必然是非完整的，只要“微分约束”可以积分，就等价于一个完整约束. 但是，一般的微分约束并不能通过积分写成完整约束的形式. 以下如无特别说明，我们提到非完整约束时，指的都是不可积微分约束.

如果一个系统含有非完整约束，则称为**非完整系统**（nonholonomic system）. 需要强调的是，完整系统要求系统的所有约束都是完整的，而只要存在一个非完整约束，系统就是非完整系统.

/example/

> 独轮车（unicycle）是最简单的不可积微分约束的例子.
>
> ![](https://pic1.imgdb.cn/item/693ebb2e696670b0b65985c6.png)
>
> 如图所示，半径为 $R$ 的轮子，在水平面上做纯滚动（即轮子不打滑）. 简单起见，假定轮面和水平面垂直. 可用 4 个参量描述此体系的“位形”：轮心的水平坐标 $x, y$，轮面与 $x$ 轴方向夹角 $\theta$，以及轮子自转角 $\phi$.
>
> 但是这 4 个参量彼此不完全独立，因为“纯滚动”的条件给出了参量之间的联系. 轮子转动的角速度为 $\dot{\phi}$，纯滚动的条件意味着轮心的运动速率 $v$ 满足 $v = R\dot{\phi}$，轮心水平位置的速度则满足 $\dot{x} = v\cos\theta$ 和 $\dot{y} = v\sin\theta$. 于是得到两个约束方程
> $$
> \phi\_1 \equiv \dot{x} - R\dot{\phi}\cos\theta = 0, \quad \phi\_2 \equiv \dot{y} - R\dot{\phi}\sin\theta = 0.
> $$
>
> 这是关于 ${x, y, \theta, \phi}$ 这 4 个位形参量的 2 个微分约束. 但是，我们却无法将约束积分，得到 4 个参量之间的代数关系，从而直接消除参量的独立性. 直观上，从任一点开始，轮子转一圈回到原点，这时 $x, y, \theta$ 都回到初始值，
>
> 但是 $\phi$ 却取决于转圈半径. 这正反映了 $\phi$ 和 $x, y, \theta$ 之间并没有直接的代数关系，或者说其关系取决于具体的路径. 现在证明，两个微分约束是不可积的. 首先，两个微分约束可以写成
> $$
> \mathrm{d}x - R\cos\theta,\mathrm{d}\phi = 0, \quad \mathrm{d}y - R\sin\theta,\mathrm{d}\phi = 0.
> $$
>
> 数学上可以证明，微分式 $F\_1\mathrm{d}x^1 + F\_2\mathrm{d}x^2 + F\_3\mathrm{d}x^3$ 乘以某积分因子 $\lambda$ 后是全微分，亦即存在 $\Phi$ 使得 $\mathrm{d}\Phi = \lambda(F\_1\mathrm{d}x^1 + F\_2\mathrm{d}x^2 + F\_3\mathrm{d}x^3)$ 的充分必要条件是：
>
> $$
> F\_1\left(\frac{\partial F\_2}{\partial x^3} - \frac{\partial F\_3}{\partial x^2}\right) + F\_2\left(\frac{\partial F\_3}{\partial x^1} - \frac{\partial F\_1}{\partial x^3}\right) + F\_3\left(\frac{\partial F\_1}{\partial x^2} - \frac{\partial F\_2}{\partial x^1}\right) = 0,
> $$
>
> 由此看出两个微分式都不满足，即左边不是全微分，因此不可积.
>
> 当然，有一个特殊情况，即 $\theta = \theta\_0$ 为常数. 这时轮子沿着一条直线滚动，问题转化为一个 1 维问题. 这时可以直接积分得到
> $$
> x - R\phi\cos\theta\_0 + c\_1 = 0, \quad y - R\phi\sin\theta\_0 + c\_2 = 0,
> $$
>
> 即等价于 2 个完整约束. 这时系统只有 1 个独立的广义坐标，可以取为 $\phi$.

前面已经提到，完整约束是直接对系统的位形做出限制，从而直接减少了独立的广义坐标个数. 非完整约束并不直接限制系统可能的位形，而只限制系统从一个位形演化到另一个位形的方式.

换句话说，非完整约束的存在并没有“完完整整地”减少描述系统位形所需的独立广义坐标的个数，所谓“非完整”的意义也正在于此. 实际上，这也正是赫兹最初引入完整和非完整约束分类的动机. 赫兹将完整系统定义为“在所有可能的位置之间，所有的连续运动也都是可能的”.

反过来，如果连接两个可能位置之间的某些运动方式受到限制，就被称作非完整系统. 形象点说，

$$
\phi(t, q^1, \cdots, q^m) = 0,
$$
形式的完整约束是对“位形”进行限制，告诉你那些地方不能去. 而

$$
\phi(t, q^1, \cdots, q^m, \dot{q}^1, \cdots, \dot{q}^m) = 0,
$$
形式的非完整约束对“速度”做出了限制，告诉你那些方向走不了，但是最终仍然想去哪里就去哪里⁸. 这就导致非完整系统的一个非常有趣的结果，即沿着位形空间中一条闭合曲线一周，其状态却发生了改变. 换句话说，非完整系统的演化具有“路径依赖”的特性.

本书主要关注完整约束. 从某种意义上，通过曲线、曲面、容器壁强加的非完整约束，只是宏观上的近似或有效描述，而在微观上都是原子、分子的电磁力的相互作用.

/example/

> 非完整约束更有趣的例子是两轮车（例如自行车）及四轮车（例如小汽车）.
>
> ![](https://pic1.imgdb.cn/item/693ebb2c696670b0b65985c4.png)
>
> 轮子半径为 $R$，两轮心距离为 $l$. 轮子在水平面上做纯滚动，后轮方向固定，通过前轮转向.
>
> 简单起见，假设轮面与水平面垂直. 为了描述此体系的位形，首先可以确定后轮的水平位置 ${x, y}$，以及后轮的偏向角 $\phi$，以及后轮的自转角 $\alpha\_B$. 这时，前轮的水平位置也随之确定了，由几何关系得到
> $$
> x\_A = x - l\sin\phi, \quad y\_A = y + l\cos\phi.
> $$
>
> 能够调节的还有前轮的转向角 $\theta$，以及前轮的自转角 $\alpha\_A$. 所以此体系的位形需要用 6 个参量 ${x, y, \theta, \phi, \alpha\_A, \alpha\_B}$ 来确定. 注意当前轮的转向角 $\theta$ 固定时，前后轮的运动轨迹是同心圆，圆心 $O$ 则是前后轮面垂线的交点.
>
> 由于轮子纯滚动，给这 6 个参量之间在微分层次上带来了约束. 和独轮车的情形一样，轮子转动的角速度和轮心的水平速率成正比，对于后轮即有
> $$
> \dot{x} = -R\dot{\alpha}\_B\sin\phi, \quad \dot{y} = R\dot{\alpha}\_B\cos\phi,
> $$
>
> 对于前轮即有
>
> $$
> \dot{x} - l\dot{\phi}\cos\phi = -R\dot{\alpha}\_A\sin(\theta + \phi), \quad \dot{y} - l\dot{\phi}\sin\phi = R\dot{\alpha}\_A\cos(\theta + \phi).
> $$
>
> 由上式重新组合，也可以得到等价的、几何意义更明显的约束方程
>
> $$
> R\dot{\alpha}\_A\cos\theta = R\dot{\alpha}\_B, \quad R\dot{\alpha}\_B = l\cot\theta\dot{\phi}.
> $$
>
> 总之，对于两轮车，6 个广义坐标满足 4 个非完整约束.

## Part 5 自由度

完整约束直接消除了广义坐标之间的独立性，表明广义坐标之间有约束关系. 这种关系既体现在广义坐标之间，也体现在广义坐标的“变分”之间. 由约束方程 $\phi(t, \boldsymbol{q}) = 0$ 变分得到

$$
\delta\phi = \sum\_{a=1}^m \frac{\partial\phi}{\partial q^a} \delta q^a = 0.
$$

其表明广义坐标变分之间也不是独立的，满足上面的线性关系，上式具有非常直观的几何意义，一个完整约束可视为位形空间中的一张曲面，系统的位形限制在这张曲面上，因此广义坐标的变分也必然限制在约束面上.

上式中的 $\dfrac{\partial\phi}{\partial q^a}$ 即约束面在位形空间中的梯度，即约束面的法向 $\nabla\phi$；上式也表明广义坐标变分 $\delta\boldsymbol{q}$ 与约束面的法向 $\nabla\phi$ 正交，即切于约束面.

![](https://pic1.imgdb.cn/item/693ebbfc696670b0b65987e7.png)

对于非完整系统，无法用代数方法消除广义坐标之间的独立性，但是因为广义速度之间存在约束关系，这就同样导致广义坐标的“变分”之间存在关系. 例如独轮车，独立广义坐标是 4，但是约束意味着

$$
\delta x - R\cos\theta,\delta\phi = 0, \quad \delta y - R\sin\theta,\delta\phi = 0,
$$

即 4 个广义坐标的变分满足 2 个约束关系.

对于完整系统，一个重要的特征量即独立广义坐标的数目，且每一个完整约束降低一个独立广义坐标变分的数目. 而对于非完整约束，约束本身并不能降低独立广义坐标变分的数目，而只能降低独立广义坐标“变分”的数目.

可见，相较于独立广义坐标数目本身，独立的广义坐标“变分”的数目更能反映出系统的性质. 这就导致了**自由度**（degrees of freedom）的概念.

简言之，自由度即独立广义坐标变分的数目. 例如对于独轮车，4 个独立的广义坐标，在变分的意义上只有 2 个是独立的，因此自由度是 $4 - 2 = 2$. 需要强调的是，自由度是系统的内禀属性，与具体广义坐标的选取无关.

一个完整约束同时减少一个独立坐标与一个独立速度分量. 一个非完整约束只减少一个独立速度分量. 对于非完整约束，广义坐标的个数通常大于真正的自由度. 亦即，我们需要额外的变量来参数化其位形，这正体现了非完整系统路径依赖的特性. 总之，

> 完整系统：自由度 = 广义坐标个数
>
> 非完整系统：自由度 < 广义坐标个数

物理系统的时间演化由微分方程描述，从微分方程定解的角度，问题可以归结为我们需要知道多少个独立的初始条件，才能确定一组定解. 或者说，我们有多少个独立参数，可以用以调节从而得到系统不同的演化.

这一问题也被称作**柯西初值问题**（Cauchy initial value problem）. 对于自然界常见的系统，约定每 1 个自由度的演化由其广义坐标和广义速度（即状态）的初值、即 2 个参数决定. 在这个意义上，自由度可以等价地定义为：

> 自由度 $= \dfrac{1}{2} \times$ 唯一确定系统状态的独立参数的个数
>
> $= \dfrac{1}{2} \times$ 唯一确定系统演化的初始条件的个数
>
> $= \dfrac{1}{2} \times$ 相空间的维数

对于点粒子系统，相空间的维数总是偶数，于是保证了自由度都是整数.

对于具体的物理系统，有的自由度一望即知，有的则需要经过一些分析和计算.

此外，以上的讨论都是基于已知约束的假设. 而更常见的情形是——尤其当推广至力学系统之外时（例如电磁场、引力场），经常是由一些基本原理（例如对称性）出发建立系统的模型，之后再分析了解约束的存在及性质.
