Tensor Analysis (3) Tensor Calculus

Abstract. 一些多元微积分的内容,严格来说和 Tensor 关系不大,和 Vector 关系比较大。就当是学物理了。

之前看过一次这一章,实际上没怎么看懂,写的东西很不得要领,于是删了重写。

Notation

书中记号非常混乱,疑似是在试图缝合每种主义的优点。

所有向量用粗斜体字母表示,例如 $\boldsymbol{x}$。标量则用正常斜体表示。二阶张量用粗正体表示,如 $\mathbf{T}$。

对于时间 $t$ 求导采用 Newton’s Notation,即

$$
\dot{\boldsymbol{x}} = \frac{\mathrm{d}\boldsymbol{x}}{\mathrm{d}t}
$$

求偏导采用 Leibniz’s Notation 和一种不知名的记号(一种形似 Legendre 发明的偏导记号的东西)。如下面的式子表示 $x^i$ 对 $u^j$ 求偏导:

$$
\frac{\partial x^i}{\partial u^j} = x^i_{, j}
$$

RHS 可以简单地表示连续求两次偏导

$$
x^k_{, ij} = \frac{\partial^2 x^k}{\partial i \partial j}
$$

我们仍然接受 Einstein Summation Convention。

考虑实际情况,所有函数均假设在 $\mathbb{R}^n$ 上有连续的偏导数。

Conservation Laws

直接从微积分的角度推导守恒定律,回忆求导法则对于向量仍然成立,因此

$$
\boldsymbol{f}\cdot\dot{\boldsymbol{x}} = m\ddot{\boldsymbol{x}}\dot{x} = (\frac 12 m \dot{\boldsymbol{x}}^2)’ = \dot{k}
$$

两边乘 $\mathrm{d}t$ 得到动能定理

$$
\boldsymbol{x}\times\boldsymbol{f} = m\boldsymbol{x}\times\ddot{\boldsymbol{x}} = (\boldsymbol{x}\times m\dot{\boldsymbol{x}})’ = \dot{\boldsymbol{I}}_O
$$

两边乘 $\mathrm{d}t$ 得到角动能定理。(这里需要注意 $\dot{\boldsymbol{x}}\times\dot{\boldsymbol{x}} = \boldsymbol{0}$)

若存在势能函数 $E_p(\boldsymbol{x})$ 使得 $\boldsymbol{f}\cdot\dot{\boldsymbol{x}} = -\dot{E_p}$,称 $\boldsymbol{f}$ 为保守力,此时有能量守恒

$$
k + E_p = constant
$$

Newton’s Law in General Coordinates

书上这里讲了极坐标下的特例,并写了一般形式作为对照。我们这里尝试只推导一般形式,极坐标形式可以自行模拟。

已知牛顿定律在 $\boldsymbol{e}_1, …, \boldsymbol{e}_n$ 下的形式,出于推导其他坐标系(比如极坐标)下牛顿定律形式的需要,假定现在我们引入了 $n$ 个新变元 $u^1, …, u^n$(均为关于时间 $t$ 的函数),设

$$
\boldsymbol{x} = \hat{\boldsymbol{x}}(u^j) = \hat{x}^i(u^j)\boldsymbol{e}_i
$$

此时为了推导速度的表达式,我们需要对位矢关于 $t$ 求导,根据链式法则

$$
\boldsymbol{v} = \dot{\boldsymbol{x}} = \frac{\partial \boldsymbol{x}}{\partial u^i} \dot{u}^i
$$

此时令

$$
\boldsymbol{g}_i = \frac{\partial \boldsymbol{x}}{\partial u^i} = \frac{\partial x^j}{\partial u^i}\boldsymbol{e}_j
$$

容易想象,在极坐标系下这里你会得到 $\boldsymbol{g}_r = \cos\theta \boldsymbol{e}_x + \sin\theta \boldsymbol{e}_y, \boldsymbol{g}_\theta = r(-\sin\theta\boldsymbol{e}_x + \cos\theta\boldsymbol{e}_y)$,也就是一个径向向量和一个切向向量。

如果这个变换是一个良定义的坐标变换,应当要求它是一个一一映射,根据隐函数存在定理需要满足[1]

$$
\frac{D(x_1, …, x_n)}{D(u^1, …, u^n)} = J(\boldsymbol{g}_1, …, \boldsymbol{g}_n)\ne 0
$$

故此时 $\boldsymbol{g}_1, …, \boldsymbol{g}_n$ 是平面的一组基,称为 $u^j-$坐标系的 cellar base vector。(事实上条件可以略放松一点,可以在测度为 $0$ 的点集上违反这个条件,如极坐标下原点处 $J = 0$,此时 $\boldsymbol{g}$ 并不是一组基,但可以忽略不计)

