研一数学基础复习笔记(二):分块矩阵与工程计算思维

1. 为什么面试前要看这个问题?

上一篇主要整理了矩阵为什么是力学计算的基本语言。简单来说,连续力学问题经过离散化之后,往往会形成矩阵方程,例如有限元中的:

$$ \mathbf{K}\mathbf{u}=\mathbf{F} $$

但是在真正的工程计算里,我们面对的矩阵通常不是几行几列的小矩阵,而是几千、几万甚至上百万自由度的大矩阵。

这时如果还把矩阵只看成一个完整的“大数表”,就很难理解后续的计算过程。

所以需要引入一种更工程化的理解方式:分块矩阵

分块矩阵的核心思想是:

不把复杂系统看成一个整体硬算,而是按照自由度、物理区域、边界条件或子结构,把整体问题拆成若干相互耦合的子问题。

这和工程分析的思维非常一致。比如有限元中经常需要区分:

  • 已知位移自由度和未知位移自由度;
  • 内部自由度和边界自由度;
  • 主自由度和从自由度;
  • 不同子结构之间的耦合关系;
  • 不同物理场之间的耦合关系。

这些问题都可以用分块矩阵来表达。

因此,这一篇的重点不是单纯复习矩阵乘法规则,而是理解:

矩阵乘法和分块矩阵为什么是工程计算中组织复杂系统的重要工具。


2. 核心概念

2.1 矩阵乘法描述的是“耦合关系”

设有两个矩阵:

$$ \mathbf{A}=(a_{ij})_{m \times s} $$ $$ \mathbf{B}=(b_{ij})_{s \times n} $$

如果 $\mathbf{A}$ 的列数等于 $\mathbf{B}$ 的行数,则可以定义矩阵乘法:

$$ \mathbf{C}=\mathbf{A}\mathbf{B} $$

其中:

$$ c_{ij}=\sum_{k=1}^{s}a_{ik}b_{kj} $$

从计算公式看,矩阵乘法是在做“行乘列”的累加。

但从工程角度看,矩阵乘法更重要的意义是:

它描述了一个变量经过线性关系映射到另一个变量的过程。

例如:

$$ \mathbf{K}\mathbf{u}=\mathbf{F} $$

这里的 $\mathbf{K}$ 就是把位移向量 $\mathbf{u}$ 映射为力向量 $\mathbf{F}$ 的线性算子。

如果写成分量形式:

$$ F_i=\sum_{j=1}^{n}K_{ij}u_j $$

可以看到,第 $i$ 个力分量不仅可能和第 $i$ 个位移有关,也可能和其他位移分量有关。

这说明矩阵乘法天然适合描述多自由度系统中的耦合关系。


2.2 矩阵乘法一般不满足交换律

矩阵乘法一般不满足:

$$ \mathbf{A}\mathbf{B}=\mathbf{B}\mathbf{A} $$

也就是说,大多数情况下:

$$ \mathbf{A}\mathbf{B}\ne \mathbf{B}\mathbf{A} $$

这个性质在面试中很容易被问到。

可以这样理解:

矩阵乘法往往表示线性变换的复合,而变换的先后顺序通常会影响结果。

比如先旋转再拉伸,和先拉伸再旋转,最终结果一般不同。

在数值计算中,这一点也很重要。例如:

$$ \mathbf{P}^{-1}\mathbf{A}\mathbf{P} $$

表示对矩阵 $\mathbf{A}$ 进行相似变换。这里左乘和右乘的矩阵不能随意交换,否则含义就变了。

所以矩阵乘法不满足交换律不是一个“麻烦的性质”,而是在提醒我们:

矩阵操作是有方向、有顺序、有物理含义的。


2.3 矩阵转置改变的是行列关系

矩阵转置记为:

$$ \mathbf{A}^{\mathrm{T}} $$

它的作用是把矩阵的行和列互换。

矩阵乘法和转置之间有一个重要性质:

