多変量ガウス分布の条件付き分布を計算するとき、ガウス過程回帰の事後共分散を求めるとき、あるいはカルマンフィルタの更新ステップを書き下すとき、必ず同じ形の式が現れます。
$$ S = D – C A^{-1} B $$
この式は「$A$に関するシューア補元(Schur complement)」と呼ばれます。線形代数の教科書ではブロック行列の逆行列を論じる際に唐突に登場しますが、その背後には「変数を消去する」という明快な直感があります。
シューア補元を理解すると、次のことがわかるようになります。
- 多変量ガウス分布の条件付き分布: 条件付き共分散行列がシューア補元そのものである
- カルマンフィルタ・ガウス過程回帰: 予測誤差共分散の更新式はシューア補元の変形である
- 最適化のKKT条件: 制約付き二次計画のKKT行列の逆行列にシューア補元が現れる
- 正定値判定: ブロック行列の正定値性をシューア補元で階層的に確認できる
本記事の内容
- シューア補元の定義と直感的な意味
- ブロックLU分解を用いた導出
- ブロック逆行列の公式の導出
- 行列式の分解公式 $\det(M) = \det(A)\det(S)$
- 正定値性の判定条件
- 多変量ガウス分布の条件付き分布への応用
- Python数値検証(各公式の一致確認)
前提知識
この記事を読む前に、次の記事を読んでおくと理解が深まります。

シューア補元とは ― ガウス消去法の行列版
シューア補元の直感は「変数を消去した後に残る方程式」です。
連立方程式 $Mx = b$ を、$x$ を2つのグループ $x_1$($m$次元)と $x_2$($n$次元)に分けて書くと、
$$ \begin{pmatrix} A & B \\ C & D \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} b_1 \\ b_2 \end{pmatrix} $$
となります。1行目の方程式 $Ax_1 + Bx_2 = b_1$ を使って $x_1$ を $x_2$ で表し、
$$ x_1 = A^{-1}(b_1 – Bx_2) $$
これを2行目の方程式 $Cx_1 + Dx_2 = b_2$ に代入すると、
$$ C \cdot A^{-1}(b_1 – Bx_2) + Dx_2 = b_2 $$
$x_1$ が消去されて $x_2$ だけの方程式になります。整理すると、
$$ (D – CA^{-1}B)\,x_2 = b_2 – CA^{-1}b_1 $$
この係数行列 $D – CA^{-1}B$ が$A$に関するシューア補元です。ガウス消去法で上の変数を消した後に「残る」方程式の係数行列という、非常に具体的な意味があります。

図に示す通り、「$x_1$ を消去する」という4ステップの操作がシューア補元 $S = D – CA^{-1}B$ を生み出します。1行目から $x_1 = A^{-1}(b_1 – Bx_2)$ を求め、これを2行目に代入することで $x_1$ が消え、$S \cdot x_2 = \cdots$ という形が残ります。この操作こそがシューア補元の本質です。

このブロック行列のイメージを頭に入れておきましょう。$A$($m \times m$)、$B$($m \times n$)、$C$($n \times m$)、$D$($n \times n$)の4ブロックで構成されています。$A$ と $D$ は正方行列ですが、$B$ と $C$ は一般に長方行列です。
次に、この直感を正式な定義として整理します。
シューア補元の定義
ブロック行列
$$ M = \begin{pmatrix} A & B \\ C & D \end{pmatrix} $$
に対して、$A \in \mathbb{R}^{m \times m}$ が正則(逆行列を持つ)とき、$A$ に関するシューア補元(Schur complement of $A$ in $M$)を次で定義します。
$$ \boxed{S = D – CA^{-1}B} $$
各行列のサイズは $A \in \mathbb{R}^{m \times m}$、$B \in \mathbb{R}^{m \times n}$、$C \in \mathbb{R}^{n \times m}$、$D \in \mathbb{R}^{n \times n}$ であり、$S \in \mathbb{R}^{n \times n}$ となります。
同様に、$D$ が正則なときは $D$ に関するシューア補元
$$ S_D = A – BD^{-1}C $$
も定義できます。文脈によってどちらのシューア補元を用いるかが変わりますが、本記事では主に $A$ に関するシューア補元 $S = D – CA^{-1}B$ を扱います。
シューア補元が具体的にどこから来るのか、ブロックLU分解を通じて系統的に導出してみましょう。
ブロックLU分解 ― シューア補元の自然な登場
$M$ をブロック行列として LU 分解します。目標は $M = LU$ の形を求めることです。
まず分解の形を次のように仮定します。
$$ M = \begin{pmatrix} A & B \\ C & D \end{pmatrix} = \underbrace{\begin{pmatrix} I & 0 \\ CA^{-1} & I \end{pmatrix}}_{L} \underbrace{\begin{pmatrix} A & B \\ 0 & S \end{pmatrix}}_{U} $$
ここで $S = D – CA^{-1}B$ です。右辺を展開して確認します。
$$ LU = \begin{pmatrix} I \cdot A + 0 & I \cdot B + 0 \\ CA^{-1} \cdot A + I \cdot 0 & CA^{-1} \cdot B + I \cdot S \end{pmatrix} = \begin{pmatrix} A & B \\ C & CA^{-1}B + S \end{pmatrix} $$
$S = D – CA^{-1}B$ より $CA^{-1}B + S = D$ となり、$LU = M$ が成立します。