由式 $(8)$ 立即得到此时速度 $\boldsymbol{v}$ 在此坐标系下的分量 $v^i$ 是

$$
v^i = \dot{u}^j
$$

也就是说

$$
\boldsymbol{v} = v^i\boldsymbol{g}_i
$$

求出 $\boldsymbol{g}_i$ 的 reciprocal base vector $\boldsymbol{g}^i$,定义 $\boldsymbol{v}$ 的 Physical Component

$$
\boldsymbol{v}^{(i)} = \boldsymbol{v}\cdot\bar{\boldsymbol{g}}^i = \frac{v}{||\boldsymbol{g}^i||}
$$

注意这里求解 reciprocal base vector 的 motivation 是我们已经有了一个在 $\boldsymbol{g}$ 下的坐标,而分量的值一定是 $\boldsymbol{v}$ 和某个向量的点乘结果,结合上一章可以知道这里应该取 reciprocal base vector。

如果是在极坐标下,此时你应该求得

$$
v^{(r)} = \dot{r}, v^{(\theta)} = r\dot{\theta}
$$

符合自然坐标系下速度分解的结果。

Christoffel Symbols

Motivation. 尝试推导加速度的表达式,直接求导得到

$$
\boldsymbol{a} = \dot{\boldsymbol{v}} = \dot{v}^i\boldsymbol{g}_i + v^i\dot{\boldsymbol{g}}_i
$$

此时我们想要得到 $\boldsymbol{g_i}$ 下的坐标,因此不希望出现 $\dot{\boldsymbol{g}}_i$。故进行如下讨论。

直接计算 $\dot{\boldsymbol{g}}_i$ 得 [2]

$$
\dot{\boldsymbol{g}}_i = \frac{\partial \boldsymbol{g}_i}{\partial u^j} \dot{u}^j = v^j \boldsymbol{g}_{i ,j}
$$

根据我们作的连续偏导假设,有

$$
\boldsymbol{g}_{i, j} = \boldsymbol{x}_{, ij} = \boldsymbol{x}_{, ji} = \boldsymbol{g}_{j, i}
$$

现在希望求 $\boldsymbol{g}_{i, j}$ 在 $\boldsymbol{g}_1, …, \boldsymbol{g}_n$ 下的坐标。换言之,我们需要求出一组系数 $\Gamma_{ij}^1, …, \Gamma_{ij}^n$ 使得

$$
\boldsymbol{g}_{i, j} = \Gamma_{ij}^k\boldsymbol{g}_k
$$

这些 $\Gamma_{ij}^k$ 称为 Christoffel Symbol。此时

$$
\dot{\boldsymbol{g}}_i = v^j\Gamma_{ij}^k\boldsymbol{g}_k
$$

代入式 $(15)$ 得到

$$
a^k = \dot{v}^k + v^iv^j\Gamma_{ij}^k
$$

式 $(17)$ 启发我们先求出 $\boldsymbol{g}_{i, j}$ 在 $\boldsymbol{e}_1, …, \boldsymbol{e}_n$ 下的表示,然后将基反演为 $\boldsymbol{g}_1, …, \boldsymbol{g}_n$。[3]

$$
\begin{aligned}
\boldsymbol{g}_{ij} &= x^p_{, ij}\boldsymbol{e}^p \\
&= x^p_{, ij}u^{k}_{, p}\boldsymbol{g}_k
\end{aligned}
$$

求解需要用到逆映射存在定理,做法是解方程组 [1]。如果你和我一样对多元微积分不够熟悉,可能会对这个变换感到迷惑。这时候你也可以根据 $\boldsymbol{g}$ 和 $\boldsymbol{e}$ 之间的关系进行矩阵求逆,暴力反演。对于原书上的这个比较简洁的形式我们简单补充一些书上没有的推导。

Derivation

$$
\boldsymbol{G} = \begin{pmatrix}
\boldsymbol{g}_1 \\
\vdots \\
\boldsymbol{g}_n
\end{pmatrix} \in \mathbb{M}_{n\times 1}(\mathbb{R}^n), \boldsymbol{I} = \begin{pmatrix}
\boldsymbol{e}_1 \\
\vdots \\
\boldsymbol{e}_n
\end{pmatrix} \in \mathbb{M}_{n\times 1}(\mathbb{R}^n)
$$

那么有

