舒尔补(Schur complement)是线性代数中的一个重要概念,经常在矩阵理论、优化问题和数值计算中出现。舒尔补可以用来简化大型线性系统的求解和分析,特别是在稀疏矩阵和块矩阵的情况下。
一、定义
设
M
M
M为一个
(
p
+
q
)
×
(
p
+
q
)
(p+q)\times(p+q)
(p+q)×(p+q)的方阵:
M
=
[
A
B
C
D
]
\mathrm M=\begin{bmatrix}\mathrm A&\mathrm B\\\mathrm C&\mathrm D\end{bmatrix}
M=[ACBD]
其中
A
,
B
,
C
,
D
A,B,C,D
A,B,C,D分别表示
p
×
p
,
p
×
q
,
q
×
p
,
q
×
q
p\times p,p\times q,q\times p,q\times q
p×p,p×q,q×p,q×q 维度的矩阵,
p
,
q
p,q
p,q为两个非负整数。
如果
D
D
D是可逆的,则矩阵
D
D
D的 Schur complement 被定义为:
M
/
D
:
=
A
−
B
D
−
1
C
.
\mathrm{M/D}:=\mathrm{A}-\mathrm{BD}^{-1}\mathrm{C}.
M/D:=A−BD−1C.
如果
A
A
A是可逆,则矩阵
A
A
A的 Schur complement 被定义为:
M
/
A
:
=
D
−
C
A
−
1
B
.
\mathrm{M}/\mathrm{A}:=\mathrm{D}-\mathrm{C}\mathrm{A}^{-1}\mathrm{B}.
M/A:=D−CA−1B.
Tips:顺时针记忆.
二、推导
当对矩阵
M
M
M执行块高斯消元时,会产生舒尔补。为了消去块对角线以下的元素,需要将矩阵
M
M
M乘以一个块下三角矩阵,如下所示:
M
=
[
A
B
C
D
]
→
[
A
B
C
D
]
[
I
p
0
−
D
−
1
C
I
q
]
=
[
A
−
B
D
−
1
C
B
0
D
]
,
\begin{aligned}&M=\begin{bmatrix}A&B\\C&D\end{bmatrix}\quad\to\quad\begin{bmatrix}A&B\\C&D\end{bmatrix}\begin{bmatrix}I_p&0\\-D^{-1}C&I_q\end{bmatrix}=\begin{bmatrix}A-BD^{-1}C&B\\0&D\end{bmatrix},\end{aligned}
M=[ACBD]→[ACBD][Ip−D−1C0Iq]=[A−BD−1C0BD],
进一步,我们还可以将
M
M
M分解为对角块矩阵:
M
=
[
A
B
C
D
]
=
[
I
p
B
D
−
1
0
I
q
]
[
A
−
B
D
−
1
C
0
0
D
]
[
I
p
0
D
−
1
C
I
q
]
.
\mathrm M=\begin{bmatrix}\mathrm A&\mathrm B\\\mathrm C&\mathrm D\end{bmatrix}=\begin{bmatrix}\mathrm I_\mathrm p&\mathrm B\mathrm D^{-1}\\0&\mathrm I_\mathrm q\end{bmatrix}\:\begin{bmatrix}\mathrm A-\mathrm B\mathrm D^{-1}\mathrm C&0\\0&\mathrm D\end{bmatrix}\:\begin{bmatrix}\mathrm I_\mathrm p&0\\\mathrm D^{-1}\mathrm C&\mathrm I_\mathrm q \end{bmatrix}.
M=[ACBD]=[Ip0BD−1Iq][A−BD−1C00D][IpD−1C0Iq].
三、一些性质
下面假设 A A A可逆,则其舒尔补为 M / A . \mathrm{M}/\mathrm{A}. M/A.
- det M = det A det M / A \det M= \det A\det \mathrm{M}/\mathrm{A} detM=detAdetM/A.
- rank M = rank A + rank M / A \operatorname{rank} M= \operatorname{rank} A+\operatorname{rank} \mathrm{M}/\mathrm{A} rankM=rankA+rankM/A.
- 如果
M
M
M是Hermitian矩阵,则存在非奇异矩阵
T
T
T,使得:
T M T ∗ = [ A 0 0 M / A ] \mathrm{TMT^*}= \begin{bmatrix}\mathrm A&\mathrm 0\\ \mathrm 0&\mathrm{M}/\mathrm{A} \end{bmatrix} TMT∗=[A00M/A]
其中 T ∗ T^* T∗为 T T T的共轭转置,也就是说当 M M M为Hermitian矩阵时,存在一个合同变换将 M M M变换为块对角矩阵,而合同变换有一个性质是不会改变Hermitian矩阵的惯性指数(正、负、零特征值的个数).由这个性质可以自然的推导出下面的性质. - 用来判断
M
M
M或者
M
/
A
\mathrm{M}/\mathrm{A}
M/A是否正定的性质:
M ≻ 0 ⇔ A ≻ 0 , M / A ≻ 0 M\succ0 \Leftrightarrow A\succ0,\mathrm{M}/\mathrm{A}\succ0 M≻0⇔A≻0,M/A≻0
也就是说,M是否正定可以用A是否正定来判断,反之亦然.在优化领域中常用判断矩阵是否正定.
四、解线性方程组
舒尔补会在求解线性方程组时出现,例如我们要求解如下方程组 :
[
A
B
C
D
]
[
x
y
]
=
[
u
v
]
.
\left[\begin{array}{ll} A & B \\ C & D \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right]=\left[\begin{array}{l} u \\ v \end{array}\right].
[ACBD][xy]=[uv].
假设子矩阵
A
A
A是可逆的,我们可以从方程中消除
x
x
x,如下所示:
x
=
A
−
1
(
u
−
B
y
)
,
x=A^{-1}(u-B y),
x=A−1(u−By),
将这个表达式代入第二个方程得到
(
D
−
C
A
−
1
B
)
y
=
v
−
C
A
−
1
u
.
\left(D-C A^{-1} B\right) y=v-C A^{-1} u .
(D−CA−1B)y=v−CA−1u.
我们将其称为从原始方程中消除
x
x
x后得到的简化方程。在简化方程中出现的矩阵被称为
M
M
M中第一个块
A
A
A的舒尔补,我们记为:
S
=
def
D
−
C
A
−
1
B
.
S \stackrel{\text { def }}{=} D-C A^{-1} B.
S= def D−CA−1B.
解简化后的方程,得到
y
=
S
−
1
(
v
−
C
A
−
1
u
)
.
y=S^{-1}\left(v-C A^{-1} u\right) .
y=S−1(v−CA−1u).
将它代入第一个方程得到
x
=
(
A
−
1
+
A
−
1
B
S
−
1
C
A
−
1
)
u
−
A
−
1
B
S
−
1
v
.
x=\left(A^{-1}+A^{-1} B S^{-1} C A^{-1}\right) u-A^{-1} B S^{-1} v .
x=(A−1+A−1BS−1CA−1)u−A−1BS−1v.
我们可以将上述两个方程表示为:
[
x
y
]
=
[
A
−
1
+
A
−
1
B
S
−
1
C
A
−
1
−
A
−
1
B
S
−
1
−
S
−
1
C
A
−
1
S
−
1
]
[
u
v
]
\left[\begin{array}{l} x \\ y \end{array}\right]=\left[\begin{array}{cc} A^{-1}+A^{-1} B S^{-1} C A^{-1} & -A^{-1} B S^{-1} \\ -S^{-1} C A^{-1} & S^{-1} \end{array}\right]\left[\begin{array}{l} u \\ v \end{array}\right]
[xy]=[A−1+A−1BS−1CA−1−S−1CA−1−A−1BS−1S−1][uv]
因此,分块矩阵的逆矩阵表达式为:
[
A
B
C
D
]
−
1
=
[
A
−
1
+
A
−
1
B
S
−
1
C
A
−
1
−
A
−
1
B
S
−
1
−
S
−
1
C
A
−
1
S
−
1
]
=
[
I
p
−
A
−
1
B
I
q
]
[
A
−
1
S
−
1
]
[
I
p
−
C
A
−
1
I
q
]
.
\left[\begin{array}{ll} A & B \\ C & D \end{array}\right]^{-1}=\left[\begin{array}{cc} A^{-1}+A^{-1} B S^{-1} C A^{-1} & -A^{-1} B S^{-1} \\ -S^{-1} C A^{-1} & S^{-1} \end{array}\right]=\left[\begin{array}{cc} I_p & -A^{-1} B \\ & I_q \end{array}\right]\left[\begin{array}{cc} A^{-1} & \\ & S^{-1} \end{array}\right]\left[\begin{array}{ccc} I_p & \\ -C A^{-1} & I_q \end{array}\right] .
[ACBD]−1=[A−1+A−1BS−1CA−1−S−1CA−1−A−1BS−1S−1]=[Ip−A−1BIq][A−1S−1][Ip−CA−1Iq].
我们可以看到,利用舒尔补,可以在解方程组时降低方程的维数.