イライアキム・ムーア (1862–1932) ロジャー・ペンローズ (1931–) 数学 、特に線形代数 において、行列 A {\displaystyle A} のムーア・ペンローズ逆行列 (英 : Moore–Penrose inverse ) A + {\displaystyle A^{+}} は、逆行列 の最もよく知られている一般化 である。 ムーア・ペンローズ形一般逆行列 とも呼ばれる[ 5] 。1920年にE・H・ムーア [ 6] に、1951年にArne Bjerhammar(英語版) [ 7] に、1955年にロジャー・ペンローズ [ 8] によって独立して記述された。それ以前、 エリック・イヴァル・フレドホルム は、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}} として定義される[ 8] [ 9] :
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^{+}} が唯一つ存在する[ 9] 。
定義の最初の条件 AA − A = A を満たす行列 A − は、 行列 A の一般逆行列 (generalized inverse)として知られている[ 5] 。定義の二条件 AA × A = A と A × AA × = A × を満たす行列 A × は、行列 A の反射形一般逆行列 (reflexive generalized inverse)と呼ばれる[ 5] 。一般逆行列は常に存在するが、一般に一意に定まらない。一意性は、最後の2つの条件から導かれる。
基本的な特徴 以下の特徴の証明は、証明サブページに記した。
A が実行列であれば、 A + {\displaystyle A^{+}} も実行列である。 A が可逆 ならば、A の擬似逆行列は A の逆行列である[ 10] :243 。 A + = A − 1 {\displaystyle A^{+}=A^{-1}} 。 零行列 の擬似逆行列は零行列の転置となる。 擬似逆行列の擬似逆行列は、元の行列になる[ 10] :245 。 ( A + ) + = A {\displaystyle \left(A^{+}\right)^{+}=A} 。 擬似逆行列の操作は、転置、複素共役、および共役転置の各操作と交換できる[ 10] :245 。 ( 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}} とする。すると、以下は同値になる[ 11] 。
( 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^{*}} の核の直交射影作用素である[ 9] 。 最後の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}} に対して以下の等式が成り立つ[ 12] 。 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}} が存在しない場合にも、これらの極限は存在する[ 9] :263 。
連続性 通常の逆行列とは対照的に、擬似逆行列を求める操作は連続的 ではない。行列の列 ( 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^{+}} に収束する[ 13] 。
導関数 ある点 x {\displaystyle x} で定数のランクを持つ実数値の擬似逆行列の導関数は、元の行列の導関数で計算できる[ 14] : 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^{+}}
例 可逆行列の場合、擬似逆行列は通常の逆行列に等しいため、以下では非可逆行列の例のみを扱う。
特殊なケース
スカラー スカラーとベクトルの擬似逆行列を定義することもできる。この場合、これらを行列として扱うことになる。スカラー 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次正方行列 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)行列とすると[ 16] 、 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^{*}} となる[ 17] 。
QR分解 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^{*}} を入れ替えた同様の議論で対処可能である。
特異値分解(SVD) 計算上単純で正確な擬似逆行列を計算する方法は、特異値分解 である[ 9] [ 18] 。 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} のわずかな変更によってこのゼロが小さな正の数に変わる可能性があり、それによって、小さな数の逆数を求める必要が生じ、擬似逆行列に大きな影響を与えうる。
ブロック行列 ブロック構造化された行列の擬似逆行列を計算するための最適化されたアプローチ(英語版) が存在する。
ベン・イスラエル(Ben-Israel)とコーエン(Cohen)の反復法 他に、再帰を用いて擬似逆行列を計算する方法(ドラジン逆行列(英語版) を参照)がある。 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} の最大の特異値を示す)[ 19] は、上記のSVDを使用する方法と競合しないと主張されている。これは、適度に悪条件の行列であっても、 A i {\displaystyle A_{i}} が二次収束の領域に入る前に長い時間がかかるためである[ 20] 。ただし、 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} に関連する行列の擬似逆行列は、シャーマン・モリソン・ウッドベリーの式(英語版) を適用して相関行列の逆行列を更新することで計算できる。これにより、必要な作業が少なて済む可能性がある。特に関連する行列について、変更、追加、または削除された行・列のみが元の行列と異なる場合、その関係を利用する増分アルゴリズムが存在する [ 21] 。
同様に、行または列が追加されたときに、相関行列の逆行列を明示的に作成せずに、コレスキー係数を更新することができる。ただし、一般のランク不足の場合、擬似逆行列の更新は非常に複雑である[ 22] [ 23] 。
ソフトウェアライブラリ SVD、QR、および後方代入の高品質な実装は、 LAPACK などの標準ライブラリ で利用できる。 SVDの独自実装の作成には、高度な数値計算の専門知識 を必要とする。ただし、並列コンピューティング や組み込みコンピューテ ィングなどの特殊な状況では、QRによる代替実装、または明示的な逆行列の使用が望ましい場合があり、独自実装は避けられない場合がある。
PythonパッケージNumPy では、関数matrix.I
とlinalg.pinv
を利用できる。pinv
はSVDベースのアルゴリズムを使用する。 SciPy では、最小二乗ソルバーを使用する関数scipy.linalg.pinv
を利用できる。
R のMASSパッケージでは、 ginv
関数でムーア・ペンローズ逆行列の計算が行える[ 24] 。 ginv
関数は、ベースRパッケージのsvd
関数による特異値分解を使用して擬似逆行列を計算する。他に、pracmaパッケージで利用可能なpinv
関数を使用する方法もある。
Octaveプログラミング言語 は、標準パッケージ関数pinv
およびpseudo_inverse()
メソッドを介して擬似逆行列を計算できる。
Julia(プログラミング言語)では、標準ライブラリのLinearAlgebraパッケージが、特異値分解を介して実装されたムーア・ペンローズ逆行列の実装 pinv()
を提供する[ 25] 。
応用
線型最小二乗法 擬似逆行列によって、連立一次方程式 の最小二乗解が求まる[ 26] 。 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)} が零行列)でない限り、これは無数の最小解を与える。[ 27] 最小ユークリッドノルムの解は z {\displaystyle z} である。[ 27] ユークリッドノルムをフロベニウスノルムに置き換えると、複数右辺ベクトルを持つ連立方程式に簡単に拡張できる。 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}} に対して以下の式で与えられる[ 28] 。 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} のとき、またそのときに限り存在する[ 28] 。後者の場合、解は、 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} の要素の小さな誤差が解の要素の大きな誤差につながるという意味で、悪条件であることを意味する[ 29] 。
一般化 実数と複素数の行列に加えて、条件は「複素数四元数」とも呼ばれる双四元数(英語版) の行列にも当てはまる[ 30] 。
より一般的な最小二乗問題を解くためには、すべての連続線型演算子に対して、2つのヒルベルト空間 H 1 , H 2 {\displaystyle H_{1},H_{2}} の間でムーア・ペンローズ逆演算子 A : H 1 → H 2 {\displaystyle A\colon H_{1}\to H_{2}} を定義できる。その際、上記の定義と同じ4つの条件を用いる。ここから、すべての連続線型演算子が連続線型擬似逆演算子を持つわけではないことがわかる[ 29] 。擬似逆演算子を持つのは、値域が 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} の転置に対合演算を適用した結果を表す。擬似逆行列が存在するならば、それは一意に定まる[ 31] 。
例 :(記事の他の場所で検討されている対合とは対照的に)恒等対合 を備えた複素数体を考える。この意味で擬似逆行列を持たない行列は存在するだろうか?行列 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} には、この意味での擬似逆行列は存在しない。
抽象代数 では、ムーア・ペンローズ逆行列は*-正則半群で定義できる。この抽象的な定義は、線型代数の定義と一致する。
関連項目
脚注 ^ a b c 伊理 2009 , 第7章一般逆行列 ^ Moore, E. H. (1920). “On the reciprocal of the general algebraic matrix”. Bulletin of the American Mathematical Society 26 (9): 394–95. doi:10.1090/S0002-9904-1920-03322-7. http://projecteuclid.org/euclid.bams/1183425340 . ^ Bjerhammar, Arne (1951). “Application of calculus of matrices to method of least squares; with special references to geodetic calculations”. Trans. Roy. Inst. Tech. Stockholm 49 . ^ a b Penrose, Roger (1955). “A generalized inverse for matrices”. Proceedings of the Cambridge Philosophical Society 51 (3): 406–13. Bibcode: 1955PCPS...51..406P. doi:10.1017/S0305004100030401. ^ a b c d e Golub, Gene H.; Charles F. Van Loan (1996). Matrix computations (3rd ed.). Baltimore: Johns Hopkins. pp. 257–258. ISBN 978-0-8018-5414-9. https://archive.org/details/matrixcomputatio00golu_910 ^ a b c Stoer, Josef; Bulirsch, Roland (2002). Introduction to Numerical Analysis (3rd ed.). Berlin, New York: Springer-Verlag . ISBN 978-0-387-95452-3 . ^ Greville, T. N. E. (1966-10-01). “Note on the Generalized Inverse of a Matrix Product”. SIAM Review 8 (4): 518–521. doi:10.1137/1008107. ISSN 0036-1445. https://epubs.siam.org/doi/10.1137/1008107 . ^ Maciejewski, Anthony A.; Klein, Charles A. (1985). “Obstacle Avoidance for Kinematically Redundant Manipulators in Dynamically Varying Environments”. International Journal of Robotics Research 4 (3): 109–117. doi:10.1177/027836498500400308. ^ Rakočević, Vladimir (1997). “On continuity of the Moore–Penrose and Drazin inverses”. Matematički Vesnik 49 : 163–72. http://elib.mi.sanu.ac.rs/files/journals/mv/209/mv973404.pdf . ^ Golub, G. H.; Pereyra, V. (April 1973). “The Differentiation of Pseudo-Inverses and Nonlinear Least Squares Problems Whose Variables Separate”. SIAM Journal on Numerical Analysis 10 (2): 413–32. Bibcode: 1973SJNA...10..413G. doi:10.1137/0710036. JSTOR 2156365. ^ Stallings, W. T.; Boullion, T. L. (1972). “The Pseudoinverse of an r -Circulant Matrix”. Proceedings of the American Mathematical Society 34 (2): 385–88. doi:10.2307/2038377. JSTOR 2038377. ^ 室田 & 杉原 2013 , 第6章一般逆行列 ^ Linear Systems & Pseudo-Inverse ^ Ben-Israel, Adi; Cohen, Dan (1966). “On Iterative Computation of Generalized Inverses and Associated Projections”. SIAM Journal on Numerical Analysis 3 (3): 410–19. Bibcode: 1966SJNA....3..410B. doi:10.1137/0703035. JSTOR 2949637. pdf ^ Söderström, Torsten; Stewart, G. W. (1974). “On the Numerical Properties of an Iterative Method for Computing the Moore–Penrose Generalized Inverse”. SIAM Journal on Numerical Analysis 11 (1): 61–74. Bibcode: 1974SJNA...11...61S. doi:10.1137/0711008. JSTOR 2156431. ^ Emtiyaz, Mohammad (February 27, 2008). Updating Inverse of a Matrix When a Column is Added/Removed . https://emtiyaz.github.io/Writings/OneColInv.pdf . ^ Meyer, Jr., Carl D. (1973). “Generalized inverses and ranks of block matrices”. SIAM J. Appl. Math. 25 (4): 597–602. doi:10.1137/0125057. ^ Meyer, Jr., Carl D. (1973). “Generalized inversion of modified matrices”. SIAM J. Appl. Math. 24 (3): 315–23. doi:10.1137/0124033. ^ “R: Generalized Inverse of a Matrix”. 2022年4月10日 閲覧。 ^ “LinearAlgebra.pinv”. 2022年4月10日 閲覧。 ^ Penrose, Roger (1956). “On best approximate solution of linear matrix equations”. Proceedings of the Cambridge Philosophical Society 52 (1): 17–19. Bibcode: 1956PCPS...52...17P. doi:10.1017/S0305004100030929. ^ a b Planitz, M. (October 1979). “Inconsistent systems of linear equations”. Mathematical Gazette 63 (425): 181–85. doi:10.2307/3617890. JSTOR 3617890. ^ a b James, M. (June 1978). “The generalised inverse”. Mathematical Gazette 62 (420): 109–14. doi:10.1017/S0025557200086460. ^ a b Hagen, Roland; Roch, Steffen; Silbermann, Bernd (2001). “Section 2.1.2”. C*-algebras and Numerical Analysis . CRC Press ^ Tian, Yongge. "Matrix Theory over the Complex Quaternion Algebra". arXiv:math/0004005 。 ^ Pearl, Martin H. (1968-10-01). “Generalized inverses of matrices with entries taken from an arbitrary field” (英語). Linear Algebra and Its Applications 1 (4): 571–587. doi:10.1016/0024-3795(68)90028-1. ISSN 0024-3795. https://doi.org/10.1016%2F0024-3795%2868%2990028-1 .
参考文献 伊理正夫 『線形代数汎諭』朝倉書店 〈基礎数理講座〉、2009年。ISBN 978-4-254-11778-3。 室田一雄、杉原正顯 『線形代数II』丸善出版 〈東京大学工学教程基礎系数学〉、2013年。ISBN 978-4-621-08714-5。 Ben-Israel, Adi; Greville, Thomas N.E. (2003). Generalized inverses: Theory and applications (2nd ed.). New York, NY: Springer. doi:10.1007/b97366. ISBN 978-0-387-00293-4 Campbell, S. L.; Meyer, Jr., C. D. (1991). Generalized Inverses of Linear Transformations . Dover. ISBN 978-0-486-66693-8. https://archive.org/details/generalizedinver0000camp Nakamura, Yoshihiko (1991). Advanced Robotics: Redundancy and Optimization . Addison-Wesley. ISBN 978-0201151985 Rao, C. Radhakrishna; Mitra, Sujit Kumar (1971). Generalized Inverse of Matrices and its Applications . New York: John Wiley & Sons. p. 240. ISBN 978-0-471-70821-6. https://archive.org/details/generalizedinver0000raoc
外部リンク Pseudoinverse - PlanetMath .(英語) Interactive program & tutorial of Moore–Penrose Pseudoinverse Moore–Penrose generalized inverse - PlanetMath .(英語) Weisstein, Eric W. "Pseudoinverse". mathworld.wolfram.com (英語). Weisstein, Eric W. "Moore–Penrose Inverse". mathworld.wolfram.com (英語). The Moore–Penrose Pseudoinverse. A Tutorial Review of the Theory Online Moore-Penrose Inverse calculator