主要内容

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

qr

説明

X= qr (一个は,qr分解A = q * rの上三角因子Rを返します。一个が非スパ,スの場合はR = triu(X)となります。一个がスパ,スの場合はR = xとなります。

R] = qr(一个は,n列の行列一个に対して,A = q * rを満たすようにqr分解を実行します。因子Rn列の上三角行列で,因子列の直交行列です。

RP] = qr(一个はさらに,A* p = q * rを満たす置換行列Pを返します。

___] = qr(一个, 0)は,前述の出力引数の任意の組み合わせを使用して,エコノミ,サ,ズの分解を生成します。出力のサ电子邮箱ズは,n列の行列一个のサ@ @ズに依存します。

  • M > nの場合,qrの最初のn列とRの最初のn列のみを計算します。

  • M <= nの場合,エコノミ,サ,ズの分解は通常の分解と同じになります。

  • エコノミサズの分解を使用して3番目の出力を指定すると,A(:, p) = q * rを満たす置換ベクトルとして返されます。

RP] = qr(一个outputFormは,置換情報Pを行列として返すかベクトルとして返すかを指定します。たとえば,outputForm“向量”の場合はA(:, p) = q * rとなります。outputFormの既定値は“矩阵”で,このときA* p = q * rになります。

CR] = qr(年代Bは,C = q '* bと上三角因子Rを計算します。CRを使用し,X = r \ cとして,スパ,ス線形システムS* x = bの最小二乗解を計算できます。

CRP] = qr(年代Bはさらに,置換行列Pを返します。CRおよびPを使用し,X = p *(r \ c)として,スパ,ス線形システムS* x = bの最小二乗解を計算できます。

___] = qr(年代B, 0)は,前述の出力引数の任意の組み合わせを使用して,エコノミ,サ,ズの分解を生成します。出力のサ电子邮箱ズは,n列のスパ,ス行列年代のサ@ @ズに依存します。

  • M > nの場合,qrCRの最初のn行のみを計算します。

  • M <= nの場合,エコノミ,サ,ズの分解は通常の分解と同じになります。

  • エコノミサズの分解を使用して3番目の出力を指定すると,S* x = bの最小二乗解がX(p,:) = r \ cになる置換ベクトルとして返されます。

