本文主要是介绍舒尔补【Schur Complement】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、定义
- 二、推导
- 三、一些性质
- 四、解线性方程组
- 五、参考资料
舒尔补(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是可逆的,则矩阵块的 Schur completement 被定义为:
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是可逆,则矩阵块的 Schur completement 被定义为:
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].
我们可以看到,利用舒尔补,可以在解方程组时降低方程的维数.
五、参考资料
- https://en.wikipedia.org/wiki/Schur_complement
这篇关于舒尔补【Schur Complement】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!