目的:研究一些公式的推导,schur 补公式在矩阵乘法中经常遇到,因此记下推导公式加深理解
舒尔补(schur completement)定义
在线性代数或者矩阵论中,Schur complement 写成矩阵块的形式,表示如下:
M = [ A B C D ] M = \begin{bmatrix} A&B\\C&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 × p, p × q, q × p, q × q p×p,p×q,q×p,q×q 维度的矩阵, p , q p,q p,q为两个非负整数。因此可以看到 M M M为 ( p + q ) × ( p + q ) (p+q) \times (p+q) (p+q)×(p+q)的方正。
如果 D D D是可逆(invertible),则矩阵块的 Schur completement 被定义为:
M / D : = A − B D − 1 C M/D:=A-BD^{-1}C M/D:=A−BD−1C
如果 A A A是可逆(invertible),则矩阵块的 Schur completement 被定义为:
M / A : = D − C A − 1 B M/A:=D-CA^{-1}B M/A:=D−CA−1B
A B C D ABCD ABCD: 它都是顺时针方向。
作用
1)将 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 ] M=\begin{bmatrix} A&B\\C&D \end{bmatrix}=\begin{bmatrix} I_p&BD^{-1}\\0&I_q \end{bmatrix} \space \begin{bmatrix} A-BD^{-1}C&0\\0&D \end{bmatrix} \space \begin{bmatrix} I_p&0\\D^{-1}C&I_q \end{bmatrix} M=[ACBD]=[Ip0BD−1Iq] [A−BD−1C00D] [IpD−1C0Iq]
证明一:
如果想获取对角矩阵,先用高斯消元法,消去 C C C,使用公式得到(它是通过右乘,表示行消元,这样 B D BD BD不变)
[ A B C D ] [ I p 0 X I q ] = [ A ∗ B 0 D ] \begin{bmatrix} A&B\\C&D \end{bmatrix} \begin{bmatrix} I_p&0\\X&I_q \end{bmatrix}= \begin{bmatrix} A^*&B\\0&D \end{bmatrix} [ACBD][IpX0Iq]=[A∗0BD]
获取的等式如下
C + D X = 0 = > X = − D − 1 C C+DX=0=>X=-D^{-1}C C+DX=0=>X=−D−1C
将 X X X带入上面矩阵的式子 A ∗ = A + B X A^*=A+BX A∗=A+BX得到:
[ A B C D ] [ I p 0 − D − 1 C I q ] = [ A − B D − 1 C B 0 D ] \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} [ACBD][Ip−D−1C0Iq]=[A−BD−1C0BD]
现在用消元法去消除 B B B,使用行消元法。在公式中是左乘。
[ I p X 0 I q ] [ A − B D − 1 C B 0 D ] = [ A − B D − 1 C 0 0 D ] \begin{bmatrix} I_p&X\\0&I_q \end{bmatrix} \begin{bmatrix} A-BD^{-1}C&B\\0&D \end{bmatrix}=\begin{bmatrix} A-BD^{-1}C&0\\0&D \end{bmatrix} [Ip0XIq][A−BD−1C0BD]=[A−BD−1C00D]
获取的等式如下:
B + D X = 0 = > X = − D − 1 B B+DX=0=>X=-D^{-1}B B+DX=0=>X=−D−1B
将 X X X带入方程得到
[ I p − D − 1 B 0 I q ] [ A − B D − 1 C B 0 D ] = [ A − B D − 1 C 0 0 D ] \begin{bmatrix} I_p&-D^{-1}B\\0&I_q \end{bmatrix} \begin{bmatrix} A-BD^{-1}C&B\\0&D \end{bmatrix}=\begin{bmatrix} A-BD^{-1}C&0\\0&D \end{bmatrix} [Ip0−D−1BIq][A−BD−1C0BD]=[A−BD−1C00D]
总结两个公式可以得到:
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 ] M=\begin{bmatrix} A&B\\C&D \end{bmatrix}=\begin{bmatrix} I_p&BD^{-1}\\0&I_q \end{bmatrix} \space \begin{bmatrix} A-BD^{-1}C&0\\0&D \end{bmatrix} \space \begin{bmatrix} I_p&0\\D^{-1}C&I_q \end{bmatrix} M=[ACBD]=[Ip0BD−1Iq] [A−BD−1C00D] [IpD−1C0Iq]
证明二:
使用线性系统的代数来求得
[ A B C D ] [ X p X q ] = [ Y p Y q ] \begin{bmatrix} A&B\\C&D \end{bmatrix}\begin{bmatrix} X_p\\X_q \end{bmatrix}=\begin{bmatrix} Y_p\\Y_q \end{bmatrix} [ACBD][XpXq]=[YpYq]
因为 [ Y p Y q ] = ( [ A B C D ] ) − 1 [ X p X q ] \begin{bmatrix} Y_p\\Y_q \end{bmatrix}=(\begin{bmatrix} A&B\\C&D \end{bmatrix})^{-1}\begin{bmatrix} X_p\\X_q \end{bmatrix} [YpYq]=([ACBD])−1[XpXq]
因为 D D D可逆,得到下面公式
X q = Y q − D − 1 C X p X_q=Y_q-D^{-1}CX_p Xq=Yq−D−1CXp
带入方式 A X p + B X q = Y p AX_p+BX_q=Y_p AXp+BXq=Yp得到 X p X_p Xp
X p = ( A − B D − 1 C ) − 1 ( Y p − B Y q ) X_p=(A-BD^{-1}C)^{-1}(Y_p-BY_q) Xp=(A−BD−1C)−1(Yp−BYq)
在将 X p X_p Xp带入 X q = Y q − D − 1 C X p X_q=Y_q-D^{-1}CX_p Xq=Yq−D−1CXp:
X q = Y q − D − 1 C ( A − B D − 1 C ) − 1 ( Y p − B Y q ) X_q=Y_q-D^{-1}C(A-BD^{-1}C)^{-1}(Y_p-BY_q) Xq=Yq−D−1C(A−BD−1C)−1(Yp−BYq)
在将上述转化为向量形式,在转化为矩阵。
2)快速求得矩阵 M M M的逆。
M − 1 = [ A B C D ] − 1 = ( [ I p B D − 1 0 I q ] [ A − B D − 1 C 0 0 D ] [ I p 0 D − 1 C I q ] ) − 1 = [ I p 0 − D − 1 C I q ] [ ( A − B D − 1 C ) − 1 0 0 D − 1 ] [ I p − B D − 1 0 I q ] = [ ( A − B D − 1 C ) − 1 − ( A − B D − 1 C ) − 1 B D − 1 − D − 1 C ( A − B D − 1 C ) − 1 D − 1 C ( A − B D − 1 C ) − 1 B D − 1 + D − 1 ] = [ ( M / D ) − 1 − ( M / D ) − 1 B D − 1 − D − 1 C ( M / D ) − 1 D − 1 + D − 1 C ( M / D ) − 1 B D − 1 ] M^{-1} =\begin{bmatrix} A&B\\C&D \end{bmatrix} ^{-1}= (\begin{bmatrix} I_p&BD^{-1}\\0&I_q \end{bmatrix} \space \begin{bmatrix} A-BD^{-1}C&0\\0&D \end{bmatrix} \space \begin{bmatrix} I_p&0\\D^{-1}C&I_q \end{bmatrix})^{-1} \\ \\ \\ =\begin{bmatrix} I_p&0\\-D^{-1}C&I_q \end{bmatrix}\space \begin{bmatrix} (A-BD^{-1}C)^{-1}&0\\0&D^{-1} \end{bmatrix} \space \begin{bmatrix} I_p&-BD^{-1}\\0&I_q \end{bmatrix} \space \\ \\ \\ =\begin{bmatrix} (A-BD^{-1}C)^{-1}& -(A-BD^{-1}C)^{-1}BD^{-1}\\-D^{-1}C (A-BD^{-1}C)^{-1}&D^{-1}C(A-BD^{-1}C)^{-1}BD^{-1} + D^{-1} \end{bmatrix} \\ \\ \\ =\begin{bmatrix} (M/D)^{-1}&-(M/D)^{-1}BD^{-1}\\-D^{-1}C(M/D)^{-1}&D^{-1} + D^{-1}C(M/D)^{-1}BD^{-1} \end{bmatrix} M−1=[ACBD]−1=([Ip0BD−1Iq] [A−BD−1C00D] [IpD−1C0Iq])−1=[Ip−D−1C0Iq] [(A−BD−1C)−100D−1] [Ip0−BD−1Iq] =[(A−BD−1C)−1−D−1C(A−BD−1C)−1−(A−BD−1C)−1BD−1D−1C(A−BD−1C)−1BD−1+D−1]=[(M/D)−1−D−1C(M/D)−1−(M/D)−1BD−1D−1+D−1C(M/D)−1BD−1]
从公式得知,在求矩阵的逆的时候,可以通过先获取 ( M / D ) (M/D) (M/D),然后获取它的逆.