$$
\boldsymbol{G} = \begin{pmatrix}
\frac{\partial x_1}{u^1} & \cdots & \frac{\partial x_n}{u^1} \\
\vdots & & \vdots \\
\frac{\partial x_1}{u^n} & \cdots & \frac{\partial x_n}{u^n}
\end{pmatrix} \boldsymbol{E} = \boldsymbol{J}^T \boldsymbol{E}
$$

两边取转置并反解得到

$$
\boldsymbol{G}^T\boldsymbol{J}^{-1} = \boldsymbol{E}^T
$$

由于映射是良定义的,$\det \boldsymbol{J}\ne 0$,由逆映射存在定理,此时 $u^j$ 可以被表示成 $x_i$ 的函数,并且可以求出偏导。具体地,我们有

$$
\begin{cases}
x_1 = x_1(u^1, …, u^n) \\
\vdots \\
x_n = x_n(u^1, …, u^n)
\end{cases}
$$

所有式子两边对 $x_i$ 求偏导得到关于 $(\partial u^j / \partial x_i)$ 的线性方程组,写成矩阵形式即

$$
\begin{pmatrix}
0 \\
\vdots \\
1_i \\
\vdots \\
0
\end{pmatrix} = \begin{pmatrix}
\frac{\partial x_1}{u^1} & \cdots & \frac{\partial x_1}{\partial u^n} \\
\vdots & & \vdots \\
\frac{\partial x_n}{u^1} & \cdots & \frac{\partial x_n}{\partial u^n}
\end{pmatrix} \begin{pmatrix}
\frac{\partial u^1}{\partial x_i} \\
\vdots
\frac{\partial u^n}{\partial x_i}
\end{pmatrix} = \boldsymbol{J}\begin{pmatrix}
\frac{\partial u^1}{\partial x_i} \\
\vdots \\
\frac{\partial u^n}{\partial x_i}
\end{pmatrix}
$$

反解得到

$$
\begin{pmatrix}
\frac{\partial u^1}{\partial x_i} \\
\vdots \\
\frac{\partial u^n}{\partial x_i}
\end{pmatrix} = \boldsymbol{J}^{-1} \begin{pmatrix}
0 \\
\vdots \\
1_i \\
\vdots \\
0
\end{pmatrix}
$$

两边同时点乘 $\boldsymbol{G}^T$ 得到

$$
\frac{\partial u^k}{\partial x_i}\boldsymbol{g}_k = \boldsymbol{e}_i
$$

得证。

对比系数可知

$$
\Gamma_{ij}^k = x^ p_{, ij} u^ k_{, p}
$$

得到了 $\Gamma$ 之后自然可以求得 $\boldsymbol{a}$ 在自然坐标系下的分解形式:

$$
a^{(i)} = (\ddot{u}^i + \dot{u}^p\dot{u}^q\Gamma^i_{pq}) / ||\boldsymbol{g}^i||
$$

如果是在平面极坐标下,你应当得到 $\Gamma_{r\theta}^{\theta} = r^{-1}, \Gamma_{\theta\theta}^r = -r$,其余 $\Gamma$ 均为 $0$。带入后得到

$$
\begin{align}
a^{(r)} &= \ddot{r} - r\dot{\theta}^2 \\
a^{(\theta)} &= r\ddot{\theta} + 2\dot{r}\dot{\theta}
\end{align}
$$

和熟知的结果相符。

回收一下标题。若已知 $\boldsymbol{f}$ 在 $\boldsymbol{g_1}, …, \boldsymbol{g}_n$ 下的分解式为

$$
\boldsymbol{f} = f^i\boldsymbol{g}_i
$$

而根据牛顿定律

$$
\boldsymbol{f} = m\boldsymbol{a} = m(\ddot{u}^i + \dot{u}^p\dot{u}^q\Gamma^i_{pq})\boldsymbol{g}_i
$$

由于 $\boldsymbol{g}_1, …, \boldsymbol{g}_n$ 是一组基,我们可以得到

$$
f^i = m(\ddot{u}^i + \dot{u}^p\dot{u}^q\Gamma^i_{pq})
$$

Computation of the Christoffel Symbols

上面的利用逆映射存在定理解方程的步骤中,我们的系数矩阵是 $\boldsymbol{J}$,然而熟知 $\boldsymbol{J}$ 求逆的过程是求解 reciprocal base vector 的过程。受此启发我们猜测可以用 roof base vector 来计算 Christoffel Symbol。

Theorem 1.

$$
\Gamma_{ij}^k = \boldsymbol{g}^k \cdot \boldsymbol{g}_{i, j}
$$

Proof.

$$
\begin{align}
\boldsymbol{g}^k \cdot \boldsymbol{g}_{i, j} &= \Gamma^p_{ij}\boldsymbol{g}^k\cdot\boldsymbol{g}_p \\
&= \Gamma^p_{ij}\delta_{kp} \\
&= \Gamma^k_{ij}
\end{align}
$$

