, , , , . , QR Decomposition. QR- : Q R. :
A = Q*R
Q - , , Q (Q^{T}*Q = I). R - . 1996 : Matrix Computations , R . - R, . , . , , , .
, , , , . , QR :
[Q,R] = qr(A, 0);
Q R - , , A . 0 - Q R, , ( ), , . , 5 x 8, 5 x 8, , 0, 8 x 8.
:
[Q,R,E] = qr(A, 0);
E , , :
A(:,E) = Q*R;
, , , Q R , , , "". , E , , " " . "" R, . , . , , R , , , , .
R, . , . , , , .
, , , , , , A:
%
tol = 1e-10;
%
[Q, R, E] = qr(A,0);
diag_R = abs(diag(R)); %
%
%
%
r = find(diag_R >= tol*diag_R(1), 1, 'last');
%
%
%
%
idx = sort(E(r+1:end));
, E , , , , , . . , :
A =
1 1 2 0
2 2 4 9
3 3 6 7
4 4 8 3
, , . , . , , :
idx =
1 2
E, , :
E =
4 3 2 1
, 4 "" , 3. [1,2] , , 1 2 [1,2,3,4] . 3, 1 2 3.
, !
QR, Echelon form, , A. , , , , . , , rref. rref, , , , . :
[B,RB] = rref(A);
RB , B A. , , , . , 1 , , RB, , , . :
[B,RB] = rref(A);
idx = 1 : size(A,2);
idx(RB) = [];
, :
idx =
2 3
, 2 3 , , 1. QR-, QR- , , . 1 3 , , . .
rref QR-. , rref , QR-, . , QR-, rref , !