$$ (\mathbf{A}\mathbf{B})^{\mathrm{T}}=\mathbf{B}^{\mathrm{T}}\mathbf{A}^{\mathrm{T}} $$

注意,转置之后乘法顺序会反过来。

这一点在推导能量表达式、弱形式、变分公式时经常出现。例如结构力学中常见的二次型:

$$ \mathbf{u}^{\mathrm{T}}\mathbf{K}\mathbf{u} $$

如果 $\mathbf{K}$ 是对称矩阵,即:

$$ \mathbf{K}=\mathbf{K}^{\mathrm{T}} $$

那么很多推导会变得更简洁。

这也是为什么对称矩阵在力学和数值计算中如此重要。


3. 关键公式

3.1 矩阵乘法公式

矩阵乘法的基本公式是:

$$ \mathbf{C}=\mathbf{A}\mathbf{B} $$

其中:

$$ c_{ij}=\sum_{k=1}^{s}a_{ik}b_{kj} $$

维度关系为:

$$ (m \times s)(s \times n) = m \times n $$

也就是说,两个矩阵能否相乘,首先要看中间维度是否一致。


3.2 矩阵乘法的常见性质

矩阵乘法满足结合律:

$$ (\mathbf{A}\mathbf{B})\mathbf{C}=\mathbf{A}(\mathbf{B}\mathbf{C}) $$

满足分配律:

$$ \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})^{\mathrm{T}}=\mathbf{B}^{\mathrm{T}}\mathbf{A}^{\mathrm{T}} $$

单位矩阵满足:

$$ \mathbf{I}\mathbf{A}=\mathbf{A}\mathbf{I}=\mathbf{A} $$

但需要特别注意:

$$ \mathbf{A}\mathbf{B}\ne \mathbf{B}\mathbf{A} $$

这说明矩阵乘法虽然有很多和普通数乘法相似的地方,但不能完全用标量乘法的直觉来理解。


3.3 分块矩阵的基本形式

一个矩阵可以按行和列划分成若干子块。例如:

$$ \mathbf{A}= \begin{bmatrix} \mathbf{A}_{11} & \mathbf{A}_{12} \\ \mathbf{A}_{21} & \mathbf{A}_{22} \end{bmatrix} $$

这里的每个 $\mathbf{A}_{ij}$ 本身也是一个矩阵。

如果另一个矩阵也按相同规则分块:

$$ \mathbf{B}=\begin{bmatrix} \mathbf{B}_{11} & \mathbf{B}_{12} \\ \mathbf{B}_{21} & \mathbf{B}_{22} \end{bmatrix} $$

那么在维度匹配的情况下,有:

$$ \mathbf{A}+\mathbf{B}= \begin{bmatrix} \mathbf{A}_{11}+\mathbf{B}_{11} & \mathbf{A}_{12}+\mathbf{B}_{12} \\ \mathbf{A}_{21}+\mathbf{B}_{21} & \mathbf{A}_{22}+\mathbf{B}_{22} \end{bmatrix} $$

分块矩阵乘法则类似普通矩阵乘法:

$$ \mathbf{C}=\mathbf{A}\mathbf{B}=\begin{bmatrix} \mathbf{C}_{11} & \mathbf{C}_{12} \\ \mathbf{C}_{21} & \mathbf{C}_{22} \end{bmatrix} $$

其中:

$$ \mathbf{C}_{11}=\mathbf{A}_{11}\mathbf{B}_{11} + \mathbf{A}_{12}\mathbf{B}_{21} $$ $$ \mathbf{C}_{12}=\mathbf{A}_{11}\mathbf{B}_{12} + \mathbf{A}_{12}\mathbf{B}_{22} $$ $$ \mathbf{C}_{21}=\mathbf{A}_{21}\mathbf{B}_{11} + \mathbf{A}_{22}\mathbf{B}_{21} $$ $$ \mathbf{C}_{22}=\mathbf{A}_{21}\mathbf{B}_{12} + \mathbf{A}_{22}\mathbf{B}_{22} $$

