第二章矩阵-5.矩阵分块法

3 阅读4分钟

矩阵分块法(详细讲解)

矩阵分块,就是把一个大矩阵用横线、竖线切成若干个“小矩阵块”,把每个块当作一个“元素”来运算。 它的核心作用:

  • 简化大矩阵运算
  • 揭示矩阵结构(对角块、分块对角、分块上三角)
  • 方便求逆、求行列式、做乘法、解方程组

1.基本概念

AAm×nm\times n 矩阵,用若干条水平、垂直分割线AA 分成若干小矩阵,每个小矩阵叫子块

例:

A=(123456789)=(A11A12A21A22)A= \begin{pmatrix} 1&2&|&3\\ 4&5&|&6\\ \hline 7&8&|&9 \end{pmatrix} = \begin{pmatrix} A_{11}&A_{12}\\ A_{21}&A_{22} \end{pmatrix}

其中 A11=(1245), A12=(36), A21=(7 8), A22=(9)A_{11}=\begin{pmatrix}1&2\\4&5\end{pmatrix},\ A_{12}=\begin{pmatrix}3\\6\end{pmatrix},\ A_{21}=(7\ 8),\ A_{22}=(9)

分块方式完全自由,只要分割合理、运算时维度匹配即可。


2.分块矩阵的基本运算

2.1 加法

同型矩阵、且分块方式完全相同时,对应子块相加。

A=(A11A12A21A22),B=(B11B12B21B22)A=\begin{pmatrix}A_{11}&A_{12}\\A_{21}&A_{22}\end{pmatrix},\quad B=\begin{pmatrix}B_{11}&B_{12}\\B_{21}&B_{22}\end{pmatrix}
A+B=(A11+B11A12+B12A21+B21A22+B22)A+B= \begin{pmatrix} A_{11}+B_{11}&A_{12}+B_{12}\\ A_{21}+B_{21}&A_{22}+B_{22} \end{pmatrix}

2.2 数乘

kk 乘分块矩阵,等于乘每个子块:

kA=(kA11kA12kA21kA22)kA= \begin{pmatrix} kA_{11}&kA_{12}\\ kA_{21}&kA_{22} \end{pmatrix}

2.3 转置

先整体转置,再每个子块内部转置

A=(A11A12A21A22)AT=(A11TA21TA12TA22T)A=\begin{pmatrix}A_{11}&A_{12}\\A_{21}&A_{22}\end{pmatrix} \quad\Rightarrow\quad A^T=\begin{pmatrix}A_{11}^T&A_{21}^T\\A_{12}^T&A_{22}^T\end{pmatrix}

注意:

  • 行块变列块
  • 每个小块自己也要转置

2.4 乘法

AAm×nm \times n 矩阵,BBn×pn \times p 矩阵,将它们分块如下:

A=(A11A12A21A22),B=(B11B12B21B22)A = \begin{pmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{pmatrix}, \quad B = \begin{pmatrix} B_{11} & B_{12} \\ B_{21} & B_{22} \end{pmatrix}

其中 A11A_{11} 的列数等于 B11B_{11} 的行数,A12A_{12} 的列数等于 B21B_{21} 的行数,等等,则:

AB=(A11B11+A12B21A11B12+A12B22A21B11+A22B21A21B12+A22B22)AB = \begin{pmatrix} A_{11}B_{11}+A_{12}B_{21} & A_{11}B_{12}+A_{12}B_{22} \\ A_{21}B_{11}+A_{22}B_{21} & A_{21}B_{12}+A_{22}B_{22} \end{pmatrix}

3.分块矩阵乘法(最重要)

规则

Am×s=(A11A1tAp1Apt),Bs×n=(B11B1qBt1Btq)A_{m\times s}= \begin{pmatrix} A_{11}&\cdots&A_{1t}\\ \vdots&&\vdots\\ A_{p1}&\cdots&A_{pt} \end{pmatrix},\quad B_{s\times n}= \begin{pmatrix} B_{11}&\cdots&B_{1q}\\ \vdots&&\vdots\\ B_{t1}&\cdots&B_{tq} \end{pmatrix}

AB=(C11C1qCp1Cpq)AB= \begin{pmatrix} C_{11}&\cdots&C_{1q}\\ \vdots&&\vdots\\ C_{p1}&\cdots&C_{pq} \end{pmatrix}

其中

Cij=k=1tAikBkjC_{ij}=\sum_{k=1}^t A_{ik}B_{kj}

关键要求

AA列分块必须与 BB行分块一致, 即 AikA_{ik} 的列数 = BkjB_{kj} 的行数。


常用简化:按列/按行分块

A=(aij)m×sA=(a_{ij})_{m\times s}B=(bij)s×nB=(b_{ij})_{s\times n}

1)把 B 按列分块

