{Q,R,P} = qr_p(A)
Matrix Q,R,P;
Matrix A;
【詳細】
qr_p()は,行列 A の並べ替え付きQR分解を求める。この分解は,
正方行列にも非正方行列にも行える。
{Q,R,P} = qr_p(A)は,A と同じ大きさの上三角行列 R と直交行列
(ユニタリ行列) Q,置換行列 P を求める。これらの行列の間には,
A * P = Q * R,Q# * Q = I の関係がある。上三角行列 R の対角成分
は,減少する順に並べられる。
【算法】
文献 1 の算法を使う。
【例題】
4 * 3 の行列 A の並べ替え付きQR分解を求める。
>> A = [[1 2 3][4 5 6][7 8 9][10 11 12]];
>> {Q,R} = qr_p(A);
>> print Q,R,P;
=== [Q] : ( 4, 4) ===
( 1) ( 2) ( 3) ( 4)
( 1) -1.825741E-01 -8.164965E-01 3.471390E-01 -4.236678E-01
( 2) -3.651483E-01 -4.082482E-01 -1.470686E-01 8.236326E-01
( 3) -5.477225E-01 -4.996003E-16 -7.472798E-01 -3.762617E-01
( 4) -7.302967E-01 4.082482E-01 5.472094E-01 -2.370309E-02
=== [R] : ( 4, 3) ===
( 1) ( 2) ( 3)
( 1) -1.643167E+01 -1.278019E+01 -1.460593E+01
( 2) 0.000000E+00 1.632993E+00 8.164965E-01
( 3) 0.000000E+00 0.000000E+00 8.400361E-16
( 4) 0.000000E+00 0.000000E+00 0.000000E+00
=== [P] : ( 3, 3) ===
( 1) ( 2) ( 3)
( 1) 0.000000E+00 1.000000E+00 0.000000E+00
( 2) 0.000000E+00 0.000000E+00 1.000000E+00
( 3) 1.000000E+00 0.000000E+00 0.000000E+00
【参照】
【参考文献】
- 1.
- Gene H. Golub and Charles F. Van Loan. Matrix Computations.
The Johns Hopkins University Press, 1989