可以看出,分块矩阵乘法本质上还是矩阵乘法,只是把“数”换成了“小矩阵”。


4. 和力学/数值计算的联系

4.1 分块矩阵可以表达自由度划分

有限元计算中,整体方程常写成:

$$ \mathbf{K}\mathbf{u}=\mathbf{F} $$

如果将自由度分为两组,例如:

  • $\mathbf{u}_1$:未知自由度;
  • $\mathbf{u}_2$:已知或约束自由度;

则可以写成分块形式:

$$ \begin{bmatrix} \mathbf{K}_{11} & \mathbf{K}_{12} \\ \mathbf{K}_{21} & \mathbf{K}_{22} \end{bmatrix} \begin{bmatrix} \mathbf{u}_1 \\ \mathbf{u}_2 \end{bmatrix}=\begin{bmatrix} \mathbf{F}_1 \\ \mathbf{F}_2 \end{bmatrix} $$

展开后得到:

$$ \mathbf{K}_{11}\mathbf{u}_1+\mathbf{K}_{12}\mathbf{u}_2=\mathbf{F}_1 $$ $$ \mathbf{K}_{21}\mathbf{u}_1+\mathbf{K}_{22}\mathbf{u}_2=\mathbf{F}_2 $$

如果 $\mathbf{u}_2$ 是已知边界位移,那么第一行可以用来求解未知位移 $\mathbf{u}_1$。

这说明分块矩阵可以把边界条件自然地纳入方程处理。


4.2 分块矩阵可以表达子结构耦合

在大型结构分析中,一个整体结构可以拆成多个子结构。

例如:

  • 桥梁可以拆成桥墩、桥面、支座;
  • 飞行器结构可以拆成机翼、机身、连接部位;
  • 建筑结构可以拆成不同楼层或不同构件组。

每个子结构都有自己的刚度矩阵,但它们之间还存在连接关系。

这时整体刚度矩阵可以理解成:

$$ \mathbf{K}=\begin{bmatrix} \mathbf{K}_{aa} & \mathbf{K}_{ab} \\ \mathbf{K}_{ba} & \mathbf{K}_{bb} \end{bmatrix} $$

其中:

  • $\mathbf{K}_{aa}$ 表示子结构 $a$ 内部自由度之间的关系;
  • $\mathbf{K}_{bb}$ 表示子结构 $b$ 内部自由度之间的关系;
  • $\mathbf{K}{ab}$ 和 $\mathbf{K}{ba}$ 表示两个子结构之间的耦合关系。

所以分块矩阵不仅是数学记号,也是一种结构化建模方式。


4.3 分块矩阵可以用于静力凝聚

在有限元和结构动力学中,有时会把自由度分成主自由度和从自由度。

设:

$$ \mathbf{u}= \begin{bmatrix} \mathbf{u}_m \\ \mathbf{u}_s \end{bmatrix} $$

其中:

  • $\mathbf{u}_m$ 是主自由度;
  • $\mathbf{u}_s$ 是从自由度。

整体方程写成:

$$ \begin{bmatrix} \mathbf{K}_{mm} & \mathbf{K}_{ms} \\ \mathbf{K}_{sm} & \mathbf{K}_{ss} \end{bmatrix} \begin{bmatrix} \mathbf{u}_m \\ \mathbf{u}_s \end{bmatrix} = \begin{bmatrix} \mathbf{F}_m \\ \mathbf{F}_s \end{bmatrix} $$

如果第二行可以解出 $\mathbf{u}_s$,就可以把从自由度消去,得到只关于主自由度的等效方程。

这种思想叫静力凝聚,也叫自由度缩减。

它的核心就是分块矩阵和矩阵消元。

这对大规模计算非常重要,因为它可以减少未知量数量,提高计算效率。


4.4 分块矩阵可以帮助理解多场耦合问题

在多物理场问题中,不同变量之间也常常形成分块结构。

例如热-结构耦合问题可能有:

$$ \begin{bmatrix} \mathbf{K}_{uu} & \mathbf{K}_{uT} \\ \mathbf{K}_{Tu} & \mathbf{K}_{TT} \end{bmatrix} \begin{bmatrix} \mathbf{u} \\ \mathbf{T} \end{bmatrix}=\begin{bmatrix} \mathbf{F}_u \\ \mathbf{F}_T \end{bmatrix} $$

其中:

  • $\mathbf{u}$ 表示位移变量;
  • $\mathbf{T}$ 表示温度变量;
  • $\mathbf{K}_{uu}$ 表示结构刚度部分;
  • $\mathbf{K}_{TT}$ 表示热传导部分;
  • $\mathbf{K}{uT}$ 和 $\mathbf{K}{Tu}$ 表示热场和位移场之间的耦合。

这样一看,分块矩阵就是多物理场耦合问题的天然表达方式。


5. 面试中可以怎么回答?

如果面试官问:

你怎么理解分块矩阵?

可以这样回答:

我理解分块矩阵不是简单地把矩阵切成几块,而是一种组织复杂系统的方法。数学上,它把大矩阵拆成若干子矩阵,并且可以按照块来进行加法、乘法和转置。力学上,分块矩阵可以对应不同自由度、不同子结构、不同边界条件或者不同物理场之间的耦合关系。在数值计算中,分块矩阵有助于处理边界条件、自由度消元、静力凝聚和多场耦合问题。

如果面试官问:

为什么矩阵乘法一般不满足交换律?

可以这样回答:

因为矩阵乘法通常表示线性变换的复合,而线性变换的顺序会影响结果。先做一个变换再做另一个变换,和反过来做,通常不是同一个过程。所以一般有 $\mathbf{A}\mathbf{B}\ne\mathbf{B}\mathbf{A}$。在工程计算中,这也提醒我们矩阵操作的先后顺序具有实际意义,不能随意交换。

如果面试官问:

分块矩阵在有限元中有什么用?

可以这样回答:

在有限元中,分块矩阵可以用来表达自由度划分和子结构耦合。例如整体方程 $\mathbf{K}\mathbf{u}=\mathbf{F}$ 可以按已知自由度和未知自由度进行分块,从而方便施加边界条件。也可以按主自由度和从自由度分块,进行静力凝聚,减少系统规模。因此分块矩阵是理解有限元装配、约束处理和自由度缩减的重要工具。

如果面试官问:

分块矩阵和工程思维有什么关系?

可以这样回答:

工程问题通常规模大、耦合多,不能只从整体上硬算。分块矩阵提供了一种分而治之的思路,把整体系统拆成若干子系统,同时保留子系统之间的耦合关系。这和工程分析中按构件、按区域、按自由度、按物理场建模的思路是一致的。


6. 这一篇的核心总结

这一篇主要复习了矩阵乘法和分块矩阵。

可以总结为三句话:

  1. 矩阵乘法描述的是变量之间的线性映射和耦合关系。
  2. 分块矩阵把复杂系统拆成若干子系统,并保留块之间的耦合。
  3. 在有限元和数值计算中,分块矩阵可以用于边界条件处理、自由度划分、静力凝聚和多场耦合建模。

所以,分块矩阵不仅是线性代数中的一种形式化技巧,更是一种非常重要的工程计算思维。

它体现的是:

面对复杂系统时,先拆分,再建立耦合关系,最后整体求解。


7. 下一篇预告

下一篇准备整理:

研一数学基础复习笔记(三):线性空间、基与正交化

下一篇会从线性空间、线性相关、基、坐标和 Gram-Schmidt 正交化讲起,重点理解为什么“基”和“正交化”是模态分析、POD 降阶和振型展开的数学基础。


研一数学基础复习笔记(二):分块矩阵与工程计算思维
http://zncddh.cn/2026/05/03/研一数学基础复习笔记(二):分块矩阵与工程计算思维/
作者
creativity
发布于
2026年5月3日
许可协议