図を見ると、$L$ の左下ブロックが $CA^{-1}$(消去に使う係数)、$U$ の右下ブロックがシューア補元 $S$ になっています。この分解がシューア補元を自然に生み出す構造です。
ブロックLU分解が手に入ったところで、2つの重要な公式を導きます。
ブロック逆行列の公式
$M = LU$ が得られたので、$M^{-1} = U^{-1} L^{-1}$ を計算します。
$L$ と $U$ の逆行列はブロック構造を活かして求められます。
$L^{-1}$ を求めます。$L = \begin{pmatrix} I & 0 \\ CA^{-1} & I \end{pmatrix}$ の逆行列は、$L_{21} = CA^{-1}$ に符号を反転させた
$$ L^{-1} = \begin{pmatrix} I & 0 \\ -CA^{-1} & I \end{pmatrix} $$
です。$LL^{-1} = I$ を展開して確認できます。
$U^{-1}$ を求めます。$U = \begin{pmatrix} A & B \\ 0 & S \end{pmatrix}$ の逆行列は、
$$ U^{-1} = \begin{pmatrix} A^{-1} & -A^{-1}BS^{-1} \\ 0 & S^{-1} \end{pmatrix} $$
です。$UU^{-1} = I$ を展開して確認できます(右上ブロックは $A \cdot (-A^{-1}BS^{-1}) + B \cdot S^{-1} = -BS^{-1} + BS^{-1} = 0$ となる)。
これらを掛け合わせて $M^{-1} = U^{-1}L^{-1}$ を計算します。
$$ M^{-1} = \begin{pmatrix} A^{-1} & -A^{-1}BS^{-1} \\ 0 & S^{-1} \end{pmatrix} \begin{pmatrix} I & 0 \\ -CA^{-1} & I \end{pmatrix} $$
各ブロックを計算します。
- 左上: $A^{-1} \cdot I + (-A^{-1}BS^{-1}) \cdot (-CA^{-1}) = A^{-1} + A^{-1}BS^{-1}CA^{-1}$
- 右上: $A^{-1} \cdot 0 + (-A^{-1}BS^{-1}) \cdot I = -A^{-1}BS^{-1}$
- 左下: $0 \cdot I + S^{-1} \cdot (-CA^{-1}) = -S^{-1}CA^{-1}$
- 右下: $0 \cdot 0 + S^{-1} \cdot I = S^{-1}$
まとめると、
$$ \boxed{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 = D – CA^{-1}B$ です。

この公式の重要な点は、右下ブロックの逆行列が $S^{-1}$ になることです。もとの $D^{-1}$ ではなく、シューア補元 $S$ の逆行列がそこに来ます。これは「$x_1$ の情報を使って $x_2$ の推定を精緻化する」という操作に対応しています。
なお、$D$ に関するシューア補元 $S_D = A – BD^{-1}C$ を使えば、左上ブロックも $S_D^{-1}$ として書けます。
$$ M^{-1}_{11} = S_D^{-1}, \quad S_D = A – BD^{-1}C $$
これは逆行列補題(Woodbury の公式)とも呼ばれる関係です。
行列式の分解公式
ブロックLU分解から行列式の公式も自然に導けます。
$$ \det(M) = \det(LU) = \det(L) \cdot \det(U) $$
$L$ は下三角行列で対角成分がすべて1なので $\det(L) = 1$ です。$U$ は上三角ブロック行列なので $\det(U) = \det(A) \cdot \det(S)$ です。よって、
$$ \boxed{\det(M) = \det(A) \cdot \det(S)} $$
この公式は $(m+n) \times (m+n)$ の大きな行列の行列式を、$m \times m$ の $A$ と $n \times n$ の $S$ の行列式の積に分解します。計算コストが大幅に下がります。

図が示すように、シューア補元を求めれば大きな行列式の計算が2つの小さな行列式の計算に帰着します。実際の数値例で確かめてみましょう。
正定値性の判定
シューア補元は正定値行列の判定にも使えます。次の定理が成り立ちます。
定理: ブロック行列の正定値条件
$A$ が正則のとき、
$$ M \succ 0 \iff A \succ 0 \quad \text{かつ} \quad S = D – CA^{-1}B \succ 0 $$
証明の方針: $M \succ 0$ の定義は「任意の非零ベクトル $v = (v_1^\top, v_2^\top)^\top$ に対して $v^\top M v > 0$」です。ブロックLU分解 $M = LU$ を使うと、$v^\top M v = v^\top L U v$ と書けます。変数変換 $w = L^\top v = (w_1^\top, w_2^\top)^\top$ とおくと(ここで $w_1 = v_1 + 0$、$w_2 = (CA^{-1})^\top v_1 + v_2$ でないことに注意)、
もう少し直接的に示しましょう。$v = (v_1^\top, v_2^\top)^\top$ のとき、
$$ v^\top M v = v_1^\top A v_1 + v_1^\top B v_2 + v_2^\top C v_1 + v_2^\top D v_2 $$
$u_1 = v_1 + A^{-1}Bv_2$ と変換すると(これがLU分解の行変換に対応)、
$$ v^\top M v = u_1^\top A u_1 + v_2^\top (D – CA^{-1}B) v_2 = u_1^\top A u_1 + v_2^\top S v_2 $$
この変形は $M = L^\top \mathrm{diag}(A, S) L$ の形(ブロック対角化)に対応しています。この両辺が任意の $(v_1, v_2)$ に対して正になる条件は $A \succ 0$ かつ $S \succ 0$ です(終)。

図の左側はスカラー($1 \times 1$)ブロックの場合を示しています。$A = a$、$D = d$、$B = C = b$ とすると、$M \succ 0$ の条件は $a > 0$ かつ $d – b^2/a > 0$ です。グラフの青色の領域がこれを満たす $(a, d)$ の範囲で、赤い破線が $S = 0$ の境界を表しています。境界より右上の領域だけが正定値です。
この定理は正定値性の判定を階層的に行えるという点で実用的です。まず $A \succ 0$ を確認し(例えばコレスキー分解で確認)、次に $S \succ 0$ を確認するという順序で、大きな行列の正定値判定が可能です。
多変量ガウス分布への応用 ― 条件付き分布
シューア補元の最も重要な応用の一つが、多変量ガウス分布の条件付き分布の計算です。
確率変数 $x = (x_1^\top, x_2^\top)^\top$ が多変量ガウス分布 $\mathcal{N}(\mu, \Sigma)$ に従うとします。平均と共分散をブロック分割して、
$$ \mu = \begin{pmatrix} \mu_1 \\ \mu_2 \end{pmatrix}, \quad \Sigma = \begin{pmatrix} \Sigma_{11} & \Sigma_{12} \\ \Sigma_{21} & \Sigma_{22} \end{pmatrix} $$
とします。$x_1$ の観測値が与えられたとき、$x_2$ の条件付き分布 $p(x_2 \mid x_1)$ も正規分布になります。
$$ p(x_2 \mid x_1) = \mathcal{N}(x_2 \mid \mu_{2|1}, \Sigma_{2|1}) $$
ここで条件付き平均と条件付き共分散は次で与えられます。
$$ \mu_{2|1} = \mu_2 + \Sigma_{21}\Sigma_{11}^{-1}(x_1 – \mu_1) $$
$$ \boxed{\Sigma_{2|1} = \Sigma_{22} – \Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}} $$
条件付き共分散 $\Sigma_{2|1}$ は、共分散行列 $\Sigma$ の $\Sigma_{11}$ に関するシューア補元そのものです。
直感的な意味
$\Sigma_{22}$ は $x_2$ の周辺分散($x_1$ を観測しない場合の不確かさ)です。$x_1$ を観測することで、$x_1$ と $x_2$ の相関 $\Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}$ の分だけ不確かさが減ります。シューア補元はこの「情報による不確かさの削減量」を表しています。
なぜ $x_1$ を観測すると不確かさが減るのか? $x_2 = \mu_2 + \Sigma_{21}\Sigma_{11}^{-1}(x_1 – \mu_1) + \epsilon$ という形で $x_2$ を $x_1$ の一次関数と残差 $\epsilon$ に分解できます。残差 $\epsilon$ の分散が $\Sigma_{2|1}$ であり、$x_1$ で説明できる部分 $\Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}$ が取り除かれています。

