% QR分解

A = [ 2,  1,  1;
     -2, -1,  1;
      4,  2,  3 ];
[Q,R,index] = qr(A,0);

fprintf("行列 QR と A(:,index)\n");
Q*R
A(:,index)

n = rank(R);
P = Q(:,1:n)*Q(:,1:n)';
fprintf("行列 P と PA\n");
P
P*A

[Q,R,index] = qr(A,0);
Qbar = Q(:,1:rank(R));
P = Qbar*Qbar';
fprintf("行列 P と PA\n");
P
P*A
