Aller au contenu

Mathc matrices/c05n

Un livre de Wikilivres.


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