左の図は合同共分散行列 $\Sigma$ のヒートマップです。$\Sigma_{12} = \Sigma_{21} = 1.2$ と強い相関があります。右の棒グラフは、周辺分散 $\Sigma_{22} = 1.0$(青)から「情報の除去」分 $\Sigma_{12}^2/\Sigma_{11} = 0.72$(赤)を引いた結果、条件付き分散 $\Sigma_{2|1} = 0.28$(緑)になることを示しています。相関が強いほど、観測によって不確かさが大きく減ります。

左の図は合同分布の等高線を示し、赤い破線が「$x_1 = 1$ を観測した」スライスです。右の図は、そのスライス上での $x_2$ の分布を比較しています。周辺分布(青、$\sigma = 1.000$)と条件付き分布(赤、$\sigma = 0.529$)を比べると、観測後に分布が大きく絞り込まれていることがわかります。平均も $0.0$ から $0.60$ にシフトしています。これがガウス過程回帰やカルマンフィルタが「観測で予測を更新する」仕組みの核心です。
数値例で確かめる
以下のブロック行列を使って各公式を数値検証します。
$$ A = \begin{pmatrix} 4 & 2 \\ 2 & 3 \end{pmatrix}, \quad B = \begin{pmatrix} 1 \\ 0.5 \end{pmatrix}, \quad C = \begin{pmatrix} 1 & 0.5 \end{pmatrix}, \quad D = \begin{pmatrix} 2 \end{pmatrix} $$
したがって $M$ は $3 \times 3$ 行列です。
import numpy as np
# ブロック行列の設定
A = np.array([[4.0, 2.0],[2.0, 3.0]])
B = np.array([[1.0],[0.5]])
C = B.T # C = B^T(対称ブロック)
D = np.array([[2.0]])
# ブロック行列全体
M = np.block([[A, B],[C, D]])
# シューア補元の計算
S = D - C @ np.linalg.inv(A) @ B
print("シューア補元 S =", S)
# → S = [[1.75]]
# 行列式の検証
det_M = np.linalg.det(M)
det_A = np.linalg.det(A)
det_S = np.linalg.det(S)
print(f"det(M) = {det_M:.6f}")
print(f"det(A) * det(S) = {det_A:.6f} * {det_S:.6f} = {det_A*det_S:.6f}")
# → 14.000000 = 8.000000 * 1.750000 = 14.000000(完全一致)
# ブロック逆行列の検証
M_inv = np.linalg.inv(M)
A_inv = np.linalg.inv(A)
S_inv = np.linalg.inv(S)
M11_formula = A_inv + A_inv @ B @ S_inv @ C @ A_inv
M22_formula = S_inv
print("M^{-1}[0:2,0:2] (公式) =", M11_formula)
print("M^{-1}[0:2,0:2] (数値) =", M_inv[0:2,0:2])
print("一致:", np.allclose(M11_formula, M_inv[0:2,0:2]))
# → True
print("M^{-1}[2,2] (公式) =", float(M22_formula))
print("M^{-1}[2,2] (数値) =", M_inv[2,2])
print("一致:", np.allclose(M22_formula, M_inv[2,2]))
# → True
シューア補元は $S = 2.0 – (1.0 \times A^{-1} \times 1.0 + \cdots) = 1.75$ と計算できます。$\det(M) = 14.0$ という値が $\det(A) \times \det(S) = 8.0 \times 1.75 = 14.0$ と完全に一致しています。ブロック逆行列の公式も numpy の数値逆行列と完全に一致しており、導出の正しさが確認できます。
# 正定値判定の検証
eigvals_M = np.linalg.eigvalsh(M)
eigvals_A = np.linalg.eigvalsh(A)
print(f"M の固有値: {eigvals_M}")
# → [1.316, 1.811, 5.873](全て正)
print(f"A の固有値: {eigvals_A}")
# → [1.438, 5.562](全て正)
print(f"S = {float(S[0,0]):.4f}")
# → 1.7500(正)
# M ≻ 0 ⟺ A ≻ 0 かつ S ≻ 0 が成立している
print(f"M ≻ 0: {all(eigvals_M > 0)}") # → True
print(f"A ≻ 0: {all(eigvals_A > 0)}") # → True
print(f"S ≻ 0: {float(S[0,0]) > 0}") # → True
# 条件付きガウス分布の検証
Sigma = np.array([[2.0, 1.2],[1.2, 1.0]])
mu = np.array([0.0, 0.0])
x1_obs = 1.0
# シューア補元 = 条件付き共分散
S_cond = Sigma[1,1] - Sigma[1,0]/Sigma[0,0]*Sigma[0,1]
mu_cond = mu[1] + Sigma[1,0]/Sigma[0,0]*(x1_obs - mu[0])
print(f"\n条件付き共分散 (シューア補元) = {S_cond:.6f}")
# → 0.280000
print(f"条件付き平均 (x1=1.0 を観測) = {mu_cond:.6f}")
# → 0.600000
print(f"標準偏差: {np.sqrt(Sigma[1,1]):.4f} → {np.sqrt(S_cond):.4f}")
# → 1.0000 → 0.5292(観測で不確かさが約半分に)
条件付き共分散がシューア補元 $\Sigma_{22} – \Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12} = 0.28$ と数値的に一致し、標準偏差が $1.0 \to 0.53$ へ約半分になることが確認できます。$x_1$ を観測することで $x_2$ の不確かさが大きく減少しています。

