% 射影行列の性質

A = [  1,  0; ...
       2, -1; ...
      -1,  1 ];
A

% 行列 A の射影行列 P を計算
[Q,R,index] = qr(A,0);
n = rank(R);
P = Q(:,1:n)*Q(:,1:n)';

% P^2 = P
fprintf("P\n");
P

fprintf("P^2\n");
P^2

% PA = A
fprintf("AとPA\n");
A
P*A

fprintf("Aの1列目とP*(Aの1列目)\n");
A(:,1)
P*A(:,1)

fprintf("Aの2列目とP*(Aの2列目)\n");
A(:,2)
P*A(:,2)