B=(β1,β2,,βn)B=(\beta_1,\beta_2,\dots,\beta_n)
AB=A(β1,β2,,βn)=(Aβ1,Aβ2,,Aβn)AB=A(\beta_1,\beta_2,\dots,\beta_n) =(A\beta_1,A\beta_2,\dots,A\beta_n)

2)把 A 按行分块

A=(α1α2αm)A=\begin{pmatrix}\alpha_1\\\alpha_2\\\vdots\\\alpha_m\end{pmatrix}
AB=(α1Bα2BαmB)AB=\begin{pmatrix}\alpha_1B\\\alpha_2B\\\vdots\\\alpha_mB\end{pmatrix}

4.特殊分块矩阵

4.1 分块对角矩阵

A=diag(A1,A2,,As)=(A1A2As)A=\operatorname{diag}(A_1,A_2,\dots,A_s) = \begin{pmatrix} A_1&&&\\ &A_2&&\\ &&\ddots&\\ &&&A_s \end{pmatrix}

其中 AiA_i 均为方阵。

A=(A1000A2000Ak)A = \begin{pmatrix} A_1 & 0 & \cdots & 0 \\ 0 & A_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & A_k \end{pmatrix}

性质:

  • 若每个 AiA_i 可逆,则
    • A1=(A1100Ak1)A^{-1} = \begin{pmatrix} A_1^{-1} & & 0 \\ & \ddots & \\ 0 & & A_k^{-1} \end{pmatrix}(若各子块可逆)
  • 也即:
A1=diag(A11,A21,,As1)A^{-1}=\operatorname{diag}(A_1^{-1},A_2^{-1},\dots,A_s^{-1})
  • A=A1A2Ak|A| = |A_1| \cdot |A_2| \cdots |A_k|
  • 也即:
    • detA=detA1detA2detAs\det A=\det A_1\cdot\det A_2\cdots\det A_s
  • 秩:rank(A)=rank(Ai)\text{rank}(A) = \sum \text{rank}(A_i)

4.2 分块三角矩阵

分块上三角矩阵:

A=(A11A120A22)A= \begin{pmatrix} A_{11}&A_{12}\\ 0&A_{22} \end{pmatrix}

A11,A22A_{11},A_{22} 为方阵,则

detA=detA11detA22\det A=\det A_{11}\cdot\det A_{22}

同理分块下三角:

A=(A110A21A22)detA=detA11detA22A= \begin{pmatrix} A_{11}&0\\ A_{21}&A_{22} \end{pmatrix} \quad\Rightarrow\quad \det A=\det A_{11}\det A_{22}

性质:

  • A=A11A22|A| = |A_{11}| \cdot |A_{22}|

5.分块求逆(高频考点)

5.1 2×2 分块矩阵求逆

M=(ABCD)M=\begin{pmatrix}A&B\\C&D\end{pmatrix}

AA 可逆,可构造舒尔补求逆:

M1=(A1+A1BS1CA1A1BS1S1CA1S1)M^{-1}= \begin{pmatrix} A^{-1}+A^{-1}BS^{-1}CA^{-1}&-A^{-1}BS^{-1}\\ -S^{-1}CA^{-1}&S^{-1} \end{pmatrix}

其中舒尔补

S=DCA1BS=D-CA^{-1}B

常用特例:

1)上三角分块

(AB0D)1=(A1A1BD10D1)\begin{pmatrix}A&B\\0&D\end{pmatrix}^{-1} = \begin{pmatrix} A^{-1}&-A^{-1}BD^{-1}\\ 0&D^{-1} \end{pmatrix}

2)对角块

(A00D)1=(A100D1)\begin{pmatrix}A&0\\0&D\end{pmatrix}^{-1} = \begin{pmatrix}A^{-1}&0\\0&D^{-1}\end{pmatrix}

5.2 分块求逆原理

5.2.1 核心原理只有一句话

分块矩阵求逆,本质就是:把“块”当成普通元素, 利用 AA1=EAA^{-1}=E 这个定义,列方程解出来。

和你求

(abcd)1\begin{pmatrix}a&b\\c&d\end{pmatrix}^{-1}

的逻辑完全一样,只是把数字 a,b,c,da,b,c,d 换成了矩阵 A,B,C,DA,B,C,D


5.2.2 先回顾:普通 2×2 数字矩阵求逆原理

M=(abcd)M=\begin{pmatrix}a&b\\c&d\end{pmatrix}

设逆矩阵

M1=(xyzw)M^{-1}=\begin{pmatrix}x&y\\z&w\end{pmatrix}

根据定义:

MM1=E=(1001)MM^{-1}=E=\begin{pmatrix}1&0\\0&1\end{pmatrix}

展开得到方程组:

{ax+bz=1ay+bw=0cx+dz=0cy+dw=1\begin{cases} ax+bz=1\\ ay+bw=0\\ cx+dz=0\\ cy+dw=1 \end{cases}

解出 x,y,z,wx,y,z,w,就得到逆矩阵公式。

5.2.3 分块矩阵求逆:一模一样的逻辑

现在把数字换成矩阵块

M=(ABCD)M=\begin{pmatrix} A & B\\ C & D \end{pmatrix}

假设逆矩阵长这样:

M1=(XYZW)M^{-1}=\begin{pmatrix} X & Y\\ Z & W \end{pmatrix}

根据逆矩阵定义:

MM1=E\boxed{M\,M^{-1}=E}

这里的单位矩阵 EE 也是分块单位阵:

E=(EOOE)E=\begin{pmatrix}E&O\\O&E\end{pmatrix}
5.2.4 展开乘法,得到四个方程

直接按分块乘法乘开:

(ABCD)(XYZW)=(EOOE)\begin{pmatrix}A&B\\C&D\end{pmatrix} \begin{pmatrix}X&Y\\Z&W\end{pmatrix} = \begin{pmatrix}E&O\\O&E\end{pmatrix}

得到四个矩阵方程

  1. AX+BZ=E\boxed{AX + BZ = E}
  2. AY+BW=O\boxed{AY + BW = O}
  3. CX+DZ=O\boxed{CX + DZ = O}
  4. CY+DW=E\boxed{CY + DW = E}

这就是所有分块求逆公式的来源! 后面所有公式,都是解这四个方程解出来的。

5.2.5 最简单的例子:分块对角矩阵推导
M=(AOOD)M=\begin{pmatrix}A&O\\O&D\end{pmatrix}

代入方程:

  1. AX+OZ=EAX=EX=A1AX + OZ = E\Rightarrow AX=E\Rightarrow \boxed{X=A^{-1}}
  2. AY+OW=OAY=OY=OAY + OW = O\Rightarrow AY=O\Rightarrow \boxed{Y=O}
  3. OX+DZ=ODZ=OZ=OOX + DZ = O\Rightarrow DZ=O\Rightarrow \boxed{Z=O}
  4. OY+DW=EDW=EW=D1OY + DW = E\Rightarrow DW=E\Rightarrow \boxed{W=D^{-1}}

所以

M1=(A1OOD1)M^{-1}=\begin{pmatrix}A^{-1}&O\\O&D^{-1}\end{pmatrix}
5.2.6 分块上三角矩阵推导
M=(ABOD)M=\begin{pmatrix}A&B\\O&D\end{pmatrix}

方程变成:

  1. AX+BZ=EAX+BZ=E
  2. AY+BW=OAY+BW=O
  3. OX+DZ=ODZ=OZ=OOX + DZ=O\Rightarrow DZ=O\Rightarrow \boxed{Z=O}
  4. OY+DW=EW=D1OY + DW=E\Rightarrow \boxed{W=D^{-1}}

Z=OZ=O 代入 1:

AX=EX=A1AX=E\Rightarrow \boxed{X=A^{-1}}

W=D1W=D^{-1} 代入 2:

AY+BD1=OAY=BD1Y=A1BD1AY + B D^{-1}=O \Rightarrow AY=-BD^{-1} \Rightarrow \boxed{Y=-A^{-1}BD^{-1}}

于是得到:

M1=(A1A1BD1OD1)M^{-1}=\begin{pmatrix} A^{-1}&-A^{-1}BD^{-1}\\ O&D^{-1} \end{pmatrix}

这就是你看到的公式,完全是解方程解出来的。

5.2.7 一般分块矩阵公式怎么来的?

回到通用情况:

M=(ABCD)M=\begin{pmatrix}A&B\\C&D\end{pmatrix}

方程:

  1. AX+BZ=EAX+BZ=E
  2. AY+BW=OAY+BW=O
  3. CX+DZ=OCX+DZ=O
  4. CY+DW=ECY+DW=E

假设 AA 可逆,从 1 解出:

X=A1(EBZ)X=A^{-1}(E-BZ)

代入 3:

CA1(EBZ)+DZ=OC A^{-1}(E-BZ)+DZ=O

整理:

(DCA1B)Z=CA1(D-CA^{-1}B)Z = -CA^{-1}

S=DCA1B(这就是舒尔补)\boxed{S=D-CA^{-1}B} \quad \text{(这就是舒尔补)}

Z=S1CA1Z=-S^{-1}CA^{-1}

再代回去求 X,Y,WX,Y,W,就能得到完整公式:

M1=(A1+A1BS1CA1A1BS1S1CA1S1)M^{-1}= \begin{pmatrix} A^{-1}+A^{-1}BS^{-1}CA^{-1}&-A^{-1}BS^{-1}\\ -S^{-1}CA^{-1}&S^{-1} \end{pmatrix}
5.2.8 一句话总结原理
  1. 逆矩阵的定义:AA1=EAA^{-1}=E
  2. 对分块矩阵,把块当元素,写出乘法等式
  3. 展开得到矩阵方程组
  4. 解方程组,就得到所有分块求逆公式

没有任何神秘原理,就是“定义 + 解方程”。


6.典型应用

6.1 计算高阶矩阵的乘法

将大矩阵分块后,可以转化为小矩阵的乘法,便于手算或编程实现。

6.2 解线性方程组

对于分块线性方程组:

(A11A12A21A22)(x1x2)=(b1b2)\begin{pmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} b_1 \\ b_2 \end{pmatrix}

可通过消元法转化为:

(A22A21A111A12)x2=b2A21A111b1(A_{22} - A_{21}A_{11}^{-1}A_{12})x_2 = b_2 - A_{21}A_{11}^{-1}b_1
A11x1=b1A12x2A_{11}x_1 = b_1 - A_{12}x_2

这种方法在处理大型稀疏矩阵时特别有效。

6.3 矩阵的秩理论

利用分块矩阵可以证明许多秩的等式和不等式,如:

rank(A+B)rank(A)+rank(B)\text{rank}(A+B) \le \text{rank}(A) + \text{rank}(B)
rank(AB)rank(A)+rank(B)n\text{rank}(AB) \ge \text{rank}(A) + \text{rank}(B) - n

7.一句话总结

矩阵分块就是**“矩阵的模块化运算”**:

  • 切块 → 把子块当元素
  • 加法:同结构对应相加
  • 乘法:行列匹配,按“行乘列求和”
  • 对角/三角分块:行列式、求逆直接简化

8.参考文献

本文参考AI回答,豆包,Deepseek,千问