Aをm×nの実行列とする
もしm<nならATAに逆行列は存在しない
もしm≧nでATAに逆行列が存在する場合を考える
A+=(ATA)-1ATは擬似逆行列の定義を満たす
このとき,A+A=Iが成り立つ.ただしIは単位行列.
A: m×n, AT: n×m, A+: n×m, ATA: n×n, I: n×n
AとA+のランクはn
Aをm×nの実行列とする
もしm>nならAATに逆行列は存在しない
もしm≦nでAATに逆行列が存在する場合を考える
A+=AT(AAT)-1は擬似逆行列の定義を満たす
このとき,AA+=Iが成り立つ.ただしIは単位行列.
A: m×n, AT: n×m, A+: n×m, AAT: m×m, I: m×m
AとA+のランクはm
Aが正方行列で,Aの逆行列が計算できるなら,A+=A-1である.このとき,上記2つのA+に対して,AA+=A+A=AA-1=A-1A=Iが成り立つ.ただしIは単位行列.
逆行列を求める方法として,Gauss-Jordan法やLU分解による方法,が有名であるが,いずれも,(非特異の)正方行列の逆行列しか計算できない.擬似逆行列を計算する場合は,Aが正方行列でなくても,ATAやAATが正方行列になるため,Gauss-Jordan法やLU分解を適用することができる.特異値分解(SVD)により擬似逆行列を計算する方法もある.
Aをm×n行列とする.m<nのときは0の行をあらかじめ付け加えてm=nとしておく.このときm≧nとなる.
A=UWVTをAに特異値分解をかけた結果とする
ただし,Wは左上に大きな値が配置され,右下に小さな値が配置されていると仮定する
Wの要素のうち,値がしきい値より小さい要素を0に設定した行列をW'とする
W'=diag(w1,w2,...,wk,0,0,...,0)のとき
W''=diag(1/w1,1/w2,...,1/wk,0,0,...,0)と定義する
A+=VW''UTと定義する
A+Aはn×n行列で,左上k×kが単位行列でそれ以外は0
AA+はm×m行列
もしAのランクがnならA+は性質1を満たす
Aのランクがn未満であってもA+は擬似逆行列の定義を満たす
Ax=bを解く問題でx=VW''UTbを計算したとする
もしAのrankがnならxは解の誤差を最小とする値
もしAのrankがn未満ならxは解のうちで解自身のノルム||x||を最小とする値
m×n行列Aがあり,Aが実行列であるとき,Moore-Penroseのn×mの擬似逆行列A+の定義は以下のようになる
AA+A=A
A+AA+=A+
(AA+)T=AA+
(A+A)T=A+A