Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

orth

行列の範囲の正規直交基底

説明

Q = orth(A) は、A範囲の正規直交基底を返します。Q の列はベクトルであり、A の範囲に広がります。Q の列数は Aランクと等しくなります。

すべて折りたたむ

フル ランク行列の範囲の正規直交基底ベクトルを計算して検証します。

行列を定義し、ランクを求めます。

A = [1 0 1;-1 -2 0; 0 1 -1];
r = rank(A)
r = 3

A はフル ランクの正方行列であるため、orth(A) によって計算される正規直交基底は特異値分解 [U,S] = svd(A,'econ') で計算される行列 U と一致します。これは、A の特異値がすべて非ゼロであるためです。

orth を使用して A の範囲の正規直交基底を計算します。

Q = orth(A)
Q = 3×3

   -0.1200   -0.8097    0.5744
    0.9018    0.1531    0.4042
   -0.4153    0.5665    0.7118

Q の列数は rank(A) と等しくなります。A はフル ランクであるため、QA のサイズは同じです。

基底 Q が直交し、妥当な誤差範囲内に正規化されていることを検証します。

E = norm(eye(r)-Q'*Q,'fro')
E = 9.4147e-16

誤差は eps と同程度です。

ランク落ち行列の範囲の正規直交基底ベクトルを計算して検証します。

特異行列を定義し、ランクを求めます。

A = [1 0 1; 0 1 0; 1 0 1];
r = rank(A)
r = 2

A はランク落ちであるため、orth(A) によって計算される正規直交基底は特異値分解 [U,S] = svd(A,'econ') で計算される行列 U の最初の r = 2 列のみと一致します。A の特異値がすべて非ゼロ "でない" のはこのためです。

orth を使用して A の範囲の正規直交基底を計算します。

Q = orth(A)
Q = 3×2

   -0.7071   -0.0000
         0    1.0000
   -0.7071    0.0000

A はランク落ちであるため、Q に含まれる列は A より 1 つ少なくなります。

入力引数

すべて折りたたむ

入力行列。

データ型: single | double
複素数のサポート: あり

詳細

すべて折りたたむ

範囲

行列 A の列空間または "範囲" は、A の列のすべての線形結合の集合です。線形方程式 A*x = b の解となるベクトル b は、A の列の線形結合として記述することもできるため、必ず A の範囲に含まれます。

ランク

行列の rank は範囲の次元と等しくなります。

アルゴリズム

orth は、特異値分解 [U,S] = svd(A,'econ')U から求められます。r = rank(A) の場合、U の最初の r 列は A の範囲の正規直交基底を構成します。

拡張機能

参考

| |

R2006a より前に導入