PseudoInverse

PseudoInverse[m]

矩形行列の擬似逆行列を求める.

詳細とオプション

  • PseudoInverseは,記号的行列および数値的行列ともに機能する.
  • 正方行列の場合,PseudoInverseはムーア・ペンローズ(Moore-Penrose)型逆行列を与える.
  • 数値的な行列については,PseudoInverseSingularValueDecompositionに基づく.
  • PseudoInverse[m,Tolerance->t]は,最大の特異値の t 倍より小さい特異値を除去するようを指定する.
  • デフォルト設定のTolerance->Automaticの場合,特異値は10-pの百倍よりも小さい場合は除去される.ただし,p Precision[m]である.
  • 特異点のない正方行列Mについては,擬似逆行列M(-1)は標準的な逆行列と同値である.

例題

すべて開くすべて閉じる

  (5)

可逆行列の擬似逆行列を求める:

擬似逆行列は単なる逆行列である:

特異行列の擬似逆行列を求める:

の行列式は0なので,真の逆行列はない:

擬似逆行列については, かつ である:

しかし,この特定のケースでは も恒等行列ではない:

矩形行列の擬似逆行列を求める:

この特定のケースでは, は恒等行列である:

しかし, はそうではない:

行行列の擬似逆行列を求める:

零行列の擬似逆行列を求める:

スコープ  (10)

基本的な用法  (6)

機械精度行列の擬似逆行列を求める:

複素行列の擬似逆行列:

厳密行列の擬似逆行列:

任意精度行列の擬似逆行列:

記号擬似逆行列を計算する:

大きい機械精度行列の逆行列は効率的である:

特殊行列  (4)

疎な行列の擬似逆行列は通常の行列として返される:

結果をフォーマットする:

構造化行列の擬似逆行列は,可能な場合は別の構造化行列として返される:

これは常に可能な訳ではない:

IdentityMatrix[n]はそれ自身の擬似逆行列である:

IdentityMatrix[{m,n}]の擬似逆行列は転置である:

HilbertMatrixの擬似逆行列を計算する:

オプション  (1)

Tolerance  (1)

m は16×16のヒルベルト(Hilbert)行列である:

特異値の中には,機械精度でデフォルトの許容度以下のものもある:

デフォルトの許容度で擬似逆行列を計算する:

特異値のいくつかが実質的に零とみなされているので,これは本当の逆行列ではない:

許容度なしで逆行列を計算する:

特異値の中に零とされたものはないが,数値誤差のためさらに悪くなっている:

アプリケーション  (8)

方程式の解法  (4)

PseudoInverseを使って次の方程式系を解く:

系を行列形式に書き換える:

一般解は任意のベクトル について で与えられる:

TemplateBox[{i}, CTraditional]はなくなるので,SolveValuesで確認できるように解は一意である:

次の方程式系のすべての解を求める:

まず,係数行列 ,ベクトル変数 ,定数ベクトル を書く:

書換えを確認する:

一般解は任意のベクトル について で与えられる:

解を確認する:

パラメータは3つあるがこの解は線を表す:

これは の零空間が一次元だからである:

したがって,パラメータを設定し直して2つのパラメータを消去することができる:

このパラメータの再設定によってSolveValuesと同じ形の答が与えられる:

の最小フロベニウスノルムの解を求める.ただし, は以下の通りである:

最小ノルム解は である:

のノフロベニウスノルムを計算する:

ベクトルの場合と同じように,一般解は で与えられる.ただし, は任意の行列である:

最小値はすべての TemplateBox[{TemplateBox[{i, j}, RowDefault]}, CTraditional]がゼロのときに発生する.これで が最小ノルム解であることが確認される:

この場合は, の解は存在しない:

のノルムを最小にする近似解は で与えられる:

一般的な最小化と比較する:

より一般的な解は で与えられる:

これらのベクトルのすべてがTemplateBox[{{{m, ., x}, -, b}}, Norm]を最小化する:

には3つのパラメータがあるが,これは線を表す:

これは, の零空間が一次元だからである:

最小二乗と曲線のフィット  (4)

行列 と続くベクトル についてTemplateBox[{{{m, ., x}, -, b}}, Norm]を最小化するベクトル を求める:

一つの解(この場合は一意)が で与えられる:

この結果はLeastSquares[m,b]を使っても求められる:

Minimizeを使って解を確かめる:

行列 とそれに続く行列 について,TemplateBox[{{{m, ., x}, -, b}}, Norm]_Fを最小化する行列 を求める:

一つの解(この場合は一意)が で与えられる:

この結果はLeastSquares[m,b]を使っても求められる:

Minimizeを使って解を確かめる:

PseudoInverseを使ってデータに最もフィットする曲線が求められる.次のデータについて考える:

データから 座標と 座標を抽出する:

にフィットするように,列が の計画行列を構築する:

線形最小二乗フィットのために係数 を得る:

Fitを使って係数を確かめる:

最良フィット曲線をデータとともにプロットする:

次のデータに最もフィットする放物線を求める:

データから 座標と 座標を抽出する:

にフィットするために列が の計画行列を構築する:

最小二乗フィットのために係数 を求める:

Fitを使って係数を確かめる:

最良フィット曲線をデータとともにプロットする:

特性と関係  (14)

正則行列の場合,擬似逆行列は逆行列に等しい:

PseudoInverseは対合である.すなわち

PseudoInverseTransposeと可換である.すなわち(TemplateBox[{m}, Transpose])^((-1))=TemplateBox[{{(, {m, ^, {(, {(, {-, 1}, )}, )}}, )}}, Transpose]

Conjugateとも可換である.すなわち(TemplateBox[{m}, Conjugate])^((-1))=TemplateBox[{{(, {m, ^, {(, {(, {-, 1}, )}, )}}, )}}, Conjugate]

したがってConjugateTransposeとも可換である.すなわち(TemplateBox[{m}, ConjugateTranspose])^((-1))=TemplateBox[{{(, {m, ^, {(, {(, {-, 1}, )}, )}}, )}}, ConjugateTranspose]

PseudoInverseはムーア・ペンローズ方程式を満足する [詳細]:

MatrixRank[m] の列数と等しければ,m^((-1))=TemplateBox[{{(, {TemplateBox[{m}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], ., m}, )}}, Inverse].TemplateBox[{m}, ConjugateTranspose]である:

特に,PseudoInverse[m]m の左逆元である:

MatrixRank[m] の行数と等しければ,m^((-1))=TemplateBox[{m}, ConjugateTranspose].TemplateBox[{{(, {m, ., TemplateBox[{m}, ConjugateTranspose]}, )}}, Inverse]である:

特に,PseudoInverse[m]m の右逆元である:

対角行列 d について,PseudoInverse[d]は非零要素を反転させた転置である:

が特異値分解 m=u.sigma.TemplateBox[{v}, ConjugateTranspose]を持つなら,m^((-1))=v.sigma^((-1)).TemplateBox[{u}, ConjugateTranspose]である:

a 行列でMatrixRank[a]==mなら,QRDecompositionは擬似逆行列を与える:

特に,a^((-1))=TemplateBox[{r}, Inverse].q

正規行列 はその擬似逆行列と可換である:

PseudoInverse[m]TemplateBox[{{{TemplateBox[{{(, m}}, ConjugateTranspose], ., m}, )}, D}, Superscript].TemplateBox[{m}, ConjugateTranspose]として計算できる.ただし, DrazinInverseを意味する:

LeastSquaresPseudoInverseのどちらを使っても最小二乗問題を解くことができる:

は剰余を最小化する最小ノルム を与える:

が剰余を最小にすることを確認する:

NullSpaceに任意のベクトルを に加えると剰余が変らなくなる:

,つまり のときに最小ノルムTemplateBox[{y}, Norm]となる:

ベクトル と空の零空間がある行列 については ArgMin[Norm[m.x-b],x]に等しい:

Wolfram Research (1988), PseudoInverse, Wolfram言語関数, https://reference.wolfram.com/language/ref/PseudoInverse.html (2003年に更新).

テキスト

Wolfram Research (1988), PseudoInverse, Wolfram言語関数, https://reference.wolfram.com/language/ref/PseudoInverse.html (2003年に更新).

CMS

Wolfram Language. 1988. "PseudoInverse." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2003. https://reference.wolfram.com/language/ref/PseudoInverse.html.

APA

Wolfram Language. (1988). PseudoInverse. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/PseudoInverse.html

BibTeX

@misc{reference.wolfram_2024_pseudoinverse, author="Wolfram Research", title="{PseudoInverse}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/PseudoInverse.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_pseudoinverse, organization={Wolfram Research}, title={PseudoInverse}, year={2003}, url={https://reference.wolfram.com/language/ref/PseudoInverse.html}, note=[Accessed: 21-November-2024 ]}