%Ce script manipule la fonction "mc" de l'exercice 4),
%puis teste les améliorations classiques (cf. la fonction orth.m)

disp(' '), disp('Étude des normes du residu AX-B sur un échantillon :')
A=rand(3,2);     %A aléatoire
B=rand(3,1);     %B aléatoire
X=mc(A,B);         %X qui minimise la norme du résidu
norme_residu=norm(A*X-B)
M=max(abs(X));                 %M : plus grande valeur absolue des coordonnées de X
T=2*M*(2*rand(2,1000)-1);     %1000 vecteurs avec coordonnées entre -2M et 2M
for k=1:1000, N(k)=norm(A*T(:,k)-B); end
norme_minimale_sur_echantillon=min(N)    %norme minimale dans l'échantillon

disp(' '), disp(' '), disp('Amélioration quand A (donc aussi R) est mal conditionnée :')
Abis=[hilb(20);ones(1,20)];
Bbis=rand(21,1);
Xbis=mc(Abis,Bbis);
norme_residu_mc=norm(Abis*Xbis-Bbis)
Xqr=mc_qr(Abis,Bbis);
norme_residu_qr_performant=norm(Abis*Xqr-Bbis)
Xsvd=mc_svd(Abis,Bbis);
norme_residu_svd_performant=norm(Abis*Xsvd-Bbis)