另外一个计算公式更加复杂。

Theorem 2.

$$
\Gamma_{ij}^k = \frac 12 g^{kp}(g_{ip, j} + g_{jp, i} - g_{ij, p})
$$

其中 $g^{ij} = \boldsymbol{g}^i \cdot\boldsymbol{g}^j, g_{ij} = \boldsymbol{g}_i \cdot\boldsymbol{g}_j$

推这个式子的 Motivation 大概是在于如果给定的坐标系是一个正交坐标系(极坐标、柱坐标、球坐标等),那么我们期望有一个更简单的形式。因此我们从 $\boldsymbol{g}_i\cdot\boldsymbol{g}_j$ 出发,如果是正交坐标系,那么就是 $0$。

Proof. 尝试对 $\boldsymbol{g}_i\cdot\boldsymbol{g}_j$ 求偏导,以产生 Gamma

$$
\begin{aligned}
g_{ij, k} &= (\boldsymbol{g}_i\cdot\boldsymbol{g}_j)_{, k} \\
&= \boldsymbol{g}_{i, j}\cdot\boldsymbol{g}_j + \boldsymbol{g}_i\cdot\boldsymbol{g}_{j, k} \\
&= \Gamma_{ij}^p \boldsymbol{g}_p\cdot\boldsymbol{g}_j + \Gamma_{jk}^p\boldsymbol{g}_p\cdot\boldsymbol{g}_i \\
&= \Gamma_{ij}^p g_{pj} + \Gamma_{jk}^p g_{pi}
\end{aligned}
$$

此时希望下标唯一,因此做轮换

$$
\begin{align}
g_{jk, i} &= \Gamma_{jk}^pg_{pi} + \Gamma_{ki}^pg_{pj} \\
g_{ki, j} &= \Gamma_{ki}^pg_{pj} + \Gamma_{ij}^pg_{pk} \\
\end{align}
$$

进行一些配凑,得到

$$
\begin{align}
\frac 12 (g_{ij, k} + g_{ki, j} - g_{jk, i}) = \Gamma_{ij}^pg_{pk}
\end{align}
$$

此时希望提取一个 $k$。

Lemma 1.

$$
g_{ij}g^{jk} = \delta_i^k
$$

这里需要注意到 $g_{ij}$ 是恒等张量 $\mathbf{I}$ 的 cellar component,$g^{ij}$ 是 $\mathbf{I}$ 的 roof component,而 $\delta_i^j$ 是 $\mathbf{I}$ 的 mixed component(这个自己算一手就行)[4]。定理的形式类似于一个矩阵乘法,由于之前没有证过,这里证一手。

Lemma 2.

考虑 second order tensor $\mathbf{S}, \mathbf{T}$,有

$$
(\mathbf{ST})_i^{\cdot k} = T_{ij}S^{jk}
$$

即张量乘法对应的 component 也是矩阵乘法的形式。当然对于其他类型的 component 大概也有一样的结论。

$\forall \boldsymbol{v}$,将 $\boldsymbol{v}$ 在 $\boldsymbol{g}_i$ 下分解

$$
\begin{aligned}
\mathbf{T}\boldsymbol{v} &= v^i\mathbf{T}\boldsymbol{g}_i\\
&= v^iT_{ij}\boldsymbol{g}^j
\end{aligned}
$$

继续算 $\mathbf{S}(\mathbf{T}\boldsymbol{v})$,有

$$
\begin{aligned}
\mathbf{ST}(\boldsymbol{v}) &= v^iT_{ij}\mathbf{S}\boldsymbol{g}^j \\
&= v^iT_{ij}S^{jk}\boldsymbol{g}_k \\
&= v^i(T_{ij}S^{jk})g_k
\end{aligned}
$$

因此 $(\mathbf{ST})_i^{\cdot k} = T_{ij}S^{jk}$。

这里取 $\mathbf{S} = \mathbf{T} = \mathbf{I}$,得到 Lemma 1 成立。

两边同时作用 $g^{kq}$ 求和即可用 $\delta_p^q$ 其中一项,得到

$$
\Gamma^q_{ij} = \frac 12 g^{kq}(g_{ij, k} + g_{ki, j} - g_{jk, i})
$$

最后置换一下 dummy variable 即得到

$$
\Gamma^k_{ij} = \frac 12 g^{pk}(g_{ij, p} + g_{pi, j} - g_{jp, i})
$$

A Change of Coordinates

现在我们已经有了在 $u^j-$坐标系下的结果,如果想要知道在 $\widetilde{u}^{j}-$坐标系下的结果,需要做坐标变换。

