Mathc matrices/c05n
Produit scalaire canonique dans Rn
Installer et compiler ces fichiers dans votre répertoire de travail.
c05n.c |
---|
/* ------------------------------------ */
/* Save as : c05n.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r,int rn)
{
double **A = r_mR(i_mR(r+rn,r),9.);
double **Q = i_mR(r+rn,r);
double **R = i_mR(r,r);
clrscrn();
printf(" A :");
p_mR(A,S3,P3,C6);
QR_mR(A,Q,R);
printf(" Q :");
p_mR(Q,S3,P5,C6);
printf(" R :");
p_mR(R,S10,P5,C6);
stop();
clrscrn();
printf(" A :");
p_mR(A,S3,P3,C6);
printf(" A = Q * R :");
mul_mR(Q,R, A);
p_mR(A,S3,P3,C6);
f_mR(A);
f_mR(Q);
f_mR(R);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R2)+R2,rp_I(R3));
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Le travail précédent nous conduit à la factorisation QR : QR_mR(A,Q,R); Exemple de sortie écran :
-----------------------------
A :
-7.000 +2.000 -6.000
-9.000 +1.000 +8.000
-8.000 -7.000 +4.000
+9.000 +4.000 +3.000
Q :
-0.42212 +0.51751 -0.56036
-0.54272 +0.44887 +0.69441
-0.48242 -0.68784 +0.17652
+0.54272 +0.23997 +0.41549
R :
+16.58312 +4.16086 -2.11058
-0.00000 +7.25860 -1.54550
-0.00000 +0.00000 +10.87000
Press return to continue.
-----------------------------
A :
-7.000 +2.000 -6.000
-9.000 +1.000 +8.000
-8.000 -7.000 +4.000
+9.000 +4.000 +3.000
A = Q * R :
-7.000 +2.000 -6.000
-9.000 +1.000 +8.000
-8.000 -7.000 +4.000
+9.000 +4.000 +3.000
Press return to continue
Press X return to stop