跳转至

第 2 章:矢量计算复习(Review of Vector Calculus)

2.1 介绍(Introduction)

本章为后续推导守恒方程奠定基础,简要回顾连续介质力学所需的数学工具,并建立全书的数学记号与约定。本复习并不追求全面,默认读者已具备连续介质力学基本知识;随后将线性代数要素——矢量、矩阵、张量及其运算——作一简明介绍,最后讨论矢量计算的若干基本定理,这些定理是后续解析或数值求解守恒方程(无论解析还是借助 CFD 数值求解)的基本构件。

全书约定一套记号体系:物理变量分为标量(scalar)、矢量(vector)、张量(tensor)三类。标量用浅斜体表示,矢量用小写粗体罗马字母表示,张量用粗体希腊字母表示,矩阵则用大写粗体罗马字母表示。标量仅有大小,如体积 \(V\)、压力 \(p\)、温度 \(T\)、时间 \(t\)、质量 \(m\)、密度 \(\rho\);矢量同时具有大小与方向,如速度 \(\mathbf{v}\)、动量 \(\mathbf{L}=m\mathbf{v}\)、力 \(\mathbf{F}\);矩阵则是按行、列排布的量之矩形阵列;张量则是比矢量更一般的数学对象,以分量阵列表示,如剪切应力张量。守恒方程由两个或更多变量之乘积项构成,乘积可为不同类型;当乘积结果为标量时用圆括号 "(product)" 包裹,为矢量时用方括号 "[product]" 包裹,为张量时用花括号 "{product}" 包裹,以便在方程中一目了然地辨认每一项的阶。

2.2 矢量与矢量运算(Vectors and Vector Operations)

流体动力学中最常用的矢量是速度矢量,记作 \(\mathbf{v}\)。在三维笛卡尔坐标系中,\(\mathbf{v}\)\(x\)\(y\)\(z\) 三个方向上的分量分别记为 \(u\)\(v\)\(w\),于是

\[ \mathbf{v} = u\mathbf{i} + v\mathbf{j} + w\mathbf{k} \]

其中 \(\mathbf{i}\)\(\mathbf{j}\)\(\mathbf{k}\) 分别是沿 \(x\)\(y\)\(z\) 方向的单位矢量。矢量常以列向量形式书写,其转置(transpose)以列向量加右上标 \(T\) 表示并写成行向量形式:

\[ \mathbf{v} = [u, v, w]^T \]

矢量的模(magnitude)由下式给出

\[ \|\mathbf{v}\| = \sqrt{u^2 + v^2 + w^2} \]

两个矢量 \(\mathbf{v}_1\)\(\mathbf{v}_2\) 之和等于它们各对应分量之和,即

\[ \mathbf{v}_1 + \mathbf{v}_2 = (u_1 + u_2)\mathbf{i} + (v_1 + v_2)\mathbf{j} + (w_1 + w_2)\mathbf{k} \]

而矢量 \(\mathbf{v}\) 与标量 \(s\) 之积则给出矢量 \(s\mathbf{v}\),其每个分量均被标量缩放。两个矢量之乘积并非单一运算,会引出两种主要类型:第一种是标量积(scalar/dot product),记作 \(\mathbf{v}_1 \cdot \mathbf{v}_2\);第二种是矢量积(vector/cross product),记作 \([\mathbf{v}_1 \times \mathbf{v}_2]\)

2.2.1 两矢量的点积(The Dot Product of Two Vectors)

由定义,两个矢量 \(\mathbf{v}_1\)\(\mathbf{v}_2\) 的点积是一个标量,由

\[ \mathbf{v}_1 \cdot \mathbf{v}_2 = \|\mathbf{v}_1\| \, \|\mathbf{v}_2\| \cos(\mathbf{v}_1, \mathbf{v}_2) \]

给出,其中 \(\cos(\mathbf{v}_1, \mathbf{v}_2)\) 是两矢量夹角的余弦。由此定义直接推出

\[ \mathbf{i}\cdot\mathbf{i} = \mathbf{j}\cdot\mathbf{j} = \mathbf{k}\cdot\mathbf{k} = 1 \]
\[ \mathbf{i}\cdot\mathbf{j} = \mathbf{i}\cdot\mathbf{k} = \mathbf{j}\cdot\mathbf{i} = \mathbf{j}\cdot\mathbf{k} = \mathbf{k}\cdot\mathbf{i} = \mathbf{k}\cdot\mathbf{j} = 0 \]

在标准正交的笛卡尔分量下,两个矢量的点积可以写作

\[ \mathbf{v}_1 \cdot \mathbf{v}_2 = (u_1\mathbf{i} + v_1\mathbf{j} + w_1\mathbf{k}) \cdot (u_2\mathbf{i} + v_2\mathbf{j} + w_2\mathbf{k}) = u_1 u_2 + v_1 v_2 + w_1 w_2 \]

2.2.2 矢量模(Vector Magnitude)

由点积表达式可立即得到矢量 \(\mathbf{v}\) 的模

\[ \|\mathbf{v}\| = \sqrt{\mathbf{v} \cdot \mathbf{v}} = \sqrt{u^2 + v^2 + w^2} \]

该式与 2.2 节给出的结果一致,可视作点积定义的直接推论。

2.2.3 单位方向矢量(The Unit Direction Vector)

由点积定义可以推出沿 \(\mathbf{v}\) 方向的单位矢量 \(\mathbf{e}_v\) 的构造。利用

\[ \mathbf{v}\cdot\mathbf{v} = \|\mathbf{v}\|\|\mathbf{v}\|\cos(\mathbf{v},\mathbf{v}) = \|\mathbf{v}\|^2 \]

,可得 \(\mathbf{v}\cdot(\mathbf{v}/\|\mathbf{v}\|) = \|\mathbf{v}\|\) ;由于 \(\mathbf{v}/\|\mathbf{v}\|\)\(\mathbf{v}\) 同方向且长度为 1,即

\[ \mathbf{e}_v = \frac{\mathbf{v}}{\|\mathbf{v}\|} \]

因此,一个矢量在另一矢量方向上的分量(投影长度之模)可视为待投影矢量与目标方向单位矢量的点积,如图 2.2a、b 所示。

