ムーア・ペンローズ逆行列

数学、特に線形代数において、行列 A {\displaystyle A} のムーア・ペンローズ逆行列（英: Moore–Penrose inverse） A + {\displaystyle A^{+}} は、逆行列の最もよく知られている一般化である。 ムーア・ペンローズ形一般逆行列とも呼ばれる。1920年にE・H・ムーアに、1951年にArne Bjerhammar（英語版）に、1955年にロジャー・ペンローズによって独立して記述された。それ以前、 エリック・イヴァル・フレドホルムは、1903年に積分演算子の擬似逆行列の概念を導入していた。行列について述べる場合、特段の指定がない限り、擬似逆行列という用語はムーア・ペンローズ逆行列を指すことが多い。一般化逆行列という用語は、擬似逆行列の同義語として用られることがある。 擬似逆行列の一般的な使用法は、解がない線形連立方程式の「最適」（最小二乗（英語版））解を計算することである（以下の応用を参照）。ほかに、複数の解を持つ線形連立方程式の最小（ユークリッド）ノルム解を求めることにも用いられる。擬似逆行列によって、線形代数での結果の表現と証明が容易になる。 擬似逆行列は、成分が実数または複素数であるすべての行列に対して定義され、一意に定まる。特異値分解を用いて計算できる。 以下の説明では、次の表記規約に従うものとする。 R {\displaystyle \mathbb {R} } と C {\displaystyle \mathbb {C} } はそれぞれ実数体または複素数体を表し、 k {\displaystyle \mathbb {k} } はこれらのいずれかを表すものとする。 k {\displaystyle \mathbb {k} } 上の m × n {\displaystyle m\times n} 行列のベクトル空間を k m × n {\displaystyle \mathbb {k} ^{m\times n}} で表す。 A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} に対して、 A ⊺ {\displaystyle A^{\intercal }} と A ∗ {\displaystyle A^{*}} はそれぞれ、転置行列とエルミート転置行列（随伴行列とも呼ばれる）を表す。 k = R {\displaystyle \mathbb {k} =\mathbb {R} } のときは、 A ∗ = A ⊺ {\displaystyle A^{*}=A^{\intercal }} である。 A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} に対して、 ran ⁡ A {\displaystyle \operatorname {ran} A} （「値域(range)」の略）は、 A {\displaystyle A} の列空間（像）（ A {\displaystyle A} の列ベクトルが張る空間）を表し、 ker ⁡ A {\displaystyle \ker A} は A {\displaystyle A} の核（零空間）を表す。 最後に、任意の正の整数 n {\displaystyle n} に対して I n ∈ k n × n {\displaystyle I_{n}\in \mathbb {k} ^{n\times n}} は n × n {\displaystyle n\times n} 単位行列を表す。 A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} に対して、 A の擬似逆行列は、ムーア・ペンローズ条件として知られる次の4つの条件をすべて満たす行列 A + ∈ k n × m {\displaystyle A^{+}\in \mathbb {k} ^{n\times m}} として定義される： A A + A = A {\displaystyle AA^{+}A=A} A A + {\displaystyle AA^{+}} は一般恒等行列である必要はないが、 A のどの列ベクトルも A 自身に写す。 A + A A + = A + {\displaystyle A^{+}AA^{+}=A^{+}} A + {\displaystyle A^{+}} は弱逆行列（英語版）のように振る舞う。 ( A A + ) ∗ = A A + {\displaystyle \left(AA^{+}\right)^{*}=AA^{+}} A A + {\displaystyle AA^{+}} はエルミート行列。 ( A + A ) ∗ = A + A {\displaystyle \left(A^{+}A\right)^{*}=A^{+}A} A + A {\displaystyle A^{+}A} もエルミート行列。 A + {\displaystyle A^{+}} はすべての行列 A に対して存在するが、 A がフルランク（すなわち、 A のランクが min { m , n } {\displaystyle \min\{m,n\}} である）であるならば、 A + {\displaystyle A^{+}} は単純な代数式として表される。 A の列ベクトルが線型独立である（したがって行列 A ∗ A {\displaystyle A^{*}A} は可逆である）ならば、 A + {\displaystyle A^{+}} は次のように計算できる。 A + = ( A ∗ A ) − 1 A ∗ {\displaystyle A^{+}=\left(A^{*}A\right)^{-1}A^{*}} このような擬似逆行列は左逆行列となる。この場合、 A + A = I n {\displaystyle A^{+}A=I_{n}} となる。 A の行ベクトルが線型独立である（行列 A A ∗ {\displaystyle AA^{*}} が可逆である）ならば、 A + {\displaystyle A^{+}} は次のように計算できる。 A + = A ∗ ( A A ∗ ) − 1 {\displaystyle A^{+}=A^{*}\left(AA^{*}\right)^{-1}} これは右逆行列となり、 A A + = I m {\displaystyle AA^{+}=I_{m}} となる。 擬似逆行列は存在し、一意に定まる：任意の行列 A に対して、定義の4つの条件を満たす行列 A + {\displaystyle A^{+}} が唯一つ存在する。 定義の最初の条件 AA−A = A を満たす行列 A− は、 行列 A の一般逆行列（generalized inverse）として知られている。定義の二条件 AA×A = A と A×AA× = A× を満たす行列 A× は、行列 A の反射形一般逆行列（reflexive generalized inverse）と呼ばれる。一般逆行列は常に存在するが、一般に一意に定まらない。一意性は、最後の2つの条件から導かれる。 以下の特徴の証明は、証明サブページに記した。 A が実行列であれば、 A + {\displaystyle A^{+}} も実行列である。 A が可逆ならば、A の擬似逆行列は A の逆行列である。 A + = A − 1 {\displaystyle A^{+}=A^{-1}} 。 零行列の擬似逆行列は零行列の転置となる。 擬似逆行列の擬似逆行列は、元の行列になる。 ( A + ) + = A {\displaystyle \left(A^{+}\right)^{+}=A} 。 擬似逆行列の操作は、転置、複素共役、および共役転置の各操作と交換できる。 ( A ⊺ ) + = ( A + ) ⊺ ( A ¯ ) + = A + ¯ ( A ∗ ) + = ( A + ) ∗ {\displaystyle {\begin{aligned}\left(A^{\intercal }\right)^{+}&=\left(A^{+}\right)^{\intercal }\\\left({\overline {A}}\right)^{+}&={\overline {A^{+}}}\\\left(A^{*}\right)^{+}&=\left(A^{+}\right)^{*}\end{aligned}}} A の定数倍行列の擬似逆行列は、定数の逆数をかけたものになる： ( α A ) + = α − 1 A + {\displaystyle \left(\alpha A\right)^{+}=\alpha ^{-1}A^{+}} ただし α ≠ 0 {\displaystyle \alpha \neq 0} 。 次の恒等式を用いて、擬似逆行列を含む式の一部を簡略化したり展開できる。 A = A A ∗ A + ∗ = A + ∗ A ∗ A {\displaystyle A=AA^{*}A^{+*}=A^{+*}A^{*}A} 同じことであるが、 A {\displaystyle A} を A + {\displaystyle A^{+}} で置き換えると以下の式が得られる。 A + = A + A + ∗ A ∗ = A ∗ A + ∗ A + {\displaystyle A^{+}=A^{+}A^{+*}A^{*}=A^{*}A^{+*}A^{+}} A {\displaystyle A} を A ∗ {\displaystyle A^{*}} で置き換えると以下の式になる。 A ∗ = A ∗ A A + = A + A A ∗ {\displaystyle A^{*}=A^{*}AA^{+}=A^{+}AA^{*}} 擬似逆行列の計算は、エルミートの場合の構成法に還元できる。これは、以下の等価性によるものである。 A + = ( A ∗ A ) + A ∗ {\displaystyle A^{+}=\left(A^{*}A\right)^{+}A^{*}} ここで、 A ∗ A {\displaystyle A^{*}A} と A A ∗ {\displaystyle AA^{*}} はエルミートである。 A ∈ k m × n , B ∈ k n × p {\displaystyle A\in \mathbb {k} ^{m\times n},B\in \mathbb {k} ^{n\times p}} とする。すると、以下は同値になる。 ( A B ) + = B + A + {\displaystyle (AB)^{+}=B^{+}A^{+}} A + A B B ∗ A ∗ = B B ∗ A ∗ , B B + A ∗ A B = A ∗ A B . {\textstyle {\begin{aligned}A^{+}ABB^{*}A^{*}&=BB^{*}A^{*},\\BB^{+}A^{*}AB&=A^{*}AB.\end{aligned}}} ( A + A B B ∗ ) ∗ = A + A B B ∗ , ( A ∗ A B B + ) ∗ = A ∗ A B B + . {\displaystyle {\begin{aligned}\left(A^{+}ABB^{*}\right)^{*}&=A^{+}ABB^{*},\\\left(A^{*}ABB^{+}\right)^{*}&=A^{*}ABB^{+}.\end{aligned}}} A + A B B ∗ A ∗ A B B + = B B ∗ A ∗ A {\displaystyle A^{+}ABB^{*}A^{*}ABB^{+}=BB^{*}A^{*}A} A + A B = B ( A B ) + A B , B B + A ∗ = A ∗ A B ( A B ) + . {\displaystyle {\begin{aligned}A^{+}AB&=B(AB)^{+}AB,\\BB^{+}A^{*}&=A^{*}AB(AB)^{+}.\end{aligned}}} 以下は ( A B ) + = B + A + {\displaystyle (AB)^{+}=B^{+}A^{+}} の十分条件である（このうちのいずれか一つを満たせば十分である）： A が正規直交列を持つ（このとき A ∗ A = A + A = I n {\displaystyle A^{*}A=A^{+}A=I_{n}} ） B が正規直交行を持つ（このとき B B ∗ = B B + = I n {\displaystyle BB^{*}=BB^{+}=I_{n}} ） A の列が線型独立であり（ A + A = I n {\displaystyle A^{+}A=I_{n}} ）、かつ B の行が線型独立である（ B B + = I n {\displaystyle BB^{+}=I_{n}} ） B = A ∗ {\displaystyle B=A^{*}} B = A + {\displaystyle B=A^{+}} 以下は ( A B ) + = B + A + {\displaystyle (AB)^{+}=B^{+}A^{+}} の必要条件である： ( A + A ) ( B B + ) = ( B B + ) ( A + A ) {\displaystyle (A^{+}A)(BB^{+})=(BB^{+})(A^{+}A)} 最後の十分条件から以下の式が導かれる。 ( A A ∗ ) + = A + ∗ A + , ( A ∗ A ) + = A + A + ∗ . {\displaystyle {\begin{aligned}\left(AA^{*}\right)^{+}&=A^{+*}A^{+},\\\left(A^{*}A\right)^{+}&=A^{+}A^{+*}.\end{aligned}}} 注意：等式 ( A B ) + = B + A + {\displaystyle (AB)^{+}=B^{+}A^{+}} は一般には成り立たない。反例は以下の通り： ( ( 1 1 0 0 ) ( 0 0 1 1 ) ) + = ( 1 1 0 0 ) + = ( 1 2 0 1 2 0 ) ≠ ( 1 4 0 1 4 0 ) = ( 0 1 2 0 1 2 ) ( 1 2 0 1 2 0 ) = ( 0 0 1 1 ) + ( 1 1 0 0 ) + {\displaystyle {\Biggl (}{\begin{pmatrix}1&1\\0&0\end{pmatrix}}{\begin{pmatrix}0&0\\1&1\end{pmatrix}}{\Biggr )}^{+}={\begin{pmatrix}1&1\\0&0\end{pmatrix}}^{+}={\begin{pmatrix}{\tfrac {1}{2}}&0\\{\tfrac {1}{2}}&0\end{pmatrix}}\quad \neq \quad {\begin{pmatrix}{\tfrac {1}{4}}&0\\{\tfrac {1}{4}}&0\end{pmatrix}}={\begin{pmatrix}0&{\tfrac {1}{2}}\\0&{\tfrac {1}{2}}\end{pmatrix}}{\begin{pmatrix}{\tfrac {1}{2}}&0\\{\tfrac {1}{2}}&0\end{pmatrix}}={\begin{pmatrix}0&0\\1&1\end{pmatrix}}^{+}{\begin{pmatrix}1&1\\0&0\end{pmatrix}}^{+}} A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} とする。 P = A A + {\displaystyle P=AA^{+}} と Q = A + A {\displaystyle Q=A^{+}A} は直交射影演算子である。つまり、これらはエルミート（ P = P ∗ {\displaystyle P=P^{*}} 、 Q = Q ∗ {\displaystyle Q=Q^{*}} ）およびべき等（ P 2 = P {\displaystyle P^{2}=P} と Q 2 = Q {\displaystyle Q^{2}=Q} ）であり、以下の事柄が成り立つ： P A = A Q = A {\displaystyle PA=AQ=A} かつ A + P = Q A + = A + {\displaystyle A^{+}P=QA^{+}=A^{+}} P が A の値域への直交射影作用素である（これは、 A ∗ {\displaystyle A^{*}} の核の直交補空間に等しい）。 Q が A ∗ {\displaystyle A^{*}} の値域への直交射影作用素である（これは、 A の核の直交補空間に等しい）。 I n − Q = I n − A + A {\displaystyle I_{n}-Q=I_{n}-A^{+}A} は A の核への直交射影作用素である。 I m − P = I m − A A + {\displaystyle I_{m}-P=I_{m}-AA^{+}} は A ∗ {\displaystyle A^{*}} の核の直交射影作用素である。 最後の2つの特徴は、以下の等式を意味する。 A   ( I n − A + A ) = ( I m − A A + ) A     = 0 {\displaystyle A\,\ \left(I_{n}-A^{+}A\right)=\left(I_{m}-AA^{+}\right)A\ \ =0} A ∗ ( I m − A A + ) = ( I n − A + A ) A ∗ = 0 {\displaystyle A^{*}\left(I_{m}-AA^{+}\right)=\left(I_{n}-A^{+}A\right)A^{*}=0} 他の特徴は以下の通り。 A ∈ k n × n {\displaystyle A\in \mathbb {k} ^{n\times n}} はエルミートかつべき等であり（正射影を表す場合かつその場合に限って真）、任意の行列 B ∈ k m × n {\displaystyle B\in \mathbb {k} ^{m\times n}} に対して以下の等式が成り立つ。 A ( B A ) + = ( B A ) + {\displaystyle A(BA)^{+}=(BA)^{+}} これは、行列 C = B A {\displaystyle C=BA} 、 D = A ( B A ) + {\displaystyle D=A(BA)^{+}} を定義することで証明できる。 A がエルミートでべき等であるという、擬似逆行列の特徴を満たすことを確認することにより、 D が実際に C の擬似逆行列になっていることを確認すればよい。 最後の特徴から、 A ∈ k n × n {\displaystyle A\in \mathbb {k} ^{n\times n}} がエルミートかつべき等であるならば、任意の行列 A ∈ k n × m {\displaystyle A\in \mathbb {k} ^{n\times m}} に対して以下の式が成り立つ。 ( A B ) + A = ( A B ) + {\displaystyle (AB)^{+}A=(AB)^{+}} 最後に、 A は直交射影行列であるならば、その擬似逆行列は元の行列と自明に一致する。つまり、 A + = A {\displaystyle A^{+}=A} 。 行列 A : k n → k m {\displaystyle A\colon \mathbb {k} ^{n}\to \mathbb {k} ^{m}} を体 k {\displaystyle \mathbb {k} } 上の線型写像として見ると、 A + : k m → k n {\displaystyle A^{+}\colon \mathbb {k} ^{m}\to \mathbb {k} ^{n}} は次のように分解できる。ここで、 ⊕ {\displaystyle \oplus } を直和、 ⊥ {\displaystyle \perp } を直交補空間、 ker {\displaystyle \operatorname {ker} } を写像の核、そして ran {\displaystyle \operatorname {ran} } を写像の像とする。 k n = ( ker ⁡ A ) ⊥ ⊕ ker ⁡ A {\displaystyle \mathbb {k} ^{n}=\left(\ker A\right)^{\perp }\oplus \ker A} となり k m = ran ⁡ A ⊕ ( ran ⁡ A ) ⊥ {\displaystyle \mathbb {k} ^{m}=\operatorname {ran} A\oplus \left(\operatorname {ran} A\right)^{\perp }} となることに注意せよ。 A : ( ker ⁡ A ) ⊥ → ran ⁡ A {\displaystyle A\colon \left(\ker A\right)^{\perp }\to \operatorname {ran} A} と制限すると、同型写像となる。これは、 ran ⁡ A {\displaystyle \operatorname {ran} A} 上で A + {\displaystyle A^{+}} がこの同型写像の逆写像となり、 ( ran ⁡ A ) ⊥ {\displaystyle \left(\operatorname {ran} A\right)^{\perp }} 上で核が逆写像となることを含意する。 言い換えれば： k m {\displaystyle \mathbb {k} ^{m}} の元 b {\displaystyle b} が与えられたとき、 A + b {\displaystyle A^{+}b} を探すために、まず A {\displaystyle A} の値域に直交するように b {\displaystyle b} を射影し、値域内の点 p ( b ) {\displaystyle p(b)} を探す。次に A − 1 ( { p ( b ) } ) {\displaystyle A^{-1}(\{p(b)\})} を作る。すなわち、 k n {\displaystyle \mathbb {k} ^{n}} に属し、 A {\displaystyle A} を p ( b ) {\displaystyle p(b)} に写すベクトルを探す。これは A {\displaystyle A} の核に平行する k n {\displaystyle \mathbb {k} ^{n}} のアフィン部分空間になる 。長さが最小の（つまり、原点に最も近い）を持つこの部分空間の元が、求めたい答え A + b {\displaystyle A^{+}b} になる。 A − 1 ( { p ( b ) } ) {\displaystyle A^{-1}(\{p(b)\})} の任意の元を選び、それを A {\displaystyle A} の核の直交補空間に直交して投影することで求まる。 この説明は、線型連立方程式の最小ノルム解と密接に関連する。 ker ⁡ A + = ker ⁡ A ∗ ran ⁡ A + = ran ⁡ A ∗ {\displaystyle {\begin{aligned}\ker A^{+}&=\ker A^{*}\\\operatorname {ran} A^{+}&=\operatorname {ran} A^{*}\end{aligned}}} 擬似逆行列は以下の極限を持つ。 A + = lim δ ↘ 0 ( A ∗ A + δ I ) − 1 A ∗ = lim δ ↘ 0 A ∗ ( A A ∗ + δ I ) − 1 {\displaystyle A^{+}=\lim _{\delta \searrow 0}\left(A^{*}A+\delta I\right)^{-1}A^{*}=\lim _{\delta \searrow 0}A^{*}\left(AA^{*}+\delta I\right)^{-1}} （チコノフ正則化を参照）。 ( A A ∗ ) − 1 {\displaystyle (AA^{*})^{-1}} や ( A ∗ A ) − 1 {\displaystyle (A^{*}A)^{-1}} が存在しない場合にも、これらの極限は存在する。 通常の逆行列とは対照的に、擬似逆行列を求める操作は連続的ではない。行列の列 ( A n ) {\displaystyle (A_{n})} が行列 A {\displaystyle A} に収束する（たとえば、最大ノルムまたはフロベニウスノルムの意味で）ならば、 ( A n ) + {\displaystyle (A_{n})^{+}} が A + {\displaystyle A^{+}} に収束する必要はない。ただし、すべての行列 A n {\displaystyle A_{n}} が A {\displaystyle A} と同じランクであれば、 ( A n ) + {\displaystyle (A_{n})^{+}} は A + {\displaystyle A^{+}} に収束する。 ある点 x {\displaystyle x} で定数のランクを持つ実数値の擬似逆行列の導関数は、元の行列の導関数で計算できる： d d x A + ( x ) = − A + ( d d x A ) A +   +   A + A + ⊺ ( d d x A ⊺ ) ( I − A A + )   +   ( I − A + A ) ( d d x A ⊺ ) A + ⊺ A + {\displaystyle {\frac {\mathrm {d} }{\mathrm {d} x}}A^{+}(x)=-A^{+}\left({\frac {\mathrm {d} }{\mathrm {d} x}}A\right)A^{+}~+~A^{+}A^{+\intercal }\left({\frac {\mathrm {d} }{\mathrm {d} x}}A^{\intercal }\right)\left(I-AA^{+}\right)~+~\left(I-A^{+}A\right)\left({\frac {\text{d}}{{\text{d}}x}}A^{\intercal }\right)A^{+\intercal }A^{+}} 可逆行列の場合、擬似逆行列は通常の逆行列に等しいため、以下では非可逆行列の例のみを扱う。 A = ( 0 0 0 0 ) {\displaystyle A={\begin{pmatrix}0&0\\0&0\end{pmatrix}}} について、疑似逆行列は A + = ( 0 0 0 0 ) {\displaystyle A^{+}={\begin{pmatrix}0&0\\0&0\end{pmatrix}}} である（一般に、零行列の疑似逆行列は元の行列の転置となる）。この疑似逆行列の一意性は、零行列の積は常に零行列であるため、条件 A + = A + A A + {\displaystyle A^{+}=A^{+}AA^{+}} からわかる。 A = ( 1 0 1 0 ) {\displaystyle A={\begin{pmatrix}1&0\\1&0\end{pmatrix}}} について、疑似逆行列は A + = ( 1 2 1 2 0 0 ) {\displaystyle A^{+}={\begin{pmatrix}{\frac {1}{2}}&{\frac {1}{2}}\\0&0\end{pmatrix}}} である。 実際、 A A + = ( 1 2 1 2 1 2 1 2 ) {\displaystyle A\,A^{+}={\begin{pmatrix}{\frac {1}{2}}&{\frac {1}{2}}\\{\frac {1}{2}}&{\frac {1}{2}}\end{pmatrix}}} であり、したがって A A + A = ( 1 0 1 0 ) = A {\displaystyle A\,A^{+}A={\begin{pmatrix}1&0\\1&0\end{pmatrix}}=A} である。 同様に、 A + A = ( 1 0 0 0 ) , {\displaystyle A^{+}A={\begin{pmatrix}1&0\\0&0\end{pmatrix}},} であり、したがって A + A A + = ( 1 2 1 2 0 0 ) = A + {\displaystyle A^{+}A\,A^{+}={\begin{pmatrix}{\frac {1}{2}}&{\frac {1}{2}}\\0&0\end{pmatrix}}=A^{+}} である。 A = ( 1 0 − 1 0 ) {\displaystyle A={\begin{pmatrix}1&0\\-1&0\end{pmatrix}}} について、 A + = ( 1 2 − 1 2 0 0 ) {\displaystyle A^{+}={\begin{pmatrix}{\frac {1}{2}}&-{\frac {1}{2}}\\0&0\end{pmatrix}}} 。 A = ( 1 0 2 0 ) {\displaystyle A={\begin{pmatrix}1&0\\2&0\end{pmatrix}}} について、 A + = ( 1 5 2 5 0 0 ) {\displaystyle A^{+}={\begin{pmatrix}{\frac {1}{5}}&{\frac {2}{5}}\\0&0\end{pmatrix}}} 。 (分母は 5 = 1 2 + 2 2 {\displaystyle 5=1^{2}+2^{2}} 。) A = ( 1 1 1 1 ) {\displaystyle A={\begin{pmatrix}1&1\\1&1\end{pmatrix}}} について、 A + = ( 1 4 1 4 1 4 1 4 ) {\displaystyle A^{+}={\begin{pmatrix}{\frac {1}{4}}&{\frac {1}{4}}\\{\frac {1}{4}}&{\frac {1}{4}}\end{pmatrix}}} 。 A = ( 1 0 0 1 0 1 ) {\displaystyle A={\begin{pmatrix}1&0\\0&1\\0&1\end{pmatrix}}} について、疑似逆行列は A + = ( 1 0 0 0 1 2 1 2 ) {\displaystyle A^{+}={\begin{pmatrix}1&0&0\\0&{\frac {1}{2}}&{\frac {1}{2}}\end{pmatrix}}} である。 この行列について、左逆行列が存在し、ゆえに A + {\displaystyle A^{+}} と一致する。実際、 A + A = ( 1 0 0 1 ) {\displaystyle A^{+}A={\begin{pmatrix}1&0\\0&1\end{pmatrix}}} である。 スカラーとベクトルの擬似逆行列を定義することもできる。この場合、これらを行列として扱うことになる。スカラー x {\displaystyle x} の擬似逆行列は、 x {\displaystyle x} がゼロの場合はゼロになり、それ以外の場合は x {\displaystyle x} の逆数となる： x + = { 0 , if  x = 0 ; x − 1 , otherwise . {\displaystyle x^{+}={\begin{cases}0,&{\mbox{if }}x=0;\\x^{-1},&{\mbox{otherwise}}.\end{cases}}} 零（すべてゼロ）ベクトルの擬似逆行列は、転置された零ベクトルである。非零ベクトルの擬似逆行列は、共役転置ベクトルをその2乗の大きさで割ったものになる。 x → + = { 0 → ⊺ , if  x → = 0 → ; x → ∗ x → ∗ x → , otherwise . {\displaystyle {\vec {x}}^{+}={\begin{cases}{\vec {0}}^{\intercal },&{\mbox{if }}{\vec {x}}={\vec {0}};\\{\dfrac {{\vec {x}}^{*}}{{\vec {x}}^{*}{\vec {x}}}},&{\mbox{otherwise}}.\end{cases}}} A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} の列が線型独立の場合（ m ≥ n {\displaystyle m\geq n} ）、 A ∗ A {\displaystyle A^{*}A} は可逆である。この場合の明示的な式は以下の通り。 A + = ( A ∗ A ) − 1 A ∗ {\displaystyle A^{+}=\left(A^{*}A\right)^{-1}A^{*}} つまり、 A + {\displaystyle A^{+}} は A {\displaystyle A} の左逆行列となる： A + A = I n {\displaystyle A^{+}A=I_{n}} つまり、 A + {\displaystyle A^{+}} は A {\displaystyle A} の右逆行列となる： A A + = I m {\displaystyle AA^{+}=I_{m}} A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} の行が線型独立の場合（ m ≤ n {\displaystyle m\leq n} ）、 A A ∗ {\displaystyle AA^{*}} は可逆である。この場合の明示的な式は以下の通り。 A + = A ∗ ( A A ∗ ) − 1 {\displaystyle A^{+}=A^{*}\left(AA^{*}\right)^{-1}} これは、列フルランクまたは行フルランクの特殊なケースである（上記で扱った）。 A {\displaystyle A} が正規直交列（ A ∗ A = I n {\displaystyle A^{*}A=I_{n}} ）または正規直交行（ A A ∗ = I m {\displaystyle AA^{*}=I_{m}} ）を持つならば、以下の式が成り立つ： つまり、 A + {\displaystyle A^{+}} は A {\displaystyle A} の右逆行列となる： A A + = I m {\displaystyle AA^{+}=I_{m}} これは、列フルランクまたは行フルランクの特殊なケースである（上記で扱った）。 A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} が正規直交列（ A ∗ A = I n {\displaystyle A^{*}A=I_{n}} ）または正規直交行（ A A ∗ = I m {\displaystyle AA^{*}=I_{m}} ）を持つならば、以下の式が成り立つ： A + = A ∗ {\displaystyle A^{+}=A^{*}} 2次正方行列 A = ( a b c d ) {\displaystyle A={\begin{pmatrix}a&b\\c&d\end{pmatrix}}} の擬似逆行列は a d − b c ≠ 0 {\displaystyle ad-bc\neq 0} のとき、 A + = A − 1 = 1 a d − b c ( d − b − c a ) {\displaystyle A^{+}=A^{-1}={\frac {1}{ad-bc}}{\begin{pmatrix}d&-b\\-c&a\end{pmatrix}}} である。 a d − b c = 0 {\displaystyle ad-bc=0} のとき、 A ≠ O {\displaystyle A\neq O} のときは A + = 1 | a | 2 + | b | 2 + | c | 2 + | d | 2 ( a ¯ c ¯ b ¯ d ¯ ) {\displaystyle A^{+}={\frac {1}{|a|^{2}+|b|^{2}+|c|^{2}+|d|^{2}}}{\begin{pmatrix}{\bar {a}}&{\bar {c}}\\{\bar {b}}&{\bar {d}}\end{pmatrix}}} となる。 A = O {\displaystyle A=O} のときは A + = O = ( 0 0 0 0 ) {\displaystyle A^{+}=O={\begin{pmatrix}0&0\\0&0\end{pmatrix}}} である。 A {\displaystyle A} が 正規行列、つまり、共役転置が可換であれば、その擬似逆行列は、それを対角化し、すべての非ゼロ固有値をそれらの逆数に、ゼロ固有値をゼロに写すことで計算できる。当然、 A {\displaystyle A} が転置について可換であるとは、それがその擬似逆行列で可換であることを意味します。 これは、固有値が0と1の正規行列の特殊なケースである。 A {\displaystyle A} が直交射影行列、つまり、 A = A ∗ {\displaystyle A=A^{*}} かつ A 2 = A {\displaystyle A^{2}=A} であれば、擬似逆行列は行列自体と自明に一致する： A + = A {\displaystyle A^{+}=A} C {\displaystyle C} が巡回行列の場合、フーリエ変換で特異値分解ができる。つまり、特異値はフーリエ係数となる。 F {\displaystyle {\mathcal {F}}} を離散フーリエ変換（DFT）行列とすると、 C = F ⋅ Σ ⋅ F ∗ C + = F ⋅ Σ + ⋅ F ∗ {\displaystyle {\begin{aligned}C&={\mathcal {F}}\cdot \Sigma \cdot {\mathcal {F}}^{*}\\C^{+}&={\mathcal {F}}\cdot \Sigma ^{+}\cdot {\mathcal {F}}^{*}\end{aligned}}} r ≤ min ( m , n ) {\displaystyle r\leq \min(m,n)} で A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} の ランクを表すとする。すると A {\displaystyle A} は A = B C {\displaystyle A=BC} として（ランク）分解することができる。ここで、 B ∈ k m × r , C ∈ k r × n {\displaystyle B\in \mathbb {k} ^{m\times r},C\in \mathbb {k} ^{r\times n}} のランクは r {\displaystyle r} である。このとき A + = C + B + = C ∗ ( C C ∗ ) − 1 ( B ∗ B ) − 1 B ∗ {\displaystyle A^{+}=C^{+}B^{+}=C^{*}\left(CC^{*}\right)^{-1}\left(B^{*}B\right)^{-1}B^{*}} となる。 k ∈ { R , C } {\displaystyle \mathbb {k} \in \{\mathbb {R} ,\mathbb {C} \}} で積 A A ∗ , A ∗ A {\displaystyle AA^{*},A^{*}A} やそれらの逆行列を直接計算すると、実際には数値の丸め誤差や計算コストがたびたび生じる。逆行列の計算には、上記の代わりに A {\displaystyle A} のQR分解を用いる方法がある。 A {\displaystyle A} が列フルランクの場合を考える。このとき A + = ( A ∗ A ) − 1 A ∗ {\displaystyle A^{+}=\left(A^{*}A\right)^{-1}A^{*}} である。すると、コレスキー分解 A ∗ A = R ∗ R {\displaystyle A^{*}A=R^{*}R} （ R {\displaystyle R} は上三角行列）を用いることができる。逆行列の乗算は、複数右辺ベクトルを持つ連立方程式を解くことで簡単に行える。 A + = ( A ∗ A ) − 1 A ∗ ⇔ ( A ∗ A ) A + = A ∗ ⇔ R ∗ R A + = A ∗ {\displaystyle A^{+}=\left(A^{*}A\right)^{-1}A^{*}\quad \Leftrightarrow \quad \left(A^{*}A\right)A^{+}=A^{*}\quad \Leftrightarrow \quad R^{*}RA^{+}=A^{*}} これは、前進代入と後退代入で解くことができる。 コレスキー分解の代わりに QR分解 A = Q R {\displaystyle A=QR} を用いることで、 A ∗ A {\displaystyle A^{*}A} を明示的に構築せずに計算できる。ここで、 Q {\displaystyle Q} は正規直交列を持ち、 Q ∗ Q = I {\displaystyle Q^{*}Q=I} 、そして R {\displaystyle R} 上三角行列である。このとき A ∗ A = ( Q R ) ∗ ( Q R ) = R ∗ Q ∗ Q R = R ∗ R {\displaystyle A^{*}A\,=\,(QR)^{*}(QR)\,=\,R^{*}Q^{*}QR\,=\,R^{*}R} それでのコレスキー因子である 。 行フルランクの場合は、式 A + = A ∗ ( A A ∗ ) − 1 {\displaystyle A^{+}=A^{*}\left(AA^{*}\right)^{-1}} を用い、 A {\displaystyle A} と A ∗ {\displaystyle A^{*}} を入れ替えた同様の議論で対処可能である。 計算上単純で正確な擬似逆行列を計算する方法は、特異値分解である。 A = U Σ V ∗ {\displaystyle A=U\Sigma V^{*}} を A {\displaystyle A} の特異値分解とすると、 A + = V Σ + U ∗ {\displaystyle A^{+}=V\Sigma ^{+}U^{*}} となる。 Σ {\displaystyle \Sigma } のような長方対角行列の場合、対角成分の各非ゼロ要素は逆数を取り、ゼロをそのままにして、行列を転置することにより、擬似逆行列が得られる。数値計算では、許容誤差よりも大きい要素のみが非ゼロと見なされ、他の要素はゼロに置き換えられる。たとえば、 MATLABやGNUOctaveのpinv関数の場合、許容誤差は t = ε⋅max(m, n)⋅max(Σ) で与えられる。ここで、εは計算機イプシロンである。 この方法の計算コストは、SVDの計算コストが支配的である。これは、最先端の実装（LAPACKなど）が使用されている場合でも、行列同士の乗算よりも数倍重い。 上記の手順は、擬似逆行列の計算が連続演算ではない理由を示している。元の行列 A {\displaystyle A} が特異値0（上記行列 Σ {\displaystyle \Sigma } の対角成分）を持つ場合、 A {\displaystyle A} のわずかな変更によってこのゼロが小さな正の数に変わる可能性があり、それによって、小さな数の逆数を求める必要が生じ、擬似逆行列に大きな影響を与えうる。 ブロック構造化された行列の擬似逆行列を計算するための最適化されたアプローチ（英語版）が存在する。 他に、再帰を用いて擬似逆行列を計算する方法（ドラジン逆行列（英語版）を参照）がある。 A i + 1 = 2 A i − A i A A i {\displaystyle A_{i+1}=2A_{i}-A_{i}AA_{i}} これは、超べき列(hyper-power sequence)と呼ばれることもある。この再帰は、適切な A 0 {\displaystyle A_{0}} から始まり、 A 0 A = ( A 0 A ) ∗ {\displaystyle A_{0}A=\left(A_{0}A\right)^{*}} を満足する場合、 A {\displaystyle A} の擬似逆行列に2次的に収束する列を生成する。 A 0 = α A ∗ {\displaystyle A_{0}=\alpha A^{*}} という選び方（ここで 0 < α < 2 / σ 1 2 ( A ) {\displaystyle 0<\alpha <2/\sigma _{1}^{2}(A)} であり、 σ 1 ( A ) {\displaystyle \sigma _{1}(A)} は A {\displaystyle A} の最大の特異値を示す）は、上記のSVDを使用する方法と競合しないと主張されている。これは、適度に悪条件の行列であっても、 A i {\displaystyle A_{i}} が二次収束の領域に入る前に長い時間がかかるためである。ただし、 A 0 {\displaystyle A_{0}} がすでにムーア・ペンローズ逆行列に近く、 A 0 A = ( A 0 A ) ∗ {\displaystyle A_{0}A=\left(A_{0}A\right)^{*}} ならば、 例えば A 0 := ( A ∗ A + δ I ) − 1 A ∗ {\displaystyle A_{0}:=\left(A^{*}A+\delta I\right)^{-1}A^{*}} ならば、収束は高速である（二次）。 A {\displaystyle A} が行または列フルランクで、かつ相関行列の逆行列（ A {\displaystyle A} が行フルランクの場合は A A ∗ {\displaystyle AA^{*}} 、列フルランクの場合は A ∗ A {\displaystyle A^{*}A} ）がすでに既知であるならば、 A {\displaystyle A} に関連する行列の擬似逆行列は、シャーマン・モリソン・ウッドベリーの式（英語版）を適用して相関行列の逆行列を更新することで計算できる。これにより、必要な作業が少なて済む可能性がある。特に関連する行列について、変更、追加、または削除された行・列のみが元の行列と異なる場合、その関係を利用する増分アルゴリズムが存在する 。 同様に、行または列が追加されたときに、相関行列の逆行列を明示的に作成せずに、コレスキー係数を更新することができる。ただし、一般のランク不足の場合、擬似逆行列の更新は非常に複雑である 。 SVD、QR、および後方代入の高品質な実装は、 LAPACKなどの標準ライブラリで利用できる。 SVDの独自実装の作成には、高度な数値計算の専門知識を必要とする。ただし、並列コンピューティングや組み込みコンピューティングなどの特殊な状況では、QRによる代替実装、または明示的な逆行列の使用が望ましい場合があり、独自実装は避けられない場合がある。 PythonパッケージNumPyでは、関数matrix.Iとlinalg.pinvを利用できる。pinvはSVDベースのアルゴリズムを使用する。 SciPyでは、最小二乗ソルバーを使用する関数scipy.linalg.pinvを利用できる。 RのMASSパッケージでは、 ginv関数でムーア・ペンローズ逆行列の計算が行える。 ginv関数は、ベースRパッケージのsvd関数による特異値分解を使用して擬似逆行列を計算する。他に、pracmaパッケージで利用可能なpinv関数を使用する方法もある。 Octaveプログラミング言語は、標準パッケージ関数pinvおよびpseudo_inverse()メソッドを介して擬似逆行列を計算できる。 Julia（プログラミング言語）では、標準ライブラリのLinearAlgebraパッケージが、特異値分解を介して実装されたムーア・ペンローズ逆行列の実装 pinv() を提供する。 擬似逆行列によって、連立一次方程式の最小二乗解が求まる。 A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} を係数行列とする以下の連立一次方程式が与えられた場合を考える。 A x = b {\displaystyle Ax=b} 一般的に、連立方程式を解くベクトル x {\displaystyle x} が存在しないか、存在する場合は一意ではない可能性がある。擬似逆行列は、「最小二乗」問題を次のように解く。 任意の x ∈ k n {\displaystyle x\in \mathbb {k} ^{n}} について、 ‖ A x − b ‖ 2 ≥ ‖ A z − b ‖ 2 {\displaystyle \left\|Ax-b\right\|_{2}\geq \left\|Az-b\right\|_{2}} となる。ここで、 z = A + b {\displaystyle z=A^{+}b} であり、 ‖ ⋅ ‖ 2 {\displaystyle \|\cdot \|_{2}} はユークリッドノルムを表す。等号は、任意のベクトル w ∈ k n {\displaystyle w\in \mathbb {k} ^{n}} が x = A + b + ( I n − A + A ) w {\displaystyle x=A^{+}b+\left(I_{n}-A^{+}A\right)w} を満たすとき、またそのときに限って成り立つ。 A {\displaystyle A} が列フルランク（ ( I n − A + A ) {\displaystyle (I_{n}-A^{+}A)} が零行列）でない限り、これは無数の最小解を与える。 最小ユークリッドノルムの解は z {\displaystyle z} である。 ユークリッドノルムをフロベニウスノルムに置き換えると、複数右辺ベクトルを持つ連立方程式に簡単に拡張できる。 B ∈ k m × p {\displaystyle B\in \mathbb {k} ^{m\times p}} とすると、次のようになる。 任意の X ∈ k n × p {\displaystyle X\in \mathbb {k} ^{n\times p}} について、 ‖ A X − B ‖ F ≥ ‖ A Z − B ‖ F {\displaystyle \|AX-B\|_{\mathrm {F} }\geq \|AZ-B\|_{\mathrm {F} }} となる。ここで Z = A + B {\displaystyle Z=A^{+}B} であり、 ‖ ⋅ ‖ F {\displaystyle \|\cdot \|_{\mathrm {F} }} はフロベニウスノルムを表す。 A ∈ k m × n {\displaystyle A\in \mathbb {k} ^{m\times n}} を係数行列とする以下の線型連立方程式が複数の解を持つとする。 A x = b {\displaystyle Ax=b} するとすべての解は、任意のベクトル w ∈ k n {\displaystyle w\in \mathbb {k} ^{n}} に対して以下の式で与えられる。 x = A + b + [ I n − A + A ] w {\displaystyle x=A^{+}b+\left[I_{n}-A^{+}A\right]w} 解は、 A A + b = b {\displaystyle AA^{+}b=b} のとき、またそのときに限り存在する。後者の場合、解は、 A {\displaystyle A} が列フルランク（ [ I n − A + A ] {\displaystyle [I_{n}-A^{+}A]} が零行列）のとき、またそのときに限り一意に定まる。解は存在するが A {\displaystyle A} が列フルランクでないならば、不定方程式（英語版）となり、その無数のすべての解は最後の方程式によって与えられる。 一意でない解（劣決定系など）を持つ線型連立方程式 A x = b {\displaystyle Ax=b} では、擬似逆行列を使用して、すべての解の中で最小のユークリッドノルム ‖ x ‖ 2 {\displaystyle \|x\|_{2}} の解を構築できる。 A x = b {\displaystyle Ax=b} ならば、ベクトル z = A + b {\displaystyle z=A^{+}b} は解であり、すべての解に対して ‖ z ‖ 2 ≤ ‖ x ‖ 2 {\displaystyle \|z\|_{2}\leq \|x\|_{2}} が成り立つ。 ユークリッドノルムをフロベニウスノルムに置き換えると、複数右辺ベクトルを持つ連立方程式に簡単に拡張できる。 B ∈ k m × p {\displaystyle B\in \mathbb {k} ^{m\times p}} とすると、次のようになる。 A X = B {\displaystyle AX=B} ならば、行列 Z = A + B {\displaystyle Z=A^{+}B} は解であり、すべての解に対して ‖ Z ‖ F ≤ ‖ X ‖ F {\displaystyle \|Z\|_{\mathrm {F} }\leq \|X\|_{\mathrm {F} }} が成り立つ。 擬似逆行列と行列ノルムを使用して、任意の行列の条件数を定義できる。 cond ( A ) = ‖ A ‖ ‖ A + ‖ {\displaystyle {\mbox{cond}}(A)=\|A\|\left\|A^{+}\right\|} 条件数が大きい場合、線型連立方程式の最小二乗解を求める問題で、 A {\displaystyle A} の要素の小さな誤差が解の要素の大きな誤差につながるという意味で、悪条件であることを意味する。 実数と複素数の行列に加えて、条件は「複素数四元数」とも呼ばれる双四元数（英語版）の行列にも当てはまる。 より一般的な最小二乗問題を解くためには、すべての連続線型演算子に対して、2つのヒルベルト空間 H 1 , H 2 {\displaystyle H_{1},H_{2}} の間でムーア・ペンローズ逆演算子 A : H 1 → H 2 {\displaystyle A\colon H_{1}\to H_{2}} を定義できる。その際、上記の定義と同じ4つの条件を用いる。ここから、すべての連続線型演算子が連続線型擬似逆演算子を持つわけではないことがわかる。擬似逆演算子を持つのは、値域が H 2 {\displaystyle H_{2}} に閉じている場合に限られる。 擬似逆行列の概念は、任意の対合自己同型を備えた任意の体上の行列に存在する。このような一般的な前提では、特定の行列に対して常に擬似逆行列があるとは限らない。擬似逆行列が存在するための必要十分条件は、 rank ⁡ A = rank ⁡ A ∗ A = rank ⁡ A A ∗ {\displaystyle \operatorname {rank} A=\operatorname {rank} A^{*}A=\operatorname {rank} AA^{*}} であり、ここで A ∗ {\displaystyle A^{*}} は A {\displaystyle A} の転置に対合演算を適用した結果を表す。擬似逆行列が存在するならば、それは一意に定まる。 例：(記事の他の場所で検討されている対合とは対照的に）恒等対合を備えた複素数体を考える。この意味で擬似逆行列を持たない行列は存在するだろうか？行列 A = ( 1 i ) ⊺ {\displaystyle A={\begin{pmatrix}1&i\end{pmatrix}}^{\intercal }} を考えると、 rank ⁡ A A ⊺ = 1 {\displaystyle \operatorname {rank} AA^{\intercal }=1} である一方 rank ⁡ A ⊺ A = 0 {\displaystyle \operatorname {rank} A^{\intercal }A=0} であることがわかる。したがって、行列 A {\displaystyle A} には、この意味での擬似逆行列は存在しない。 抽象代数では、ムーア・ペンローズ逆行列は*-正則半群で定義できる。この抽象的な定義は、線型代数の定義と一致する。 ドラジン逆行列（英語版） ハット行列（英語版） 逆元 線型最小二乗法（数学） 擬似行列式（英語版） フォン・ノイマン正則環