Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

fixed.qlessQR

説明

R = fixed.qlessQR(A) は、QR 分解 A = Q*R の上三角因子 R を返します。

これは以下を計算することと等価です。

[~,R] = qr(A)

R = fixed.qlessQR(A, forgettingFactor) は、QR 分解の上三角因子 R を返し、A の各行の処理前に RforgettingFactor で乗算します。

すべて折りたたむ

この例では、前進代入と後退代入を使用して方程式系 (AA)x=B を解く方法を示します。

入力変数 A および B を指定します。

rng default;
A = gallery('randsvd', [5,3], 1000);
b = [1; 1; 1; 1; 1];

A の上三角因子 R を計算します。ここで、A=QR です。

R = fixed.qlessQR(A);

前進代入と後退代入を使用して X の値を計算します。

X = fixed.forwardSubstitute(R,b);
X(:) = fixed.backwardSubstitute(R,X)
X = 5×1
105 ×

   -0.9088
    2.7123
   -0.8958
         0
         0

この解は関数 fixed.qlessQRMatrixSolve を使用した場合と等価です。

x = fixed.qlessQRMatrixSolve(A,b) 
x = 5×1
105 ×

   -0.9088
    2.7123
   -0.8958
         0
         0

関数 fixed.qlessQR で忘却係数を使用することは、Complex および Real Partial-Systolic Q-less QR with Forgetting Factor ブロックとほぼ等価です。これらのブロックは、入力行列を 1 行ずつ処理し、各行の処理前に忘却係数を適用します。関数 fixed.qlessQR は A の行を一度にすべて受け取りますが、これらのブロックと同じ方法で計算を実行します。各行の処理前に忘却係数が適用されます。

忘却係数の指定は、データを無制限に累積することなく不定数の行を連続的にストリーミングする場合に役立ちます (センサー アレイから値を連続的に読み取る場合など)。

忘却係数を使用しない場合、累積は行数の平方根になるため、10000 行は 10000=100 に累積されます。

A = ones(10000,3);
R = fixed.qlessQR(A)
R = 3×3

  100.0000  100.0000  100.0000
         0    0.0000    0.0000
         0         0    0.0000

有効な高さ m=16 行で累積するには、忘却係数を以下に設定します。

m=16;
forgettingFactor = exp(-1/(2*m))
forgettingFactor = 0.9692

この忘却係数を使用すると、fixed.qlessQR は 16 のおおよその平方根に累積します。

R = fixed.qlessQR(A,forgettingFactor)
R = 3×3

    3.9377    3.9377    3.9377
         0    0.0000    0.0000
         0         0    0.0000

入力引数

すべて折りたたむ

入力行列。行列として指定します。

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

忘却係数。0 ~ 1 の非負のスカラーとして指定します。忘却係数によって、過去のデータに指定される重みが決まります。forgettingFactor の値は、A の各行の処理前に R に乗算されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

出力引数

すべて折りたたむ

上三角因子。A = Q*R を満たす行列として返されます。

拡張機能

バージョン履歴

R2020b で導入