function X=mc_qr(A,B)

[Q,R,E]=qr(A); %le module décroît sur la diagonale de R
r = sum(abs(diag(R)) > eps*norm(A,'fro')); %rang numérique adapté
C=Q'*B;
X=E*(R(1:r,:)\C(1:r,:));