ドキュメンテーション

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

qr

直交三角分解

構文

[Q,R] = qr(A)
[Q,R] = qr(A,0)
[Q,R,E] = qr(A)
[Q,R,E] = qr(A,'matrix')
[Q,R,e] = qr(A,'vector')
[Q,R,e] = qr(A,0)
X = qr(A)
X = qr(A,0)
R = qr(A)
R = qr(A,0)
[C,R] = qr(A,B)
[C,R,E] = qr(A,B)
[C,R,E] = qr(A,B,'matrix')
[C,R,e] = qr(A,B,'vector')
[C,R] = qr(A,B,0)
[C,R,e] = qr(A,B,0)

説明

[Q,R] = qr(A) は、Amn 列とすると、 A = Q*R となるような、mn 列の上三角行列 Rmm 列のユニタリ行列 Q を作成します。

[Q,R] = qr(A,0) は、メモリ消費を抑えた分解を行います。m > n の場合、Q の最初の n 列と R の最初の n 行のみが計算されます。m<=n の場合、これは [Q,R] = qr(A) と同じです。

A が非スパース行列の場合

[Q,R,E] = qr(A) または [Q,R,E] = qr(A,'matrix') は、A*E = Q*R となるようなユニタリ行列 Q、上三角行列 R、置換行列 E を生成します。abs(diag(R)) が降順になるように、列の置換行列 E が選択されます。

[Q,R,e] = qr(A,'vector') は、行列の代わりにベクトルの置換情報を返します。つまり、eA(:,e) = Q*R となる行ベクトルです。

[Q,R,e] = qr(A,0) は、A(:,e) = Q*R となるような置換ベクトル e に、エコノミーサイズの分解を生成します。

X = qr(A)X = qr(A,0) は、triu(X) が上三角要素 R となるような行列 X を返します。

A がスパース行列の場合

R = qr(A) は、Q のない QR 分解を計算し、上三角要素 R を返します。R = chol(A'*A) であることに注意してください。Q は、非スパースに近いことが多いので、これは [Q,R] = QR(A) よりも推奨されます。

R = qr(A,0) は、エコノミーサイズの R を生成します。m>n の場合、Rn 行のみになります。m<=n の場合、これは R = qr(A) と同じです。

[Q,R,E] = qr(A) または [Q,R,E] = qr(A,'matrix') は、A*E = Q*R となるようなユニタリ行列 Q、上三角行列 R、置換行列 E を生成します。列の置換行列 E は、R 内の非ゼロ要素を減らすように選択されます。

[Q,R,e] = qr(A,'vector') は、行列の代わりにベクトルの置換情報を返します。つまり、eA(:,e) = Q*R となる行ベクトルです。

[Q,R,e] = qr(A,0) は、A(:,e) = Q*R となるような置換ベクトル e に、エコノミーサイズの分解を生成します。

[C,R] = qr(A,B) は、BA と同数の行をもつ場合、C = Q'*B を返します。A*X = B の最小二乗解は、X = R\C です。

[C,R,E] = qr(A,B) または [C,R,E] = qr(A,B,'matrix') は、非ゼロ要素を減らす順序も返します。A*X = B の最小二乗解は、X = E*(R\C) です。

[C,R,e] = qr(A,B,'vector') は、行列の代わりにベクトルの置換情報を返します。つまり、A*X = B の最小二乗解は、X(e,:) = R\C です。

[C,R] = qr(A,B,0) は、メモリ消費を抑えた結果を生成します。m>n の場合、CRn 行のみになります。m<=n の場合、これは [C,R] = qr(A,B) と同じです。

[C,R,e] = qr(A,B,0) はさらに、ゼロ要素を減らす置換ベクトル e を生成します。この場合、A*X = B の最小二乗解は X(e,:) = R\C です。

A*x = b の近似最小二乗解は、Q のない QR 分解と反復を絞り込む過程において見つけることができます。

if issparse(A), R = qr(A); 
else R = triu(qr(A)); end
x = R\(R'\(A'*b));
r = b - A*x;
err = R\(R'\(A'*r));
x = x + err;

R2006a より前に導入

この情報は役に立ちましたか?