2.2.4 两矢量的叉积(The Cross Product of Two Vectors)

两个矢量 \(\mathbf{v}_1\)\(\mathbf{v}_2\) 的叉积(矢量积)是一个矢量 \(\mathbf{v}_3\),它与 \(\mathbf{v}_1\)\(\mathbf{v}_2\) 所张成的平面正交,其模为

\[ \|\mathbf{v}_3\| = \|\mathbf{v}_1 \times \mathbf{v}_2\| = \|\mathbf{v}_1\| \, \|\mathbf{v}_2\| \, |\sin(\mathbf{v}_1, \mathbf{v}_2)| \]

方向由右手定则给出。如图 2.3 所示,两矢量叉积之模在几何上等于二者所张平行四边形的面积;由于结果矢量与该平面正交,叉积也常被解释为这两个矢量的"面矢量(surface vector)"。

由此直接得到两点性质:两个共线矢量的叉积为零(它们张不成面积);两个正交单位矢量的叉积是一个与它们均垂直的单位矢量。采用右手定则来规定方向,可得

\[ \mathbf{i}\times\mathbf{i} = \mathbf{j}\times\mathbf{j} = \mathbf{k}\times\mathbf{k} = 0, \quad \mathbf{i}\times\mathbf{j} = \mathbf{k} = -\mathbf{j}\times\mathbf{i} \]
\[ \mathbf{j}\times\mathbf{k} = \mathbf{i} = -\mathbf{k}\times\mathbf{j}, \quad \mathbf{k}\times\mathbf{i} = \mathbf{j} = -\mathbf{i}\times\mathbf{k} \]

利用上述关系,两个矢量按笛卡尔分量表示的叉积展开后得到

\[ \mathbf{v}_1 \times \mathbf{v}_2 = (v_1 w_2 - v_2 w_1)\mathbf{i} - (u_1 w_2 - u_2 w_1)\mathbf{j} + (u_1 v_2 - u_2 v_1)\mathbf{k} \]

它可以写成行列式记号

