< Mathc matrices


Sommaire


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,3,3,6);
  
  QRuv_mR(A,Q,R);
    
  printf(" Q :");
  p_mR(Q,3,5,6);
  
  printf(" R :");
  p_mR(R,10,5,6);
  stop();
  
  clrscrn();
  printf(" A = Q * R  :");  
  mul_mR(Q,R, A);
  p_mR(A,3,3,6);  
  
  f_mR(A);
  f_mR(Q);
  f_mR(R);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(rp_I(2)+R2,rp_I(3));

} while(stop_w());

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


Le travail précédent nous conduit à la factorisation QR : QRuv_mR(A,Q,R);



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

 Q :
+0.40614 -0.60845 +0.49132 
+0.81228 -0.04654 -0.55125 
-0.10153 -0.55846 +0.16779 
+0.40614 +0.56191 +0.65312 

 R :
  +9.84886   -3.35064   -3.85832 
  +0.00000   +5.98107   -6.67570 
  +0.00000   -0.00000  +11.20484 

 Press return to continue.
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.