QRDecomposition
数値行列 m についてQR分解を作成する.この結果はリスト{q,r}で,q はユニタリ行列,そして r は上三角行列となる.
詳細とオプション
- もとの行列 m はConjugateTranspose[q].r と同値である. »
- 非正方行列に関しては,q は行直交行列である. »
- 行列 r は,主対角より下のすべての要素がゼロとなる. »
- TargetStructure->"Structured"の設定のとき,QRDecomposition[m]は行列{q,r}を構造化行列として返す.
- QRDecomposition[m,Pivoting->True]は,リスト{q,r,p}を作成する.p は m.p が ConjugateTranspose[q].r と等しくなるような置換行列である. »
例題
すべて開くすべて閉じる例 (3)
スコープ (11)
基本的な用法 (7)
QRDecompositionを厳密行列に使う:
QRDecompositionを記号行列に使う:
特殊行列 (4)
オプション (4)
Pivoting (1)
QRDecompositionはm.p==ConjugateTranspose[q].rを満足する:
TargetStructure (3)
TargetStructure->"Dense"のとき,QRDecompositionの結果は2つの密な行列のリストになる:
TargetStructure->"Structured"のとき,QRDecompositionの結果はOrthogonalMatrixとUpperTriangularMatrixを含むリストになる:
Pivoting->TrueおよびTargetStructure->"Structured"の設定のとき,QRDecompositionの結果は.OrthogonalMatrix,UpperTriangularMatrix,PermutationMatrixを含むリストになる:
TargetStructure->"Dense"のとき,QRDecompositionの結果は2つの密な行列になる:
TargetStructure->"Structured"のとき,QRDecompositionの結果はUnitaryMatrixとUpperTriangularMatrixを含むリストになる:
アプリケーション (8)
QR分解の幾何学 (4)
次の行列 の列空間の直交基底を求め,その基底を使って のQR分解を求める:
を の 番目の列とし,を対応するグラム・シュミット(Gram–Schmidt)基底の 番目の要素として定義する:
これはQRDecompositionが与える結果に等しい:
次の行列 について,OrthogonalizeとQRDecompositionを使って求まったQR分解を比較する:
はOrthogonalizeを の列に適用した結果とする:
これはQRDecompositionが与える結果に等しい:
次の行列 について,OrthogonalizeとQRDecompositionを使って求まったQR分解を比較する:
はOrthogonalizeを の複素共役列に適用した結果とする:
これは,QRDecompositionが与える結果と符号まで等しい:
アプリケーションによっては, が正方(かつユニタリ)行列で が入力行列と同じ次元である,いわゆる完全QR分解を計算すると便利なことがある.次の行列 の完全QR分解を計算する:
線形独立の列は2列しかないので, と はそれぞれ2行しか持たない:
NullSpaceを使って の列のスパンの外にあるベクトルを求め,完全集合を直交化する:
最小二乗と曲線のフィット (4)
次の行列 とベクトル について,QR分解を使ってを最小にする を求める:
は( の列が線形独立であるために)可逆なので,解は である:
LeastSquaresを使って結果を確認する:
のQR分解を計算すると, に線形独立の行があるので可逆な が与えられる:
QRDecompositionを使ってデータに最もフィットする曲線が求められる.次のデータについて考える:
を最小化することが曲線 をフィットすることになるように, が列 と を持つとする:
の列は線形独立なので,線形最小二乗フィットの係数は である:
Fitを使って係数を確認する:
の最小化が へのフィットになるように. が列 ,,を持つとする:
Fitを使って係数を確認する:
特性と関係 (10)
mはConjugateTranspose[q].r に等しい:
が 行列なら, 行列には 列, 行列には 列あることになる:
QRDecompositionは と がMatrixRank[m]行を持つ「薄い」分解を計算する:
m が実数値を持つ可逆行列なら,そのQR分解の 行列は直交行列である:
m が可逆行列なら.そのQR分解の 行列はユニタリ行列である:
a が 行列で MatrixRank[a]==n なら,そのQR分解の 行列はユニタリ行列である:
a が 行列でMatrixRank[a]==m なら,そのQR分解の 行列は可逆行列である:
さらに,PseudoInverse[a]==Inverse[r].q でもある:
Orthogonalizeを使ってQR分解が計算できる:
近似行列は,通常は,QRDecompositionで求まったものとは異なる:
LeastSquaresとQRDecompositionはどちらも最小二乗問題を解くために使うことができる:
のコレスキー(Cholesky)分解は QR分解と位相まで一致する:
CholeskyDecomposition[ConjugateTranspose[m].]m を計算する:
テキスト
Wolfram Research (1991), QRDecomposition, Wolfram言語関数, https://reference.wolfram.com/language/ref/QRDecomposition.html (2024年に更新).
CMS
Wolfram Language. 1991. "QRDecomposition." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/QRDecomposition.html.
APA
Wolfram Language. (1991). QRDecomposition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/QRDecomposition.html