$$
\widetilde{\boldsymbol{g}}_i = A^j_i \boldsymbol{g}_j
$$

由于 $\boldsymbol{g}_i$ 和 $\widetilde{\boldsymbol{g}}_i$ 的定义都是偏导给出的,$A^j_i$ 此时有简单的封闭形式。

$$
\widetilde{\boldsymbol{g}}_i = \frac{\partial \boldsymbol{x}}{\partial u^j} \frac{\partial u^j}{\partial \widetilde{u}^i} = \frac{\partial u^j}{\partial \widetilde{u}^i}\boldsymbol{g}_j
$$

于是

$$
A^j_i = \frac{\partial u^j}{\partial \widetilde{u}^i}
$$

这个式子有显然的对称性,即

$$
(A^{-1})^j_i = \frac{\partial \widetilde{u}^i}{\partial u^j}
$$

回忆我们在上一集 Change of Basis中给出的结果,将式 $(54)$ 中的结果代入,立即得到向量和张量的坐标变换公式。这里不做赘述。

本节中的 Christoffel Symbol 也可以进行坐标变换。我们使用 Theorem 1 进行计算,有

$$
\begin{align}
\widetilde{\Gamma}_{jk}^i &= \widetilde{\boldsymbol{g}}^i\cdot\widetilde{\boldsymbol{g}}_{j, k} \\
&= \left(\frac{\partial \widetilde{u}^i}{\partial u^p}\boldsymbol{g}^p\right)\cdot\frac{\partial}{\partial \widetilde{u}^k}\left(\frac{\partial u^q}{\partial \widetilde{u}^j}\boldsymbol{g}_q\right) \\
&= \left(\frac{\partial \widetilde{u}^i}{\partial u^p}\boldsymbol{g}^p\right)\cdot
\left(\frac{\partial^2 u^q}{\partial \widetilde{u}^j\partial\widetilde{u}^k}\boldsymbol{g}_q + \frac{\partial u^q}{\partial \widetilde{u}^j}\frac{\partial \boldsymbol{g}_q}{\partial \widetilde{u}^k}\right) \\
&= \left(\frac{\partial \widetilde{u}^i}{\partial u^p}\boldsymbol{g}^p\right)\cdot
\left(\frac{\partial^2 u^q}{\partial \widetilde{u}^j\partial\widetilde{u}^k}\boldsymbol{g}_q + \frac{\partial u^q}{\partial \widetilde{u}^j}\frac{\partial \boldsymbol{g}_q}{\partial u^r}\frac{\partial u^r}{\partial \widetilde{u}^k}\right) \\
&= \left(\frac{\partial \widetilde{u}^i}{\partial u^p}\boldsymbol{g}^p\right)\cdot
\left(\frac{\partial^2 u^q}{\partial \widetilde{u}^j\partial\widetilde{u}^k}\boldsymbol{g}_q + \frac{\partial u^q}{\partial \widetilde{u}^j}\Gamma_{qr}^s\boldsymbol{g}_s\frac{\partial u^r}{\partial \widetilde{u}^k}\right) \\
&= \frac{\partial \widetilde{u}^i}{\partial u^p}
\left(\frac{\partial^2 u^p}{\partial \widetilde{u}^j\partial\widetilde{u}^k} + \frac{\partial u^q}{\partial \widetilde{u}^j}\frac{\partial u^r}{\partial \widetilde{u}^k}\Gamma_{qr}^p\right)
\end{align}
$$

此处由于第一项的存在,$\Gamma$ 并不具有什么线性性,因此不是某个三阶张量的分量式。

如果这里你是从 Cartesian 坐标换到任意的 $\boldsymbol{g}$,那么由于 Cartesian 坐标系的标准正交基的坐标向量全是常数,$\Gamma$ 全都是 0,第二项直接消失了,此时得到

$$
\Gamma_{jk}^i=\frac{\partial u^i}{\partial x^p}
\frac{\partial^2 x^p}{\partial u^j\partial u^k}
$$

和式 $(29)$ 的结果相符。


  1. 1.李忠, 周建萤. 高等数学(第三版)上册. 北京大学出版社 (2023.6): (356-370)
  2. 2.$\boldsymbol{g}_{i, j}$ 实际上表示 $\boldsymbol{g}_i$ 对 $u^j$ 求偏导(参见 Notations),并不是新定义得符号。
  3. 3.这里的 $u^k_{, p}$ 表示 $u^k$ 对 $x_p$ 求偏导。
  4. 4.参见 上一集中 A Second Order Tensor Has Four Sets of Components in General