ヒートマップの左から、全体行列 $M$(3×3)、左上ブロック $A$(2×2)、シューア補元 $S$(1×1 のスカラー)を示しています。$M$ の左上 2×2 部分が $A$ と完全に一致し、シューア補元 $S = 1.75$ が「$A$ を消去した後に残るスカラー」として計算されていることがわかります。
最小二乗法の正規方程式とシューア補元
シューア補元は最小二乗法にも登場します。線形回帰モデルで、応答変数 $y \in \mathbb{R}^n$、説明変数行列を特徴ブロック $X_1 \in \mathbb{R}^{n \times p_1}$、$X_2 \in \mathbb{R}^{n \times p_2}$ に分割して、$y = X_1 \beta_1 + X_2 \beta_2 + \varepsilon$ と考えます。
正規方程式はブロック形式で次のように書けます。
$$ \begin{pmatrix} X_1^\top X_1 & X_1^\top X_2 \\ X_2^\top X_1 & X_2^\top X_2 \end{pmatrix} \begin{pmatrix} \hat{\beta}_1 \\ \hat{\beta}_2 \end{pmatrix} = \begin{pmatrix} X_1^\top y \\ X_2^\top y \end{pmatrix} $$
$A = X_1^\top X_1$、$B = X_1^\top X_2$、$C = X_2^\top X_1$、$D = X_2^\top X_2$ とおくと、シューア補元
$$ S = X_2^\top X_2 – X_2^\top X_1(X_1^\top X_1)^{-1}X_1^\top X_2 = X_2^\top M_{X_1} X_2 $$
が現れます。ここで $M_{X_1} = I – X_1(X_1^\top X_1)^{-1}X_1^\top$ は $X_1$ の列空間への射影行列の直交補(残差作成行列)です。
これを解釈すると:$\hat{\beta}_2$ の推定には、$X_1$ の説明力を取り除いた後の $X_2$(残差化した $X_2$)だけが使われる。$X_2$ に $X_1$ の影響(内積 $X_2^\top X_1(X_1^\top X_1)^{-1}X_1^\top X_2$)を引くことで、2つの説明変数グループの競合を解消しています。統計学の「偏回帰係数」の概念がシューア補元の言葉で表現されているわけです。
ガウス過程回帰・カルマンフィルタへの接続
シューア補元は機械学習や状態推定でも頻繁に登場します。いくつかの重要な例を挙げます。
ガウス過程回帰の予測分散
ガウス過程回帰では、学習データ点での観測 $y$ と予測点 $x_*$ の合同分布が次のブロック行列で表されます。
$$ \begin{pmatrix} y \\ f_* \end{pmatrix} \sim \mathcal{N}\left(\begin{pmatrix} 0 \\ 0 \end{pmatrix}, \begin{pmatrix} K + \sigma^2 I & K_* \\ K_*^\top & K_{**} \end{pmatrix}\right) $$
予測点での事後分散は、$K_{nn} = K + \sigma^2 I$ に関するシューア補元です。
$$ \mathrm{Var}(f_* \mid y) = K_{**} – K_{*n}K_{nn}^{-1}K_{n*} $$
「観測データによる不確かさの削減量」が $K_{*n}K_{nn}^{-1}K_{n*}$ というシューア補元の形で現れます。
カルマンフィルタの更新式
カルマンフィルタの測定更新では、予測共分散 $P$ と観測ノイズ共分散 $R$ を組み合わせた更新後の共分散が、
$$ P_{k|k} = P_{k|k-1} – P_{k|k-1}H^\top(HP_{k|k-1}H^\top + R)^{-1}HP_{k|k-1} $$
となります。これも $(HP_{k|k-1}H^\top + R)$ に関するシューア補元の形をしています。観測行列 $H$ を通じて「観測可能な部分」が除かれた不確かさが事後共分散となります。
最適化のKKT行列
制約付き二次計画問題
$$ \min_x \frac{1}{2}x^\top H x + c^\top x \quad \text{subject to} \quad Ax = b $$
のKKT条件は次の線形方程式系になります。
$$ \begin{pmatrix} H & A^\top \\ A & 0 \end{pmatrix} \begin{pmatrix} x \\ \lambda \end{pmatrix} = \begin{pmatrix} -c \\ b \end{pmatrix} $$
このKKT行列のシューア補元は $-AH^{-1}A^\top$(スカラー倍した縮約化問題の係数行列)であり、$\lambda$ を直接求める際に使います。$H$ が正定値のとき、このシステムをシューア補元を用いて$O(n^3 + m^3)$の計算量($n$は変数次元、$m$は制約数)で解くことができます。