\[ \mathbf{v}_1 \times \mathbf{v}_2 = \det\begin{pmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ u_1 & v_1 & w_1 \\ u_2 & v_2 & w_2 \end{pmatrix} = [v_1 w_2 - v_2 w_1,\; u_2 w_1 - u_1 w_2,\; u_1 v_2 - u_2 v_1]^T \]

例 1:计算由 \(P_1(0,0,0)\)\(P_2(1,0,0)\)\(P_3(0.5,1,0)\) 三点所构成三角形的面积。三角形面积可由两条边的叉积的一半得到: \(\overrightarrow{P_1 P_2} = \mathbf{i}\), \(\overrightarrow{P_1 P_3} = 0.5\mathbf{i} + \mathbf{j}\) ,于是

\[ \mathbf{S}_{123} = 0.5\,\mathbf{i} \times (0.5\mathbf{i} + \mathbf{j}) = 0.5\mathbf{k} \]

,故 \(\|\mathbf{S}_{123}\| = 0.5\)

2.2.5 标量三重积(The Scalar Triple Product)

三个矢量 \(\mathbf{v}_1\)\(\mathbf{v}_2\)\(\mathbf{v}_3\) 的混合乘积如 \((\mathbf{v}_1 \cdot [\mathbf{v}_2 \times \mathbf{v}_3])\) 可以写成如下行列式(下文会解释):

\[ (\mathbf{v}_1 \cdot [\mathbf{v}_2 \times \mathbf{v}_3]) = \det\begin{pmatrix} u_1 & v_1 & w_1 \\ u_2 & v_2 & w_2 \\ u_3 & v_3 & w_3 \end{pmatrix} \]

如图 2.5 所示,该标量三重积的绝对值几何上等于 \(\mathbf{v}_1\)\(\mathbf{v}_2\)\(\mathbf{v}_3\) 三者所张平行六面体的体积。

例 2:计算由 \(P_1(0,0,0)\)\(P_2(1,0,0)\)\(P_3(0.5,1,0)\)\(P_4(0.5,0.5,1)\) 四点所构成四棱锥的体积。利用标量三重积可得

\[ V = 0.25\, \overrightarrow{P_1 P_4} \cdot (\overrightarrow{P_1 P_2} \times \overrightarrow{P_1 P_3}) = 0.25\,(0.5\mathbf{i}+0.5\mathbf{j}+\mathbf{k}) \cdot \mathbf{k} = 0.25 \]

2.2.6 标量的梯度与方向导数(Gradient of a Scalar and Directional Derivatives)

流体动力学中频繁出现的一类重要矢量算子是 "del"(亦称 nabla)算子,定义为

\[ \nabla = \frac{\partial}{\partial x}\mathbf{i} + \frac{\partial}{\partial y}\mathbf{j} + \frac{\partial}{\partial z}\mathbf{k} \]

将 "del" 算子作用于标量 \(s\) 即得到 \(s\) 的梯度(gradient),记作

\[ \nabla s = \frac{\partial s}{\partial x}\mathbf{i} + \frac{\partial s}{\partial y}\mathbf{j} + \frac{\partial s}{\partial z}\mathbf{k} \]

标量场的梯度是一个矢量场,它指示了 \(s\) 在空间中随位置变化的大小与方向。\(\nabla s\) 在单位矢量 \(\mathbf{e}_l\) 方向上的投影给出

\[ \frac{ds}{dl} = \nabla s \cdot \mathbf{e}_l = \|\nabla s\| \cos(\nabla s, \mathbf{e}_l) \]

这称为 \(s\) 沿 \(\mathbf{e}_l\) 方向的方向导数(directional derivative),其几何含义如图 2.7 所示。方向导数的最大值为 \(\|\nabla s\|\),在 \(\cos(\nabla s, \mathbf{e}_l) = 1\) 时取得,即沿 \(\nabla s\) 本身的方向;因此,标量场 \(s\) 的梯度指示了空间中每一点处 \(s\) 变化最剧烈的方向与大小,且 \(\nabla s\) 与通过该点的常数 \(s\) 等值面正交。

例 3:令 \(f(x,y,z) = x^2 y + y^2 z + z^2 x\)。(a) 在点 \((3,2,0)\) 处求 \(\nabla f\)。计算各偏导 \(\partial f/\partial x = 2xy + z^2\)\(\partial f/\partial y = x^2 + 2yz\)\(\partial f/\partial z = y^2 + 2xz\),得

\[ \nabla f = (2xy+z^2)\mathbf{i} + (x^2+2yz)\mathbf{j} + (y^2+2xz)\mathbf{k} \]

,从而

\[ \nabla f|_{(3,2,0)} = 12\mathbf{i} + 9\mathbf{j} + 4\mathbf{k} \]

。(b) 沿方向 \((1,2,2)\) 在点 \((3,2,0)\) 处求方向导数。该方向的单位矢量为 \(\mathbf{e}_l = (\mathbf{i} + 2\mathbf{j} + 2\mathbf{k})/3\) ,于是

\[ df/dl|_{(3,2,0)} = (12\mathbf{i} + 9\mathbf{j} + 4\mathbf{k}) \cdot (\mathbf{i} + 2\mathbf{j} + 2\mathbf{k})/3 = (12 + 18 + 8)/3 = 38/3 \]

2.2.7 算子 ∇ 的运算(Operations on the Nabla Operator)

将 del 算子与矢量 \(\mathbf{v} = (u, v, w)\) 取点积,得到矢量 \(\mathbf{v}\) 的散度(divergence),它是一个标量:

\[ \nabla \cdot \mathbf{v} = \frac{\partial u}{\partial x} + \frac{\partial v}{\partial y} + \frac{\partial w}{\partial z} \]

物理上,矢量场在某区域上的散度衡量该矢量场指向区域内部或外部的"程度"——即在该区域内有多少净流出或流入。

标量 \(s\) 的梯度的散度记作 Laplacian \(\nabla^2 s\),是一个标量:

\[ \nabla \cdot (\nabla s) = \nabla^2 s = \frac{\partial^2 s}{\partial x^2} + \frac{\partial^2 s}{\partial y^2} + \frac{\partial^2 s}{\partial z^2} \]

矢量的 Laplacian 由上述算子定义直接给出,是一个矢量:

\[ \nabla^2 \mathbf{v} = \nabla^2 u\, \mathbf{i} + \nabla^2 v\, \mathbf{j} + \nabla^2 w\, \mathbf{k} \]

例 4:求 \(\mathbf{v} = (u,v,w) = (3x,\, 2xy,\, 4z)\) 的散度。逐项求偏导得

\[ \nabla \cdot \mathbf{v} = \frac{\partial(3x)}{\partial x} + \frac{\partial(2xy)}{\partial y} + \frac{\partial(4z)}{\partial z} = 3 + 2x + 4 = 7 + 2x \]

另一个常用算子是矢量场的旋度(curl),由 "del" 算子与矢量 \(\mathbf{v}\) 叉积给出,结果仍是一个矢量:

\[ \nabla \times \mathbf{v} = \det\begin{pmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \partial/\partial x & \partial/\partial y & \partial/\partial z \\ u & v & w \end{pmatrix} = \left(\frac{\partial w}{\partial y} - \frac{\partial v}{\partial z}\right)\mathbf{i} + \left(\frac{\partial u}{\partial z} - \frac{\partial w}{\partial x}\right)\mathbf{j} + \left(\frac{\partial v}{\partial x} - \frac{\partial u}{\partial y}\right)\mathbf{k} \]

散度与旋度的几何含义如图 2.8 所示:径向矢量场(图 2.8a)仅有散度、旋度为零,在流体力学中代表汇(source)/源(sink)流动的速度场;旋转型矢量场(图 2.8b)仅有旋度、散度为零(无散场 divergence free),它对应涡流(vortex)的速度场。

本书中还会出现矢量 \(\mathbf{v}\) 的梯度与其自身的乘积 \([(\mathbf{v}\cdot\nabla)\mathbf{v}]\):

\[ [(\mathbf{v}\cdot\nabla)\mathbf{v}] = (\mathbf{v}\cdot\nabla)(u\mathbf{i}+v\mathbf{j}+w\mathbf{k}) = \left(u\frac{\partial u}{\partial x} + v\frac{\partial u}{\partial y} + w\frac{\partial u}{\partial z}\right)\mathbf{i} + \cdots \]

它在动量方程的对流项中频繁出现。

例 5(图 2.9):(a) \(\nabla \cdot \mathbf{F} = 0\),

\[ \nabla \times \mathbf{F} = 2\mathbf{k} \]

(旋度非零,无散);(b) \(\nabla \cdot \mathbf{F} = 0\),\(\nabla \times \mathbf{F} = 0\)(无散且无旋);(c) \(\nabla \cdot \mathbf{F} = 4\),\(\nabla \times \mathbf{F} = 0\)(有源、且无旋)。

2.2.8 其他矢量运算(Additional Vector Operations)

\(s\) 是标量函数,\(\mathbf{v}_1\)\(\mathbf{v}_2\)\(\mathbf{v}_3\) 是矢量场,则下列恒等式成立(此处仅列式,不给出证明):

\[ \nabla \cdot (\nabla \times \mathbf{v}) = 0 \]
\[ \nabla \times (\nabla s) = 0 \]
\[ \nabla \cdot (s\mathbf{v}) = s\,\nabla \cdot \mathbf{v} + \mathbf{v} \cdot \nabla s \]
\[ \nabla \times (s\mathbf{v}) = s\,\nabla \times \mathbf{v} + \nabla s \times \mathbf{v} \]
\[ \nabla(\mathbf{v}_1 \cdot \mathbf{v}_2) = \mathbf{v}_1 \times (\nabla \times \mathbf{v}_2) + \mathbf{v}_2 \times (\nabla \times \mathbf{v}_1) + (\mathbf{v}_1 \cdot \nabla)\mathbf{v}_2 + (\mathbf{v}_2 \cdot \nabla)\mathbf{v}_1 \]
\[ \nabla \cdot (\mathbf{v}_1 \times \mathbf{v}_2) = \mathbf{v}_2 \cdot (\nabla \times \mathbf{v}_1) - \mathbf{v}_1 \cdot (\nabla \times \mathbf{v}_2) \]
\[ \nabla \times (\mathbf{v}_1 \times \mathbf{v}_2) = \mathbf{v}_1 (\nabla \cdot \mathbf{v}_2) - \mathbf{v}_2 (\nabla \cdot \mathbf{v}_1) + (\mathbf{v}_2 \cdot \nabla)\mathbf{v}_1 - (\mathbf{v}_1 \cdot \nabla)\mathbf{v}_2 \]
\[ \nabla \times (\nabla \times \mathbf{v}) = \nabla(\nabla \cdot \mathbf{v}) - \nabla^2 \mathbf{v} \]
\[ (\nabla \times \mathbf{v}) \times \mathbf{v} = \mathbf{v} \cdot (\nabla \mathbf{v}) - \nabla(\mathbf{v} \cdot \mathbf{v}) \]

2.3 矩阵与矩阵运算(Matrices and Matrix Operations)

阶为 \(M \times N\) 的矩阵 \(\mathbf{A}\) 是一个按 \(M\) 行、\(N\) 列排布的量(数或表达式)的矩形阵列。位于第 \(i\) 行、第 \(j\) 列的元素记为 \(a_{ij}\)。由这一定义可知,维度为 \(N\) 的列矢量 \(\mathbf{v}\) 是阶为 \(N \times 1\) 的矩阵,而标量 \(s\) 是阶为 \(1 \times 1\) 的矩阵。

阶为 \(M \times N\) 的矩阵 \(\mathbf{A}\) 的转置(记作 \(\mathbf{A}^T\))是阶为 \(N \times M\) 的另一矩阵,其行恰为 \(\mathbf{A}\) 的列,其列恰为 \(\mathbf{A}\) 的行,用数学记号写为

\[ \mathbf{A} = [a_{ij}] \Rightarrow \mathbf{A}^T = [a_{ji}] \]

两个同阶矩阵相等当且仅当它们对应元素相等。同阶矩阵可逐元素相加或相减;矩阵与标量 \(s\) 相乘时,其每一元素均乘以 \(s\),记作 \(\mathbf{A} = [a_{ij}] \Rightarrow s\mathbf{A} = [sa_{ij}]\)

两个矩阵相乘 \(\mathbf{P} = \mathbf{A}\mathbf{B}\) 要求 \(\mathbf{A}\) 的列数等于 \(\mathbf{B}\) 的行数:若 \(\mathbf{A}\)\(M \times X\),则 \(\mathbf{B}\) 必须是 \(X \times N\),所得 \(\mathbf{P}\)\(M \times N\),其元素为

\[ p_{ij} = \sum_{k=1}^{X} a_{ik} b_{kj} \]

2.3.1 方阵(Square Matrices)

当矩阵 \(\mathbf{A}\) 的列数 \(N\) 与其行数相等时,它是一个阶为 \(N\) 的方阵(square matrix)。元素 \(a_{ii}\) 构成 \(\mathbf{A}\) 的主对角线(main diagonal),从左上角延伸至右下角;满足 \(i + j = N + 1\) 的元素 \(a_{ij}\) 构成另一条对角线,即副对角线(cross diagonal),从左下角延伸至右上角。方阵具备非方阵所没有的特殊性质,如对称性(symmetry)、反对称性(antisymmetry);此外,取行列式与计算特征值等运算亦仅对方阵有定义。

方阵与自身相乘仍是同阶方阵;因此方阵可被自身相乘任意多次,\(\mathbf{A}^k\) 表示 \(\mathbf{A}\) 自乘 \(k\) 次,即 \(\mathbf{A} \cdot \mathbf{A} \cdots \mathbf{A}\)\(k\)\(\mathbf{A}\)

方阵 \(\mathbf{A}\) 若满足 \(a_{ij} = a_{ji}\),即 \(\mathbf{A}^T = \mathbf{A}\),则称为对称(symmetric);若 \(a_{ij} = -a_{ji}\),则称为反对称(antisymmetric)。对角方阵 \(\mathbf{D}\) 是指主对角线之外的元素均为零、主对角线元素任意的方阵。对角线上元素全为 1 的 \(N\) 阶对角方阵称为单位矩阵(identity matrix),记作 \(\mathbf{I}\)

\(N\) 阶方阵 \(\mathbf{A}\) 的逆(inverse)是同阶的方阵 \(\mathbf{A}^{-1}\),满足

\[ \mathbf{A}^{-1}\mathbf{A} = \mathbf{A}\mathbf{A}^{-1} = \mathbf{I} \]

上三角矩阵 \(\mathbf{U}\) 是主对角线下方所有元素均为零的方阵(\(u_{ij} = 0,\; i > j\));下三角矩阵 \(\mathbf{L}\) 是主对角线上方所有元素均为零的方阵(\(l_{ij} = 0,\; i < j\))。

2.3.2 用矩阵描述方程组(Using Matrices to Describe Systems of Equations)

矩阵可被用来紧凑地描述方程组:\(N\) 个方程 \(N\) 个未知数的系统

\[ a_{11}\phi_1 + a_{12}\phi_2 + \cdots + a_{1N}\phi_N = b_1 \]
\[ a_{21}\phi_1 + a_{22}\phi_2 + \cdots + a_{2N}\phi_N = b_2 \]
\[ \cdots \]
\[ a_{N1}\phi_1 + a_{N2}\phi_2 + \cdots + a_{NN}\phi_N = b_N \]

用矩阵记号可写为 \(\mathbf{A}\boldsymbol{\phi} = \mathbf{b}\)

2.3.3 方阵的行列式(The Determinant of a Square Matrix)

行列式(determinant)是与方阵 \(\mathbf{A}\) 关联的一个数值,可由矩阵元素经特定数学过程计算得到,记作 \(\det(\mathbf{A})\)\(|\mathbf{A}|(\)此处不应与绝对值记号混淆\()\)。2 阶矩阵的行列式计算最为直接——它是主对角线元素之积减去副对角线元素之积:

\[ \det(\mathbf{A}) = a_{11} a_{22} - a_{21} a_{12} \]

对于更高阶矩阵,计算要更复杂,需借助子式(minor)与余子式(cofactor)的概念。元素 \(a_{ij}\) 的子式 \(m_{ij}\) 是删去第 \(i\) 行和第 \(j\) 列后所剩子矩阵的行列式;元素 \(a_{ij}\) 的余子式 \(\text{co}_{ij}\) 是该子式与符号 \((-1)^{i+j}\) 之积,即

\[ \text{co}_{ij} = (-1)^{i+j} m_{ij} \]

\(N\) 阶方阵 \(\mathbf{A}\) 的行列式可由它任意一行或一列的余子式展开得到:

\[ \det(\mathbf{A}) = \sum_{i=1}^{N} a_{ij}\,\text{co}_{ij} \quad (\text{for any } j) \quad \text{或} \quad \sum_{j=1}^{N} a_{ij}\,\text{co}_{ij} \quad (\text{for any } i) \]

可见余子式的计算常常需要进一步分解子行列式,这种分解可能会递归下去直至出现 2 阶行列式。由以上讨论还可直接证明:对角矩阵、上三角矩阵、下三角矩阵的行列式等于它们主对角线元素之积,即

\[ \det(\mathbf{A}) = \prod_{i=1}^{N} a_{ii} \]

例 6:计算 4 阶矩阵 \(\mathbf{A}\) 的行列式

\[ \mathbf{A} = \begin{pmatrix} 1 & 0 & 1 & 0 \\ 1 & 2 & 0 & 5 \\ 2 & 3 & -2 & 0 \\ 4 & 1 & -5 & 3 \end{pmatrix} \]

技巧上应选择含最多零元素的行或列展开,以减少运算量;作者选用第 1 行和第 4 列两路展开以相互验证。利用 2.3.3 节给出的展开公式,逐项化简合并,两种路径最终得到同一结果 \(\det(\mathbf{A}) = -130\)

2.3.4 特征矢量与特征值(Eigenvectors and Eigenvalues)

\(\mathbf{A}\) 是一方阵,\(\mathbf{v}\) 是一非零矢量。若 \(\mathbf{A}\mathbf{v}\)\(\mathbf{v}\) 方向相同,则称 \(\mathbf{v}\)\(\mathbf{A}\) 的特征矢量(eigenvector)——即在矩阵作用下不旋转的矢量,只可能发生长度缩放与/或方向反转。因此存在标量 \(\lambda\) 使 \(\mathbf{A}\mathbf{v} = \lambda\mathbf{v}\),\(\lambda\)\(\mathbf{A}\) 的特征值(eigenvalue)。显然,对任意常数 \(a\),矢量 \(a\mathbf{v}\) 也是 \(\mathbf{A}\) 的特征矢量,因为

\[ \mathbf{A}(a\mathbf{v}) = a(\mathbf{A}\mathbf{v}) = a\lambda\mathbf{v} = \lambda(a\mathbf{v}) \]

;故一标量乘以特征矢量仍是特征矢量。

\(\mathbf{A}\)\(N\) 阶对称矩阵,则可证 \(\mathbf{A}\) 有一组线性无关的特征矢量 \(\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_N\);如上所述这组矢量并不唯一,但它们所对应的特征值 \(\lambda_1, \lambda_2, \ldots, \lambda_N\)(彼此可能相等、亦可能不等)是唯一的。单位矩阵的特征值全为 1,且任何非零矢量都是 \(\mathbf{I}\) 的特征矢量。

一般地,\(N\) 阶方阵 \(\mathbf{A}\) 的特征值通过求解下式得到:

\[ \mathbf{A}\mathbf{v} = \lambda\mathbf{v} \Rightarrow \mathbf{A}\mathbf{v} = \lambda\mathbf{I}\mathbf{v} \Rightarrow (\mathbf{A} - \lambda\mathbf{I})\mathbf{v} = 0 \]

由于按定义特征矢量非零,因此

\[ \mathbf{A} - \lambda\mathbf{I} = 0 \Rightarrow \det(\mathbf{A} - \lambda\mathbf{I}) = 0 \]

将该行列式展开,得到关于 \(\lambda\)\(N\) 次特征方程,其根即为 \(\mathbf{A}\) 的特征值。例如 2 阶矩阵

\[ \mathbf{A} = \begin{pmatrix} 3 & 1 \\ 8 & 1 \end{pmatrix} \]

的特征方程为

\[ \det\begin{pmatrix} 3-\lambda & 1 \\ 8 & 1-\lambda \end{pmatrix} = 0 \Rightarrow (3-\lambda)(1-\lambda) - 8 = 0 \Rightarrow \lambda^2 - 4\lambda - 5 = 0 \]

解得 \(\lambda_1 = -1\)\(\lambda_2 = 5\)

2.3.5 对称正定矩阵(A Symmetric Positive-Definite Matrix)

\(N\) 阶对称矩阵 \(\mathbf{A} = [a_{ij}]\) 称为正定(positive-definite),若对 \(\mathbb{R}^N\) 中所有列矢量 \(\mathbf{p}\),均有

\[ \mathbf{p}^T \mathbf{A} \mathbf{p} \geq 0 \]

例如 3 阶对称矩阵

\[ \mathbf{A} = \begin{pmatrix} 5 & 3 & 1 \\ 3 & 7 & 4 \\ 1 & 4 & 8 \end{pmatrix} \]

,展开 \(\mathbf{p}^T \mathbf{A} \mathbf{p}\) 可得

\[ \mathbf{p}^T \mathbf{A} \mathbf{p} = 3(a+b)^2 + (a+c)^2 + 4(b+c)^2 + a^2 + 4b^2 + 3c^2 \geq 0 \]

\(\mathbf{A}\) 为正定。

对于对称正定矩阵 \(\mathbf{A}\),有以下重要性质:任意阶数为 \(M(1 \leq M \leq N)\) 的主子矩阵 \(\mathbf{P}\)(由前 \(M\) 行与前 \(M\) 列交叉构成)仍为正定;\(\mathbf{A}\)\(N\) 个特征值 \(\lambda_1, \ldots, \lambda_N\) 全为正;反之,若矩阵所有特征值为正,则该矩阵正定;\(\mathbf{A}\) 存在唯一分解 \(\mathbf{A} = \mathbf{L}\mathbf{L}^T\),其中 \(\mathbf{L}\) 为下三角矩阵——这一分解称为 Cholesky 分解。

2.3.6 其他矩阵运算(Additional Matrix Operations)

\(s_1\)\(s_2\) 为标量函数,\(\mathbf{I}\) 为单位矩阵,\(\mathbf{A}\)\(\mathbf{B}\)\(\mathbf{C}\) 为矩阵,则矩阵加法、减法、标量乘法、矩阵乘法等运算满足下列性质(仅列式、不证):

\[ \mathbf{A} + (\mathbf{B} + \mathbf{C}) = (\mathbf{A} + \mathbf{B}) + \mathbf{C} \]
\[ \mathbf{A} + \mathbf{B} = \mathbf{B} + \mathbf{A} \]
\[ s_1(\mathbf{A} + \mathbf{B}) = s_1\mathbf{A} + s_1\mathbf{B} \]
\[ (s_1 + s_2)\mathbf{A} = s_1\mathbf{A} + s_2\mathbf{A} \]
\[ \mathbf{A}(\mathbf{B}\mathbf{C}) = (\mathbf{A}\mathbf{B})\mathbf{C} \]
\[ \mathbf{A}\mathbf{I} = \mathbf{I}\mathbf{A} = \mathbf{A} \]
\[ \mathbf{A}(\mathbf{B} + \mathbf{C}) = \mathbf{A}\mathbf{B} + \mathbf{A}\mathbf{C} \]
\[ (\mathbf{A} + \mathbf{B})\mathbf{C} = \mathbf{A}\mathbf{C} + \mathbf{B}\mathbf{C} \]
\[ (\mathbf{A} + \mathbf{B})^T = \mathbf{A}^T + \mathbf{B}^T \]
\[ (s_1\mathbf{A})^T = s_1\mathbf{A}^T \]
\[ (\mathbf{A}\mathbf{B})^T = \mathbf{B}^T\mathbf{A}^T \]
\[ (\mathbf{A}\mathbf{B})^{-1} = \mathbf{B}^{-1}\mathbf{A}^{-1} \]

2.4 张量与张量运算(Tensors and Tensor Operations)

张量可以视为对标量、矢量定义的自然推广:标量是 0 阶张量,矢量是 1 阶张量;更高阶(2 阶、3 阶、…)张量亦可类似定义,其主要用途是对方程组进行操作与变换。本书范围内仅需使用 2 阶张量,因此后文统称"张量"即指 2 阶张量。

与速度矢量 \(\mathbf{v}\) 类似,偏差应力张量(deviatoric stress tensor) \(\mathbf{s}\) 在本书中将频繁出现,本节以它为例说明张量运算。设 \(x\)\(y\)\(z\) 为标准正交笛卡尔坐标系的三个方向,则应力张量 \(\mathbf{s}\) 与其转置 \(\mathbf{s}^T\) 按分量写为

\[ \mathbf{s} = \begin{pmatrix} s_{xx} & s_{xy} & s_{xz} \\ s_{yx} & s_{yy} & s_{yz} \\ s_{zx} & s_{zy} & s_{zz} \end{pmatrix}, \quad \mathbf{s}^T = \begin{pmatrix} s_{xx} & s_{yx} & s_{zx} \\ s_{xy} & s_{yy} & s_{zy} \\ s_{xz} & s_{yz} & s_{zz} \end{pmatrix} \]

仿照矢量用单位基矢量展开的写法,引入沿 \(x\)\(y\)\(z\) 方向的单位矢量 \(\mathbf{i}\)\(\mathbf{j}\)\(\mathbf{k}\),张量 \(\mathbf{s}\) 可写成

\[ \mathbf{s} = \mathbf{i}\mathbf{i}\,s_{xx} + \mathbf{i}\mathbf{j}\,s_{xy} + \mathbf{i}\mathbf{k}\,s_{xz} + \mathbf{j}\mathbf{i}\,s_{yx} + \mathbf{j}\mathbf{j}\,s_{yy} + \mathbf{j}\mathbf{k}\,s_{yz} + \mathbf{k}\mathbf{i}\,s_{zx} + \mathbf{k}\mathbf{j}\,s_{zy} + \mathbf{k}\mathbf{k}\,s_{zz} \]

这一表达式引入了两个矢量的第三种乘积——并矢积(dyadic product),其结果是一张量,分量由两矢量的有序对构成。例如矢量 \(\mathbf{v}\) 与自身的并矢积(在动量方程的构造中会出现)为

\[ \{\mathbf{v}\mathbf{v}\} = (u\mathbf{i}+v\mathbf{j}+w\mathbf{k})(u\mathbf{i}+v\mathbf{j}+w\mathbf{k}) = \begin{pmatrix} u^2 & uv & uw \\ vu & v^2 & vw \\ wu & wv & w^2 \end{pmatrix} \]

矢量 \(\mathbf{v}\) 的梯度是一张量:

\[ \{\nabla \mathbf{v}\} = \left(\frac{\partial}{\partial x}\mathbf{i} + \frac{\partial}{\partial y}\mathbf{j} + \frac{\partial}{\partial z}\mathbf{k}\right)(u\mathbf{i}+v\mathbf{j}+w\mathbf{k}) = \begin{pmatrix} \partial u/\partial x & \partial v/\partial x & \partial w/\partial x \\ \partial u/\partial y & \partial v/\partial y & \partial w/\partial y \\ \partial u/\partial z & \partial v/\partial z & \partial w/\partial z \end{pmatrix} \]

两个张量 \(\mathbf{r}\)\(\mathbf{s}\) 之和是一张量 \(\mathbf{R}\),其分量为两对应分量之和:

\[ \mathbf{R} = \mathbf{r} + \mathbf{s} \]

张量 \(\mathbf{s}\) 与标量 \(s\) 之积是一张量,其分量均乘以该标量;张量 \(\mathbf{s}\) 与矢量 \(\mathbf{v}\) 的点积是一个矢量:

\[ [\mathbf{s} \cdot \mathbf{v}] = \begin{pmatrix} s_{xx} & s_{xy} & s_{xz} \\ s_{yx} & s_{yy} & s_{yz} \\ s_{zx} & s_{zy} & s_{zz} \end{pmatrix} \begin{pmatrix} u \\ v \\ w \end{pmatrix} = \begin{pmatrix} s_{xx} u + s_{xy} v + s_{xz} w \\ s_{yx} u + s_{yy} v + s_{yz} w \\ s_{zx} u + s_{zy} v + s_{zz} w \end{pmatrix} \]

类似地,张量 \(\mathbf{s}\) 的散度是一个矢量:

\[ [\nabla \cdot \mathbf{s}] = \left(\frac{\partial s_{xx}}{\partial x} + \frac{\partial s_{yx}}{\partial y} + \frac{\partial s_{zx}}{\partial z}\right)\mathbf{i} + \left(\frac{\partial s_{xy}}{\partial x} + \frac{\partial s_{yy}}{\partial y} + \frac{\partial s_{zy}}{\partial z}\right)\mathbf{j} + \left(\frac{\partial s_{xz}}{\partial x} + \frac{\partial s_{yz}}{\partial y} + \frac{\partial s_{zz}}{\partial z}\right)\mathbf{k} \]

两个张量 \(\mathbf{s}\)\(\{\nabla \mathbf{v}\}\) 的双点积(double dot product)是一标量,完整展开后得到

\[ (\mathbf{s} : \nabla \mathbf{v}) = s_{xx}\frac{\partial u}{\partial x} + s_{xy}\frac{\partial u}{\partial y} + s_{xz}\frac{\partial u}{\partial z} + s_{yx}\frac{\partial v}{\partial x} + s_{yy}\frac{\partial v}{\partial y} + s_{yz}\frac{\partial v}{\partial z} + s_{zx}\frac{\partial w}{\partial x} + s_{zy}\frac{\partial w}{\partial y} + s_{zz}\frac{\partial w}{\partial z} \]

每一项均来自双点积的展开与单位基矢量点积性质 \(\mathbf{i}\cdot\mathbf{i} = 1\) 等的代入化简。

2.5 矢量计算基本定理(Fundamental Theorems of Vector Calculus)

本书后续所有数学表述都将以矢量形式进行,因此熟悉矢量计算的基本定理非常必要。下一节简要回顾其中几个核心定理。

2.5.1 曲线积分的梯度定理(Gradient Theorem for Line Integrals)

曲线积分的梯度定理将一条曲线上的线积分与该函数在曲线端点处的函数值联系起来:若 \(C\) 是一条光滑曲线(如图 2.13 所示),由位置矢量 \(\mathbf{r}(t) = [x(t), y(t), z(t)]\)(\(a \leq t \leq b\))描述,且标量函数 \(s\) 的梯度 \(\nabla s\)\(C\) 上连续,则

\[ \int_C \nabla s \cdot d\mathbf{r} = s(\mathbf{r}(b)) - s(\mathbf{r}(a)) \]

其中 \(a\)\(b\) 是曲线 \(C\) 的两端点。由此直接得到一个推论:闭曲线上 \(\nabla s\) 的线积分恒为零。

2.5.2 Green 定理(Green's Theorem)

Green 定理把二维简单闭曲线 \(C\) 上的环积分与该闭曲线所围二维区域 \(R\) 上的二重积分联系起来:若 \(C\) 是二维区域 \(R\) 的闭曲线(如图 2.14 所示),\(u(x,y)\)\(v(x,y)\)\(R\) 上具有连续偏导,则

\[ \oint_C (u\,dx + v\,dy) = \iint_R \left(\frac{\partial v}{\partial x} - \frac{\partial u}{\partial y}\right) dx\,dy \]

式中曲线积分沿 \(C\) 的正方向即逆时针方向计算。利用矢量记号,令 \(d\mathbf{r} = dx\,\mathbf{i} + dy\,\mathbf{j}\)\(\mathbf{v} = u\mathbf{i} + v\mathbf{j}\)\(d\mathbf{S} = dx\,dy\,\mathbf{k}\),则 Green 定理可写成更紧凑的矢量形式:

\[ \oint_C \mathbf{v} \cdot d\mathbf{r} = \iint_R [\nabla \times \mathbf{v}] \cdot d\mathbf{S} \]

Green 定理在二维流动中常用来化简线积分。

例 7(图 2.15):计算 \(\oint_C 2y^3\,dx + 3xy^2\,dy\),其中 \(C\) 是图示半圆区域的逆时针定向边界。直接计算线积分较为繁琐,改用 Green 定理更简便。该矢量场为 \((u, v) = (2y^3, 3xy^2)\),故被积函数

\[ \frac{\partial v}{\partial x} - \frac{\partial u}{\partial y} = 3y^2 - 6y^2 = -3y^2 \]

区域 \(R\)\(-1 \leq x \leq 1\)\(0 \leq y \leq \sqrt{1-x^2}\) 给出,积分化为

\[ -3 \int_{-1}^{1} \int_{0}^{\sqrt{1-x^2}} y^2\,dy\,dx = -\int_{-1}^{1} (1-x^2)^{3/2}\,dx \]

\(x = \cos\theta\)\(dx = -\sin\theta\,d\theta\),代入得

\[ -\int_{0}^{\pi} \sin^4\theta\,d\theta - \int_{0}^{\pi} \sin^2\theta\cos^2\theta\,d\theta = -\frac{3\pi}{8} \]

2.5.3 Stokes 定理(Stokes' Theorem)

Stokes 定理是 Green 定理的高维推广:Green 定理把线积分与二重积分联系起来,而 Stokes 定理则把线积分与曲面积分联系起来。设 \(\mathbf{v}\) 为矢量场,\(S\) 为定向曲面,\(C\)\(S\) 的边界曲线且按右手定则定向(如图 2.16 所示),则 Stokes 定理陈述为

\[ \iint_S [\nabla \times \mathbf{v}] \cdot d\mathbf{S} = \oint_C \mathbf{v} \cdot d\mathbf{r} \]

其中 \(\mathbf{r}\) 满足 \(d\mathbf{r}/ds\) 是单位切矢量,\(s\)\(C\) 的弧长。曲线 \(C\) 的方向必须为正方向,即按右手定则当曲面法向 \(d\mathbf{S}\) 指向观察者时,\(d\mathbf{r}\) 指向逆时针。

2.5.4 散度定理(Divergence Theorem)

\(V\) 是三维空间中具有边界 \(S\) 的一个体积(如图 2.17 所示),\(\mathbf{n}\) 是指向 \(S\) 外侧的单位法向,若 \(\mathbf{v}\) 是定义在 \(V\) 上的矢量场,则散度定理(亦称 Gauss 定理)表述为

\[ \iiint_V (\nabla \cdot \mathbf{v})\,dV = \iint_S \mathbf{v} \cdot \mathbf{n}\,dS \]

散度定理意味着,矢量场穿过闭曲面的净通量等于该曲面所围区域内所有源与汇的体积总和(即其散度的体积分)。该定理是流体力学中的重要工具。

散度定理在不同语境下可推出许多有用的推论。特别地,将之应用于标量函数 \(s\) 与非零常矢量的乘积,可得重要关系

\[ \iiint_V [\nabla s]\,dV = \iint_S s\,d\mathbf{S} \]

散度定理同样适用于张量,此时写作

\[ \iiint_V [\nabla \cdot \mathbf{s}]\,dV = \iint_S [\mathbf{s} \cdot \mathbf{n}]\,dS \]

例 8:用散度定理计算

\[ \iint_{\partial V} \mathbf{F} \cdot d\mathbf{S}, \quad \mathbf{F} = (3x + z^5)\mathbf{i} + (y^2 - \sin(x^2 z))\mathbf{j} + (xz + y e^x)\mathbf{k} \]

其中 \(V\) 是由 \(0 \leq x \leq 1\)\(0 \leq y \leq 3\)\(0 \leq z \leq 2\) 所围的长方体。该矢量场直接积分比较困难,利用散度定理可将其化为体积分

\[ \iiint_V (\nabla \cdot \mathbf{F})\,dV \]

逐项求偏导得

\[ \nabla \cdot \mathbf{F} = 3 + 2y + x \]

;沿长方体积分

\[ \int_0^1 \int_0^3 \int_0^2 (3 + 2y + x)\,dz\,dy\,dx = \int_0^1 \int_0^3 (6 + 4y + 2x)\,dy\,dx = \int_0^1 (18 + 18 + 6x)\,dx = 39 \]

2.5.5 Leibniz 积分法则(Leibniz Integral Rule)

Leibniz 积分法则给出对带有可变上下限的定积分求导的公式。设 \(\phi(x, t)\) 是依赖于空间变量 \(x\) 与时间 \(t\) 的函数,则 Leibniz 积分法则可陈述为

\[ \frac{d}{dt}\int_{a(t)}^{b(t)} \phi(x, t)\,dx = \int_{a(t)}^{b(t)} \frac{\partial \phi}{\partial t}\,dx + \phi(b(t), t)\frac{db}{dt} - \phi(a(t), t)\frac{da}{dt} \]

式中等号右侧三项的几何含义可由图 2.18 直观看出:第一项表示被积函数 \(\phi\) 随时间变化对积分的贡献;第二、三项则分别描述因积分上限与下限移动而造成的"积分区间扩大或缩小"。

将该公式推广到三维形式:设 \(V(t)\) 是由表面 \(S(t)\) 包围的体积,表面元素以速度 \(\mathbf{v}_s\) 运动,则

\[ \frac{d}{dt}\int_{V(t)} \phi\,dV = \int_{V(t)} \frac{\partial \phi}{\partial t}\,dV + \int_{S(t)} \phi (\mathbf{v}_s \cdot \mathbf{n})\,dS \]

其中 \(\phi(t, \mathbf{x})\) 是空间与时间的标量函数。当体积 \(V\) 不动时,该式退化为

\[ \frac{d}{dt}\int_V \phi\,dV = \int_V \frac{\partial \phi}{\partial t}\,dV \]

上述公式同样适用于矢量与张量情形。

2.6 收尾(Closure)

本章简要回顾了矢量与张量运算,并介绍了矢量计算的若干基本定理。下一章将基于本章内容,推导本书所关心的传递现象守恒方程。

本章个人批注

本章名为"复习",但 Moukalled 团队刻意把它写得相当自足——不仅罗列定义,还把后续守恒方程推导所需要的全部运算工具(梯度、散度、旋度、对称正定矩阵、Cholesky 分解、张量的并矢积/双点积、Green/Stokes/散度/Leibniz 四个基本定理)完整走了一遍。这反映出 FVM 教材一个朴素的判断:CFD 研究生读者对本科阶段的线代与矢量计算掌握参差不齐,而后续几章每一节都会直接调用这些恒等式,所以与其后文遇到时临时回顾,不如在第二章一次性铺设完毕。

我个人读这一章有几处值得注意的地方。其一,2.2.7 节对散度和旋度的物理解释相当简洁——"散度衡量矢量场指向区域内部或外部的程度"、"旋度衡量绕该点的旋转"——这种几何→物理对应在后续涡量、不可压缩性(散度为零)等讨论中会反复用到。其二,2.3.5 节关于对称正定矩阵的 Cholesky 分解是隐伏伏笔:FVM 最终形成的线性系统系数矩阵通常对称正定,这意味着 LU 分解之外还存在数值稳定性更好的 Cholesky 路径,后续章节很可能直接调用这一结论而不重新推导。其三,2.5.4 节在散度定理的"通量形式"之外,单独列出张量版本的散度定理——这正是 FVM 推导动量方程时把"控制体表面积分 ∫v·n dS"转化为"控制体体积分 ∫∇·(...)dV"的关键工具,在第 3 章几乎会原样照搬。

习题部分我特意不写,因为它们针对的是读者训练,而非源文论点;但习题 7(用散度定理验证长方体通量)和习题 11(在圆柱上验证 Gauss 定理)直接呼应 2.5.4 节的例 8,算是对正文最直接的应用。

与上下章的衔接(一段话)

从结构上看,第 1 章 Introduction 给出全书的目标、约定与大纲,2 章紧接其后铺平数学地基——这是 Moukalled 团队与 Patankar(FVM 的另一经典教材)的共同选择:与其在前几章穿插"用到的数学工具",不如一次性集中处理,使后续守恒方程推导能完全集中在物理意义与离散策略上。第 3 章"Mathematical Description of Physical Phenomena"将基于本章给出的梯度、散度、旋度、Green/Stokes/散度等定理,推导质量、动量、能量等守恒方程的连续(积分与微分)形式——可以说,本章就是第 3 章的"工具抽屉",而 3 章才真正开始进入 CFD 的核心议题。