CRP] = qr(年代BoutputFormは,置換情報Pを行列として返すかベクトルとして返すかを指定します。たとえば,outputForm“向量”の場合,S* x = bの最小二乗解はX(p,:) = r \ cになります。outputFormの既定値は“矩阵”で,このときS* x = bの最小二乗解はX = p *(r \ c)になります。

すべて折りたたむ

5行5列のパスカル行列のqr分解を求めます。1 .の出力引数を指定して,上三角因子のみを返します。

A = pascal(5);X = qr(A)
X =5×5-2.2361 -6.7082 -15.6525 -31.3050 -56.3489 0.3090 3.1623 11.0680 26.5631 53.1263 0.3090 -0.1744 1.8708 7.4833 19.2428 0.3090 -0.4565 0.3548 0.6325 2.8460 0.3090 -0.7387 -0.0281 -0.7490 -0.1195

Xから上三角因子Rを抽出します。

R = triu(X)
R =5×5-2.2361 -6.7082 -15.6525 -31.3050 -56.3489 0 3.1623 11.0680 26.5631 53.1263 0 0 1.8708 7.4833 19.2428 0 0 0 0 0.6325 2.8460 0 0 0 0 0 0 -0.1195

Q-less QR分解のRを完全なqr分解のR因子と比較します。

[Q1,R1] = qr(A)
Q1 =5×5-0.4472 -0.6325 0.5345 -0.3162 -0.1195 -0.4472 -0.3162 -0.2673 0.6325 0.4781 -0.4472 0.0000 -0.5345 -0.0000 -0.7171 -0.4472 0.3162 -0.2673 -0.6325 0.4781 -0.4472 0.5345 0.3162 -0.1195
R1 =5×5-2.2361 -6.7082 -15.6525 -31.3050 -56.3489 0 3.1623 11.0680 26.5631 53.1263 0 0 1.8708 7.4833 19.2428 0 0 0 0 0.6325 2.8460 0 0 0 0 0 0 -0.1195

2の出力引数を指定して,。

A =魔术(5);[Q,R] = R (A)
Q =5×5-0.5234 0.5058 0.6735 -0.1215 -0.0441 -0.7081 -0.6966 -0.0177 0.0815 -0.0800 -0.1231 0.1367 -0.3558 -0.6307 -0.6646 -0.3079 0.1911 -0.4122 -0.4247 0.7200 -0.3387 0.4514 -0.4996 0.6328 -0.1774
R =5×5-32.4808 -26.6311 -21.3973 -23.7063 -25.8615 0 19.8943 12.3234 1.9439 4.0856 00 -24.3985 -11.6316 -3.7415 000 -20.0982 -9.9739 000 0 -16.0005

マシンの精度内で 一个 QR であることを検証します。

规范(q * R)
Ans = 9.5562e-15

3の出力引数を指定し,qr分解のR因子の非ゼロ要素を減らす置換行列または置換ベクトルを返します。

スパ,ス行列west0479のqr分解を計算します。3 .の出力を指定し, 美联社 QR を満たす置換行列を返します。

负载west0479A = west0479;[Q,R,P] = qr(A);

置換行列Pにいて,マシンの精度内でA* p = q * rであることを検証します。

规范(* p q * R,“摇来摇去”
Ans = 3.5451e-10

次に,“向量”オプションを指定してpを置換ベクトルとして返します。

[Q,R,p] = Q (A, c, c, c, c, c, c, c, c, c, c)“向量”);

置換行列pにいて,マシンの精度内でA(:,p) = Q*Rであることを検証します。

范数(A(:,p) - Q*R,“摇来摇去”
Ans = 3.5451e-10

分解に置換行列または置換ベクトルを使用すると,置換されていない分解に比べて,スパ,ス入力に対するR因子の非ゼロ要素が少なくなります。

[Q1,R1] = qr(A);间谍(R1)

图中包含一个轴。坐标轴包含一个line类型的对象。

间谍(右)

图中包含一个轴。坐标轴包含一个line类型的对象。

この結果は,置換された分解によりR因子の非ゼロ要素が大幅に少なくなることを示しています。

係数行列のエコノミサズqr分解を使用して,線形システム 斧头 b を解きます。

魔法(10)の最初の5列を使用して,10行5列の係数行列を作成します。線形方程式 斧头 b の右辺には,行列の行の和を使用します。この設定では,方程式 x の解は1のベクトルになるはずです。

A =魔术(10);A = A(:,1:5)
一个=10×592 99 18 15 98 80 7 14 16 4 81 88 20 22 85 87 19 21 3 86 93 25 2 9 17 24 76 83 90 23 5 82 89 91 79 6 13 95 97 10 12 94 96 78 11 18 100 77 84
b = sum(A,2)
b =10×1215 215 215 215 215 215 290 290 290 290 290 290 290

一个のエコノミサズのqr分解を計算します。次に,x(p,:) = R\(Q\b)で線形システム QRx b を解きます。は直交行列であるため,この方程式はx(p,:) = R\(Q'*b)と同じになります。

[Q,R,p] = qr(A,0)
Q =10×5-0.0050 -0.4775 -0.0504 0.5193 0.0399 -0.0349 -0.5001 -0.0990 -0.1954 -0.2006 -0.4384 0.1059 -0.4660 0.4464 0.0628 -0.0947 -0.4151 -0.2923 -0.2542 0.5274 -0.1246 -0.4117 -0.2812 -0.1326 -0.4130 -0.3787 0.0209 0.2702 0.4697 0.0390 -0.4085 -0.0017 0.2217 -0.2450 -0.2015 -0.0648 -0.3925 0.6939 0.0669 0.1225 -0.4683 0.0833 0.0283 -0.3038 0.5265 -0.4982 0.0867 0.0394 -0.1822 -0.4138
R =5×5-200.7112 -55.5026 -167.6040 -84.7237 -168.7997 0 -192.1053 -40.3557 -152.4040 -39.2814 00 101.3180 -89.4254 96.0172 00 0 41.0248 -14.9083 00 00 0 24.6386
p =1×53 1 5 2 4
x(p,:) = R\(Q\b)
x =5×11.0000 1.0000 1.0000 1.0000

Rの対角の片対数プロットを作成し,置換された分解によって,abs(诊断接头(R))が減少するr因子が生成されることを確認します。比較のため,同じプロット内に一个の特異値をプロットします。実際には,Rの対角値は一个の特異値と似た振る舞いをします。そのため,Rの対角値は,行列一个がどの程度特異行列に近いかを判断する尺度として使用できます。

semilogy (abs(诊断接头(R)),“o”)举行semilogy计算(一)“r-o”)传说(“R的对角线”A的奇异值

图中包含一个轴。坐标轴包含2个line类型的对象。这些对象代表R的对角线,A的奇异值。

スパ,ス線形システムを解き,その結果から年代の列空間内にあるベクトルbの量を確認します。

10%の密度と1のベクトルを使用して,ランダムな500行20列のスパース行列を作成します。qrを使用して,行列を因子RC = Q'*bに因数分解します。

S = sprand(500,20,0.1);B = ones(500,1);[C,R] = qr(S,b,0);

結果を使用して,x = R\C Sx b を解きます。

x = R\C;

恒等式 b 2 Sx - b 2 + C 2 にいて考えます。

両辺をbのノルムで除算すると,年代の列空間内にあるbの量を示す新しい恒等式が得られます。

Sx - b 2 b 2 + C 2 b 2 1

1番目の項は年代の列空間内に“ない”bの量を示し,2番目の項は年代の列空間内に“ある”bの量を示します。

t1 =范数(S*x-b)²/范数(b)²
T1 = 0.4000
t2 =范数(C)²/范数(b)²
T2 = 0.6000

qrを使用して,行列方程式 Sx B を方形スパ,ス係数行列 年代 で解きます。

スパ,ス行列west0479を読み込み,最初の200列を線形システムの方形係数行列として使用します。方程式の右辺に 年代 の行の和を使用します。この設定では, Sx B の解は1のベクトルになります。

负载west0479S = west0479(:,1:200);B = sum(S,2);

2qrを使用して, Sx B を解きます。線形システムの解はx = P*(R\C)になります。

[C,R,P] = qr(S,B);x = P*(R\C);

マシンの精度内で Sx - B 0 であることを検証します。

规范(S *取向)
Ans = 9.17003 -11

メモ:上三角因子Rと置換行列Pを計算するが,直交行列(多くの場合,qrの呼び出しで最も計算量が多い部分)の計算は行わないというときには,Bを空行列として指定します。

emptyB = 0 (size(S,1),0);[~,R,P] = qr(S,emptyB);

入力引数

すべて折りたたむ

入力行列。非スパ,ス行列またはスパ,ス行列として指定します。

デ,タ型:|
複素数のサポ,ト:あり

入力係数行列。スパ,ス行列として指定します。2 つの入力行列がある場合、qrは線形システムS* x = bの最小二乗解を計算します。

デ,タ型:
複素数のサポ,ト:あり

右辺の行列。非スパ,ス行列またはスパ,ス行列として指定します。2 .の入力行列がある場合,qrC = q '* bを計算します。これを使用して,線形システムS* x = bを解くことができます。

デ,タ型:|
複素数のサポ,ト:あり

置換出力の形状。“矩阵”または“向量”として指定します。このフラグは,置換出力Pが置換行列または置換ベクトルのいずれで返されるかを制御します。このオプションを使用するには,qrに3の出力引数を指定しなければなりません。

  • outputForm“向量”の場合,PA(:, p) = q * rを満たす置換ベクトルです。

  • outputFormの既定値は“矩阵”で,このときA* p = q * rになります。

例:[Q,R,P] = qr(A,'vector')

出力引数

すべて折りたたむ

出力行列。Xの内容は,一个が非スパ,スとスパ,スのど,らであるかによって異なります。

  • 一个が非スパ,スの場合,qr分解の上三角因子はR = triu(X)です(下三角要素はの計算に使用されるデ,タの一部です)。

  • 一个がスパ,スの場合,因子はR = xです。

直交因子。n列の行列一个に対してA = q * rを満たす行列として返されます。

  • 完全な分解の場合,qr (A) H H を満たす列の直交行列として返します。

  • M > nの四角形一个の場合,エコノミ,サ,ズの分解qr (0)は,の最初のn列とRの最初のn行のみを計算します。の列は,一个の列空間の正規直交基底を形成します。

マシンやmatlab®のリリ,スが異なる場合,異なるの列が出力されることがありますが,数値的にはいずれも正確です。Rの対応する行と列で符号が反転する場合がありますが,これは,反転しても式A = q * rの値には影響がないためです。

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

置換情報。行列またはベクトルとして返されます。Pの形状はoutputFormの値に依存します。また,qrは,最初の入力行列が非スパ,スとスパ,スのど,らであるかによっても,選択するPが満たす基準が異なります。

  • 非スパス-qrは,abs(诊断接头(R))が降順になるようにPを選択します。

  • スパス-qrは,R内の非ゼロ要素を減らすようにPを選択します。

線形システムの因子。C = q '* bを満たす行列として返されます。S* x = bの最小二乗解は,X = r \ cです。置換出力Pが指定されている場合,解は,outputFormの値に応じて,X = p *(r \ c)またはX(p,:) = r \ cのどらかになります。

  • outputForm“向量”の場合,S* x = bの最小二乗解は,X(p,:) = r \ cです。

  • outputFormの既定値は“矩阵”で,このときS* x = bの最小二乗解はX = p *(r \ c)になります。

ヒント

  • 同じ係数行列を含む複数の線形システムを解くには,分解オブジェクトを使用します。

  • 構文[C,R] = R (S,B)では,X = r \ cの値は,年代に低ランクの行列がない場合のみS* x = bの最小二乗解になります。

拡張機能

R2006aより前に導入