虚功

在分析力学里，施加于某物体的作用力，由于给定的虚位移，所做的机械功，称为虚功（virtual work）。以方程式表达，虚功$\delta W$是

$\delta W= \mathbf{F} \cdot \delta \mathbf{r}$。

其中，$\mathbf{F}$是作用力，$\delta \mathbf{r}$是虚位移。

在这篇文章里，位移指的是平移运动所造成的位移或旋转运动所造成的角位移；作用力指的是力量或力矩。虚位移不是实际的位移，而是一种虚构的、理论上的位移，是一种只涉及位置，不涉及时间的变化。每一个虚位移既是自变量（independent variable），又是任意设定的。任意性是一个很重要的特性，在数学关系式里，能够推导出许多重要的结果。例如，思考下述矩阵方程式：

$\mathbf{R}^{T} \mathbf{r} = \mathbf{R}^{T} \mathbf{B} \mathbf{q}$。

其中，$\mathbf{R},\ \mathbf{r},\ \mathbf{q}$都是向量，$\mathbf{B}$是方块矩阵。

假若，$\mathbf{R}$是个任意非零向量，则可以将任意项目$\mathbf{R}$从方程式中除去，得到$\mathbf{r} = \mathbf{B} \mathbf{q}$。

## 虚功原理

虚功原理阐明，一个物理系统处于静态平衡（static equilibrium），当且仅当，所有施加的外力，经过符合约束条件的虚位移，所做的虚功的总和等于零。以方程式表达。

$\delta W = \sum_{i} \mathbf{F}_{i}\cdot \delta \mathbf{r}_i = 0$。

考虑一个由一群质点组成，呈静态平衡的物理系统，其内部任意一个质点$P_i$可能感受到很多个作用力。这些作用力的总和$\mathbf {F}_{i}^{(T)}$等于零：

$\mathbf {F}_{i}^{(T)} = 0$。

给予这质点$P_i$ 虚位移$\delta \mathbf r_i$，则合力$\mathbf {F}_{i}^{(T)}$所做的虚功$\delta W_i$为零：

$\delta W_i = \mathbf{F}_{i}^{(T)} \cdot \delta \mathbf{r}_i = 0$。

总合这系统内做于每一个质点的虚功，其答案也是零：

$\delta W = \sum_{i}\ \mathbf{F}_{i}^{(T)} \cdot \delta \mathbf{r}_i = 0$。

将合力细分为外力$\mathbf F_i$与约束力$\mathbf C_i$：

$\delta W = \sum_{i} \mathbf{F}_{i} \cdot \delta \mathbf{r}_i + \sum_{i} \mathbf {C}_{i} \cdot \delta \mathbf{r}_i = 0$。

假设所有约束力所做的符合约束条件的虚功，其总合是零：

$\sum_{i} \mathbf {C}_{i} \cdot \delta \mathbf{r}_i = 0$。

则约束力项目可以从方程式中除去，从而得到虚功原理的方程式：

$\delta W = \sum_{i} \mathbf{F}_{i}\cdot \delta \mathbf{r}_i = 0$。

注意到这推论里的约束力假设。在这里，约束力就是牛顿第三定律的反作用力。因此，可以称此假设为反作用力的虚功假设：所有反作用力所做的符合约束条件的虚功，其总合是零。这是分析力学额外设立的假设，无法从牛顿运动定律推导出来。

在动力学里，虚功原理会被推广为达朗贝尔原理。这原理是拉格朗日力学的理论基础。更详尽细节，请参阅相关条目。

### 适用案例

在此特别列出几个案例，展示出约束力所做的符合约束条件的虚功的总合是零：

- 刚体的约束条件是一种完整约束，以方程式表达，$(\mathbf{r}_i-\mathbf{r}_j)^2=L_{ij}^2$；其中，刚体内部的质点$P_i$、$P_j$的位置分别为$\mathbf{r}_i$、$\mathbf{r}_j$，它们之间的距离$L_{ij}$是个常数。所以，两个质点的虚位移$\delta\mathbf{r}_i$、$\delta\mathbf{r}_j$之间的关系为

