Application


Installer et compiler ces fichiers dans votre répertoire de travail.


c00i.c
/* ------------------------------------ */
/*  Save as :   c00i.c                  */
/* ------------------------------------ */
#include    "v_a.h"
#include "dot_au.h"
/* ------------------------------------ */
void fun(int r)
{
double **A      =    r_mR(i_mR(r,r),9.);
double **U      =    r_mR(i_mR(r,r),9.);
double **Q      =         i_mR(r,r);
double **R      =         i_mR(r,r);
double **QR     =         i_mR(r,r);

  clrscrn();
  
  printf(" A :");
  p_mR(A,S3,P0,C6);
  
  printf(" U :       r == c");
  p_mR(U,S3,P0,C6);
  stop();
  
  clrscrn();  
  QR_Au_mR(A,U,Q,R);
      
  printf(" Q :");
  p_mR(Q,S10,P4,C6);
  
  printf(" R :");
  p_mR(R,S10,P4,C6);
  stop();
  
  clrscrn();
  printf(" U :");
  p_mR(U,S7,P2,C6);
  
  printf(" U = Q * R  :");  
  mul_mR(Q,R, QR);
  p_mR(QR,S7,P2,C6); 
 
  f_mR(A);
  f_mR(U);
  f_mR(Q);
  f_mR(R);
  f_mR(QR);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(rp_I(R3)+R2);

} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */


Nous calculons la QR décomposion du vecteur u. Avec u un vecteur qui a le même nombre de lignes que de colonnes.


Exemple de sortie écran :
 ------------------------------------ 
 A :
+2.000 -3.000 -3.000 -7.000 
+2.000 -7.000 +4.000 +4.000 
+6.000 -1.000 +4.000 -7.000 
-3.000 +4.000 -3.000 +8.000 

 U :       r == c
-5.000 -7.000 -9.000 -3.000 
+4.000 -3.000 +6.000 -5.000 
+4.000 -9.000 -7.000 -3.000 
-7.000 +6.000 -7.000 -7.000 

 Press return to continue. 



 Q :
-0.07032 -0.12484 +0.33591 -0.18418 
+0.05626 +0.02157 +0.00388 -0.14066 
+0.05626 -0.03306 -0.26297 -0.01346 
-0.09845 -0.03092 +0.09703 -0.07261 

 R :
 +71.09852  -95.43096  +63.41904  +62.51888 
  -0.00000 +109.83138 +107.97587  -27.30334 
  +0.00000   -0.00000  +26.61271  +25.29674 
  -0.00000   +0.00000   +0.00000  +57.06130 

 Press return to continue. 



 U :
-5.000 -7.000 -9.000 -3.000 
+4.000 -3.000 +6.000 -5.000 
+4.000 -9.000 -7.000 -3.000 
-7.000 +6.000 -7.000 -7.000 

 U = Q * R  :
-5.000 -7.000 -9.000 -3.000 
+4.000 -3.000 +6.000 -5.000 
+4.000 -9.000 -7.000 -3.000 
-7.000 +6.000 -7.000 -7.000 


 Press return to continue
 Press X      to stop