応用まとめ図が示すように、シューア補元は統計・最適化・信号処理のさまざまな場面で共通の構造として現れます。「大きな行列を小さなブロックに分解して処理する」という発想が、各応用で有効に機能しています。
原論文の起源とDに関するシューア補元
シューア補元の名前はドイツの数学者イサイ・シューア(Issai Schur, 1875–1941)に由来します。シューアは行列の決定因子の研究でこの構造を用いました。
$D$ に関するシューア補元 $S_D = A – BD^{-1}C$ を使うと、逆行列の別表現が得られます。
$$ M^{-1} = \begin{pmatrix} S_D^{-1} & -S_D^{-1}BD^{-1} \\ -D^{-1}CS_D^{-1} & D^{-1} + D^{-1}CS_D^{-1}BD^{-1} \end{pmatrix} $$
$A$ に関するシューア補元による表現と $D$ に関するシューア補元による表現が同じ $M^{-1}$ を与えることから、$S^{-1} = D^{-1} + D^{-1}CS_D^{-1}BD^{-1}$ という行列の逆行列の恒等式が得られます。これが Woodbury の逆行列補題(Sherman-Morrison-Woodbury の公式)の一般化です。
$$ (A – BD^{-1}C)^{-1} = A^{-1} + A^{-1}B(D – CA^{-1}B)^{-1}CA^{-1} $$
この恒等式は「低ランク更新された逆行列の効率的計算」に使われます。大きな行列 $A$ の逆行列が既知のとき、低ランク行列 $BD^{-1}C$ による更新後の逆行列を $O(m^3 + n \cdot m^2)$($m \ll n$)で計算できます。
まとめ
本記事では、シューア補元(Schur complement) $S = D – CA^{-1}B$ について解説しました。
- 定義: ガウス消去法で変数を消去した後に残る方程式の係数行列
- ブロックLU分解: $M = LU$ の $U$ の右下ブロックとして自然に登場する
- ブロック逆行列: 右下ブロックが $S^{-1}$ になる公式 $M^{-1}$ が得られる
- 行列式の分解: $\det(M) = \det(A) \cdot \det(S)$(大きな行列式を小さな2つに分解)
- 正定値判定: $M \succ 0 \iff A \succ 0$ かつ $S \succ 0$
- 条件付きガウス分布: 条件付き共分散 $\Sigma_{2|1} = \Sigma_{22} – \Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}$ がシューア補元
数値検証では、$\det(M) = \det(A) \cdot \det(S) = 14.0$(完全一致)、ブロック逆行列公式の一致、条件付き分散 $0.28$($\sigma: 1.000 \to 0.529$)を確認しました。
シューア補元を理解すると、多変量ガウス分布、ガウス過程回帰、カルマンフィルタ、KKT最適化など幅広い分野の式が統一的に見えてきます。次は条件付きガウス分布とシューア補元を実際に使うガウス過程回帰や、逆行列補題の応用記事に進んでみてください。

