舒尔补在SLAM中的应用
1.舒尔补的定义
对于任意的矩阵 M M M,如下所示
(1) M = [ A B C D ] M = \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right]\tag{1} M=[ACBD](1)
如果矩阵块 D D D是可逆的,则 A − B D − 1 C A-BD^{-1}C A−BD−1C 称之为 D D D 关于 M M M的舒尔补。
如果矩阵块 A A A是可逆的,则 D − C A − 1 B D-CA^{-1}B D−CA−1B 称之为 A A A 关于 M M M的舒尔补。
2.舒尔补的由来
在将 M M M变为上三角和下三角的过程中,都会遇到舒尔补:
(2) [ I 0 − C A − 1 I ] [ A B C D ] = [ A B 0 Δ A ] \left[ \begin{matrix} I& 0\\ -CA^{-1}& I \\ \end{matrix}\right] \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] = \left[ \begin{matrix} A& B\\ 0& \Delta A \\ \end{matrix}\right] \tag{2} [I−CA−10I][ACBD]=[A0BΔA](2)
(3) [ A B C D ] [ I − A − 1 B 0 I ] = [ A 0 C Δ A ] \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] \left[ \begin{matrix} I& -A^{-1}B\\ 0& I \\ \end{matrix}\right] = \left[ \begin{matrix} A& 0\\ C& \Delta A \\ \end{matrix}\right] \tag{3} [ACBD][I0−A−1BI]=[AC0ΔA](3)
其中: Δ A = D − C A − 1 B \Delta A =D-CA^{-1}B ΔA=D−CA−1B。将两式联合起来,将M变形为对角形:
(4) [ I 0 − C A − 1 I ] [ A B C D ] [ I − A − 1 B 0 I ] = [ A 0 0 Δ A ] \left[ \begin{matrix} I& 0\\ -CA^{-1}& I \\ \end{matrix}\right] \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] \left[ \begin{matrix} I& -A^{-1}B\\ 0& I \\ \end{matrix}\right] = \left[ \begin{matrix} A& 0\\ 0& \Delta A \\ \end{matrix}\right] \tag{4} [I−CA−10I][ACBD][I0−A−1BI]=[A00ΔA](4)
反过来,可以从对角形恢复 M M M:
(5) [ I 0 C A − 1 I ] [ A 0 0 Δ A ] [ I A − 1 B 0 I ] = [ A B C D ] \left[ \begin{matrix} I& 0\\ CA^{-1}& I \\ \end{matrix}\right] \left[ \begin{matrix} A& 0\\ 0& \Delta A \\ \end{matrix}\right] \left[ \begin{matrix} I& A^{-1}B\\ 0& I \\ \end{matrix}\right] = \left[ \begin{matrix} A& B\\ C& D \\ \end{matrix}\right] \tag{5} [ICA−10I][A00ΔA][