$\delta(\mathbf{r}_i-\mathbf{r}_j)^2=2(\mathbf{r}_i - \mathbf{r}_j)(\delta\mathbf{r}_i - \delta\mathbf{r}_j)=0$。

在这里，有两种可能的状况：

1、$\delta\mathbf{r}_i=\delta\mathbf{r}_j$：

对于这状况，由于$\mathbf{C}_{ji}= - \mathbf{C}_{ij}$，两个作用力所做的虚功相互抵销，也就是说。

$\mathbf{C}_{ij}\cdot\delta\mathbf{r}_i+\mathbf{C}_{ji}\cdot\delta\mathbf{r}_j=0$。

所以，约束力所做的虚功的总合是零。

2、$(\mathbf{r}_i - \mathbf{r}_j)\perp(\delta\mathbf{r}_i - \delta\mathbf{r}_j)$ :

由于$\mathbf{C}_{ij}\ \|\ \mathbf{C}_{ji}\ \|\ (\mathbf{r}_i-\mathbf{r}_j)$。

$\mathbf{C}_{ij}\cdot\delta\mathbf{r}_i+\mathbf{C}_{ji}\cdot\delta\mathbf{r}_j=\mathbf{C}_{ij}\cdot\delta\mathbf{r}_i - \mathbf{C}_{ij}\cdot\delta\mathbf{r}_j=\mathbf{C}_{ij}\cdot (\delta\mathbf{r}_i - \delta\mathbf{r}_j)=0$。

所以，约束力所做的虚功的总合是零。

所以，在刚体内，质点与质点之间的约束力所作的虚功的总合是零。

- 思考置放于平滑地面上的一块木块。因为木块的重量，而产生的反作用力，是地面施加于木块的一种约束力。注意到对于这案例，符合约束条件的虚位移必须与地面平行，所以，地面施加的约束力垂直于虚位移，它所作的虚功等于零。

### 在位形空间的意义

将一般的作用力和坐标分别变换为以广义力$\mathcal{F}_i$和广义坐标$q_i$表达。

$\delta W = \sum_{i} \mathcal{F}_i \delta q_i = 0$。

设定一个$N$维位形空间，其坐标为$(q_1,q_2,\dots,q_N)$，其内中表示位置的点称为位形点。想像这物理系统移动于这位形空间。在这位形空间里，广义力$\boldsymbol{\mathcal{F}}=(F_1,F_2,\dots,F_N)$垂直于符合约束条件的虚位移$\delta\mathbf{q}=(\delta q_1,\delta q_2,\dots,\delta q_N)$。

假设，这物理系统没有任何约束条件，则虚位移可以是任意向量。但是，广义力$\boldsymbol{\mathcal{F}}$不可能垂直于$N$维位形空间里的每一个向量，所以，广义力$\boldsymbol{\mathcal{F}}$必须等于零。

假设，这物理系统有$L$个约束条件，则自由度为$N - L$，位形点必需处于位形空间的某$N - L$维子空间，而广义力$\boldsymbol{\mathcal{F}}$必须垂直于这子空间，因此必需使用$N - L$个运动方程式来表达这物理系统。

### 保守系统

假设这系统是保守系统，则每一个广义力都是纯量的广义位势函数$V(q_1,q_2,\dots,q_N)$的对于其对应的广义坐标的负偏导数：

$F_{i} = - \frac{\partial V}{\partial q_i}$。

虚功与广义位势的关系为

$\delta W = \sum_{i} - \frac{\partial V}{\partial q_i} \delta q_i = - \delta V=0$。

由于位势的变分$\delta V$等于零，一个静态平衡系统的位势$V$乃是个局域平稳值。注意到这系统只处于平稳状态。假设，要求这系统处于稳定状态，则位势$V$必须是个局域极小值。