Sherman–Morrisonの公式(Sherman–Morrison formula)とは、体の元を成分とする正則行列 $A$ と列ベクトル $u,v$ について、$1+v^{\top}A^{-1}u\ne0$ なら $A+uv^{\top}$ も正則で、$(A+uv^{\top})^{-1}=A^{-1}-A^{-1}uv^{\top}A^{-1}/(1+v^{\top}A^{-1}u)$ が成り立つという公式である。$1+v^{\top}A^{-1}u=0$ なら $A+uv^{\top}$ は正則でない。階数 $1$ の修正をした行列の逆行列を、元の逆行列から少ない計算で求められる。階数 $k$ の修正への一般化は Woodbury の公式と呼ばれる。
$A=\begin{pmatrix}2&1\\1&1\end{pmatrix}$ の逆行列は $A^{-1}=\begin{pmatrix}1&-1\\-1&2\end{pmatrix}$ である。左上の成分だけを $2$ から $3$ に変えた行列 $A'=\begin{pmatrix}3&1\\1&1\end{pmatrix}$ の逆行列を、最初から計算し直さずに $A^{-1}$ から求められるだろうか。$A'=A+e_1e_1^{\top}$($e_1=(1,0)^{\top}$)と書くと、変化分 $e_1e_1^{\top}$ は階数 $1$ の行列である。このような「階数 $1$ の修正」について、次の公式が成り立つ:$A$ が正則で $1+v^{\top}A^{-1}u\ne0$ なら
$$
(A+uv^{\top})^{-1}=A^{-1}-\frac{A^{-1}u\,v^{\top}A^{-1}}{1+v^{\top}A^{-1}u}
$$
である。これが Sherman–Morrison の公式 である。上の例では $1+e_1^{\top}A^{-1}e_1=2$、$A^{-1}e_1=(1,-1)^{\top}$ なので
$$
A'^{-1}=\begin{pmatrix}1&-1\\-1&2\end{pmatrix}-\frac12\begin{pmatrix}1&-1\\-1&1\end{pmatrix}=\frac12\begin{pmatrix}1&-1\\-1&3\end{pmatrix}
$$
となる。$n$ 次の行列の逆行列を一から求めるには $n^3$ 程度の演算が要るが、この公式なら $A^{-1}$ から $n^2$ 程度の演算で済む。この記事では、行列式の補題、公式とその正則性の判定、Cramer の公式との関係、階数 $k$ の修正への一般化(Woodbury の公式)、正定値行列の修正を証明する。
以下、$K$ は体とし、$K^n$ の元は列ベクトルとする。$u,v\in K^n$ に対し、$uv^{\top}\in M_n(K)$ は $(i,j)$ 成分が $u_iv_j$ の行列で、$u\ne0$ かつ $v\ne0$ なら階数 $1$、そうでなければ零行列である。$v^{\top}u=\sum_iv_iu_i\in K$ はスカラーである。$e_j$ は第 $j$ 成分だけが $1$ の基本ベクトル、$I_n$ は単位行列である。
まず、階数の小さい修正で行列式がどう変わるかを調べる。
1:$(n+k)$ 次の区分けした行列(ブロック行列)で計算する。区分けした行列の積の規則(行列 の記事の命題「区分けした行列の積」)により
$$
\begin{pmatrix}I_n&O\\V^{\top}&I_k\end{pmatrix}\begin{pmatrix}I_n+WV^{\top}&W\\O&I_k\end{pmatrix}=\begin{pmatrix}I_n+WV^{\top}&W\\V^{\top}+V^{\top}WV^{\top}&V^{\top}W+I_k\end{pmatrix}
$$
であり、これに右から $\begin{pmatrix}I_n&O\\-V^{\top}&I_k\end{pmatrix}$ を掛けると、第 1 列のブロックは $(I_n+WV^{\top})-WV^{\top}=I_n$ と $(V^{\top}+V^{\top}WV^{\top})-(V^{\top}W+I_k)V^{\top}=O$ になるので
$$
\begin{pmatrix}I_n&O\\V^{\top}&I_k\end{pmatrix}\begin{pmatrix}I_n+WV^{\top}&W\\O&I_k\end{pmatrix}\begin{pmatrix}I_n&O\\-V^{\top}&I_k\end{pmatrix}=\begin{pmatrix}I_n&W\\O&I_k+V^{\top}W\end{pmatrix}
$$
である。左辺の 3 つの行列はいずれも区分三角行列で、行列式はそれぞれ $1$、$\det(I_n+WV^{\top})$、$1$ であり、右辺の行列式は $\det(I_k+V^{\top}W)$ である(行列式 の記事の命題「三角行列と区分三角行列の行列式」)。積の行列式の公式(同記事の定理「積の行列式」)から 1 を得る。$k=1$ では右辺は $1\times1$ 行列 $(1+v^{\top}w)$ の行列式である。
2:$A+uv^{\top}=A(I_n+A^{-1}uv^{\top})$ なので、積の行列式の公式と 1($w=A^{-1}u$)により $\det(A+uv^{\top})=\det A\cdot(1+v^{\top}A^{-1}u)$ である。$\square$
$A\in M_n(K)$ を正則行列、$u,v\in K^n$ とし、$\sigma:=1+v^{\top}A^{-1}u\in K$ とおく。
1:lem-sm-det の 2 により $\det(A+uv^{\top})=\sigma\det A$ で、$\det A\ne0$ なので、$\det(A+uv^{\top})\ne0$ は $\sigma\ne0$ と同値である。正方行列が正則であることは行列式が $0$ でないことと同値である(正則行列 の記事の定理「正則性の同値条件」の 1 ⇔ 2)。
2:右辺を $B$ とおく。$v^{\top}A^{-1}u=\sigma-1$ はスカラーなので、行列の積の中で前に出せて
$$
\begin{aligned}
(A+uv^{\top})B&=I_n+uv^{\top}A^{-1}-\frac1\sigma\bigl(uv^{\top}A^{-1}+u\,(v^{\top}A^{-1}u)\,v^{\top}A^{-1}\bigr)\\
&=I_n+uv^{\top}A^{-1}-\frac{1+(\sigma-1)}{\sigma}\,uv^{\top}A^{-1}=I_n
\end{aligned}
$$
である。正方行列では片側の逆行列が逆行列である(正則行列 の記事の定理「片側の逆行列で十分であること」)ので、$B=(A+uv^{\top})^{-1}$ である。$\square$
1 の「$\sigma=0$ なら正則でない」は、行列式を使わずにも分かる:$\sigma=0$ なら $1+v^{\top}A^{-1}u=0$ なので $u\ne0$、したがって $x:=A^{-1}u\ne0$ であり、
$$
(A+uv^{\top})x=u+u\,(v^{\top}A^{-1}u)=\sigma u=0
$$
となって、$A+uv^{\top}$ は $0$ でない元を $0$ に写す。
$A=I_n$、$u=w$ の場合を考えると、公式は $(I_n+wv^{\top})^{-1}=I_n-\frac{wv^{\top}}{1+v^{\top}w}$ である。これは、等比級数 $\frac1{1+t}=1-t+t^2-\cdots$ を形式的に行列に当てはめた
$$
(I_n+wv^{\top})^{-1}=I_n-wv^{\top}+wv^{\top}wv^{\top}-\cdots=I_n-w\bigl(1-v^{\top}w+(v^{\top}w)^2-\cdots\bigr)v^{\top}
$$
で、$wv^{\top}wv^{\top}=(v^{\top}w)\,wv^{\top}$ のように積がスカラー $t=v^{\top}w$ の冪にまとまることから予想できる(級数の収束は問わない。この計算は公式を見つける手がかりで、証明は thm-sm-main の掛け算である)。一般の $A$ では $A+uv^{\top}=A(I_n+A^{-1}uv^{\top})$ と分ければこの場合に帰着する。
$A^{-1}$ が分かっているとき、$x:=A^{-1}u$ と $y^{\top}:=v^{\top}A^{-1}$ の計算はそれぞれ $n^2$ 回程度の掛け算、$\sigma=1+v^{\top}x$ は $n$ 回、$A^{-1}-\frac1\sigma xy^{\top}$ は $n^2$ 回程度である。連立 1 次方程式 $(A+uv^{\top})z=b$ を解くだけなら、$A$ についての方程式 $Ap=b$、$Ax=u$ を解いて
$$
z=p-\frac{v^{\top}p}{\sigma}\,x
$$
とすればよい(両辺に $A+uv^{\top}$ を掛けると $b+u\,v^{\top}p-\frac{v^{\top}p}{\sigma}\sigma u=b$)。$A$ が対角行列や三角行列のように解きやすい行列なら、$A+uv^{\top}$ が密な行列でも速く解ける。
$A\in M_n(K)$ を正則、$B=(b_{ij}):=A^{-1}$ とし、$t\in K$ について $A$ の $(i,j)$ 成分に $t$ を足した行列を $A'=A+t\,e_ie_j^{\top}$ とする。$A'$ が正則であることは $1+t\,b_{ji}\ne0$ と同値であり、このとき
$$
A'^{-1}=B-\frac{t}{1+t\,b_{ji}}\,(Be_i)(e_j^{\top}B)
$$
である。$Be_i$ は $B$ の第 $i$ 列、$e_j^{\top}B$ は $B$ の第 $j$ 行である。
thm-sm-main で $u=te_i$、$v=e_j$ とおくと $\sigma=1+t\,e_j^{\top}Be_i=1+t\,b_{ji}$ である。$\square$
冒頭の例は $i=j=1$、$t=1$、$b_{11}=1$ の場合である。逆に、$A$ の $(1,2)$ 成分に $1$ を足すと($i=1$、$j=2$)、$1+b_{21}=1+(-1)=0$ なので、$A+e_1e_2^{\top}=\begin{pmatrix}2&2\\1&1\end{pmatrix}$ は正則でない。
$A\in M_n(K)$ を正則とし、$A$ の第 $j$ 列を $c\in K^n$ に置き換えた行列を $A_j(c)$ とする。このとき
$$
\det A_j(c)=\det A\cdot(A^{-1}c)_j
$$
である。とくに $Ax=c$ の解 $x$ の第 $j$ 成分は $x_j=\det A_j(c)/\det A$ である(Cramerの公式)。
$A$ の第 $j$ 列を $a_j$ とすると $A_j(c)=A+(c-a_j)e_j^{\top}$ である。$A^{-1}a_j=A^{-1}Ae_j=e_j$ なので、lem-sm-det の 2 により
$$
\det A_j(c)=\det A\,\bigl(1+e_j^{\top}A^{-1}(c-a_j)\bigr)=\det A\,\bigl(1+(A^{-1}c)_j-1\bigr)=\det A\cdot(A^{-1}c)_j
$$
である。$x=A^{-1}c$ とおけば後半を得る。$\square$
$J$ を成分がすべて $1$ の $n$ 次正方行列、$\mathbf 1:=(1,\dots,1)^{\top}$ とすると $J=\mathbf 1\mathbf 1^{\top}$ である。$a,b\in K$、$a\ne0$ について $aI_n+bJ=aI_n+(b\mathbf 1)\mathbf 1^{\top}$ に thm-sm-main を使うと、$\sigma=1+\mathbf 1^{\top}\frac1a(b\mathbf 1)=\frac{a+nb}a$ であり、
$$
\det(aI_n+bJ)=a^{n-1}(a+nb),\qquad(aI_n+bJ)^{-1}=\frac1a\Bigl(I_n-\frac{b}{a+nb}\,J\Bigr)\quad(a+nb\ne0)
$$
である(行列式は lem-sm-det の 2 から $a^n\sigma$)。たとえば $n=3$、$a=b=1$ では
$$
\begin{pmatrix}2&1&1\\1&2&1\\1&1&2\end{pmatrix}^{-1}=I_3-\frac14J=\frac14\begin{pmatrix}3&-1&-1\\-1&3&-1\\-1&-1&3\end{pmatrix}
$$
であり、$\det=4$ である。$a+nb=0$(たとえば $a=1$、$b=-\frac1n$、ただし $n\ne0$ が $K$ で成り立つとき)なら $aI_n+bJ$ は正則でなく、実際 $\mathbf 1$ を $0$ に写す。
$u,v$ をそれぞれ $k$ 本並べると、階数 $k$ 以下の修正について同じ形の公式が得られる。
$A\in M_n(K)$ を正則行列、$U,V\in M_{n,k}(K)$ とし、$S:=I_k+V^{\top}A^{-1}U\in M_k(K)$ とおく。
1:$A+UV^{\top}=A(I_n+A^{-1}UV^{\top})$ と lem-sm-det の 1($W=A^{-1}U$)から行列式の等式を得る。$\det A\ne0$ なので、$\det(A+UV^{\top})\ne0$ と $\det S\ne0$ は同値である。
2:右辺を $B$ とおくと、$V^{\top}A^{-1}U=S-I_k$ を使って
$$
\begin{aligned}
(A+UV^{\top})B&=I_n+UV^{\top}A^{-1}-US^{-1}V^{\top}A^{-1}-U(V^{\top}A^{-1}U)S^{-1}V^{\top}A^{-1}\\
&=I_n+UV^{\top}A^{-1}-U\bigl(I_k+(S-I_k)\bigr)S^{-1}V^{\top}A^{-1}=I_n
\end{aligned}
$$
である。thm-sm-main の証明と同じく、$B=(A+UV^{\top})^{-1}$ である。$\square$
$k=1$ が thm-sm-main である。thm-sm-woodbury を使うと、$n$ 次の逆行列の修正が $k$ 次の逆行列 $S^{-1}$ の計算に帰着する。$k$ が $n$ より小さいときに有効である。同じ公式は、区分けした行列の Schur 補行列を 2 通りに作って比べることでも得られる(ブロック行列 の記事の系「行列式の補題」、Schur補行列)。階数 $k$ の修正を階数 $1$ の修正 $k$ 回に分けて thm-sm-main を繰り返し使ってもよいが、途中の行列が正則でなくなることがあり(たとえば $I_2$ に $-e_1e_1^{\top}$ と $+e_1e_1^{\top}$ を順に足すと、最後の行列 $I_2$ は正則だが途中の $\begin{pmatrix}0&0\\0&1\end{pmatrix}$ は正則でない)、そこから先は ex-sm-counterexamples の 2 行目のように公式が使えない。一度に扱う thm-sm-woodbury の方が条件が簡明である。
実対称な正定値行列(正定値行列)に $uu^{\top}$ を足したり引いたりすると、正定値性は次のように変わる。
$A\in M_n(\mathbb{R})$ を正定値な実対称行列、$u\in\mathbb{R}^n$ とし、$s:=u^{\top}A^{-1}u$ とおく($s\ge0$ である)。
$A^{-1}$ は正定値なので $s\ge0$ である(正定値行列 の記事の命題「正定値性を保つ操作」の 3)。
1:$x\ne0$ なら $x^{\top}(A+uu^{\top})x=x^{\top}Ax+(u^{\top}x)^2>0$ なので正定値である。逆行列は thm-sm-main で $v=u$ とした式で、$\sigma=1+s>0$ である。
2:$\langle x,y\rangle_A:=y^{\top}Ax$ は $\mathbb{R}^n$ の内積である(同記事の定理「正定値行列の特徴づけ」の 1 ⇒ 7)。$u^{\top}x=(A^{-1}u)^{\top}Ax=\langle x,A^{-1}u\rangle_A$ なので、この内積についての Cauchy–Schwarz の不等式(Cauchy–Schwarzの不等式)により
$$
(u^{\top}x)^2\le\langle A^{-1}u,A^{-1}u\rangle_A\,\langle x,x\rangle_A=s\cdot x^{\top}Ax
$$
である。$s< 1$ なら、$x\ne0$ について $x^{\top}(A-uu^{\top})x\ge(1-s)\,x^{\top}Ax>0$ で、$A-uu^{\top}$ は正定値である。$s\ge1$ なら $u\ne0$ で、$x:=A^{-1}u\ne0$ について $x^{\top}(A-uu^{\top})x=s-s^2=s(1-s)\le0$ なので、正定値でない。逆行列の式は thm-sm-main で $u$ を $-u$、$v=u$ とした場合で、$\sigma=1-s\ne0$ である。$\square$
2 の境目 $s=1$ では、$\det(A-uu^{\top})=(1-s)\det A=0$ である(lem-sm-det の 2)。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| $\sigma=1+v^{\top}A^{-1}u\ne0$ | $A=\begin{pmatrix}2&1\\1&1\end{pmatrix}$、$u=e_1$、$v=e_2$ | $A+uv^{\top}$ が正則で、thm-sm-main の 2 の式で逆行列が求まること |
| $A$ の正則性 | $A=\begin{pmatrix}1&0\\0&0\end{pmatrix}$、$u=v=e_2$ | $A+uv^{\top}$ の正則性を $\sigma$ で判定できること |
| 修正の階数が $1$ であること | $A=I_2$、$E=I_2$ | $\det(A+E)=\det A\,(1+\operatorname{tr}(A^{-1}E))$ |
| prop-sm-pd の 2 の $s< 1$ | $A=I_2$、$u=e_1$ | $A-uu^{\top}$ が正定値であること |
1 行目:$A^{-1}=\begin{pmatrix}1&-1\\-1&2\end{pmatrix}$ なので $\sigma=1+e_2^{\top}A^{-1}e_1=1+(-1)=0$ であり、$A+e_1e_2^{\top}=\begin{pmatrix}2&2\\1&1\end{pmatrix}$ は行列式が $0$ で正則でない。公式の分母が $0$ になる。
2 行目:$A$ は正則でないので $A^{-1}$ も $\sigma$ も定義されないが、$A+e_2e_2^{\top}=I_2$ は正則である。$A$ が正則でなくても修正後の行列は正則になりうるので、正則でない行列を起点にすると公式からは何も分からず、正則な行列を起点に選び直す必要がある。
3 行目:階数 $1$ の $E=uv^{\top}$ では $\operatorname{tr}(A^{-1}uv^{\top})=v^{\top}A^{-1}u$ なので、lem-sm-det の 2 は $\det(A+E)=\det A\,(1+\operatorname{tr}(A^{-1}E))$ と書ける。$E=I_2$(階数 $2$)では左辺は $\det(2I_2)=4$、右辺は $1\cdot(1+2)=3$ で等しくない。階数 $k$ の修正では、$1+\operatorname{tr}$ の代わりに $k$ 次の行列式 $\det(I_k+V^{\top}A^{-1}U)$ が現れる(thm-sm-woodbury)。
4 行目:$s=e_1^{\top}e_1=1$ であり、$A-uu^{\top}=\begin{pmatrix}0&0\\0&1\end{pmatrix}$ は $x=e_1$ で $x^{\top}(A-uu^{\top})x=0$ となり、正定値でない(半正定値ではある)。prop-sm-pd の 2 は $s< 1$ を必要とし、境目の $s=1$ で正定値性が失われる。
$K=\mathbb{C}$ で Hermite 内積を使うときは、$v^{\top}$ を共役転置 $v^*$ に替えた $(A+uv^*)^{-1}=A^{-1}-\frac{A^{-1}uv^*A^{-1}}{1+v^*A^{-1}u}$ の形で使うことが多い。これは thm-sm-main を $v$ の代わりに $\overline v$ に使ったものである。thm-sm-woodbury の形の公式は、BV04 Appendix C.4.3(p. 678)で、$(A+BC)x=b$ に補助の変数 $y=Cx$ を入れて消去する方法で導かれ、matrix inversion lemma または Sherman–Woodbury–Morrison formula と呼ばれている。この記事では掛け算で直接確かめた。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する