Mathc matrices/Fichiers c : mul tran

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


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

Crystal Clear mimetype source c.png mul_tran.c
'
/* ------------------------------------ */
/*  Save as :   mul_tran.c               */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r,int rc)
{
double **A    = r_mR(i_mR(r,rc),99);
double **A_t  =      i_mR(rc,r);
double **AA_t =      i_mR(r, r);

  clrscrn();

  printf(" A[R%d,C%d] : \n",rsize_mR(A),csize_mR(A));
  p_mR(A,4,0,C6);

  printf(" A_t[R%d,C%d] : \n",rsize_mR(A_t),csize_mR(A_t));
  p_mR(transpose_mR(A,A_t),4,0,C6);

  printf(" AA_t[R%d,C%d] : \n",rsize_mR(AA_t),csize_mR(AA_t));
  p_mR(mul_mR(A,A_t,AA_t),6,0,C6);
  
  f_mR(A);
  f_mR(A_t);
  f_mR(AA_t);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
   do 
         fun(rp_I(R6),rp_I(RC6));
        
    while(stop_w());
        
  return 0;
}


Ici nous travaillons avec la fonction transpose_mR().

Si nous multiplions une matrice par sa transposé, l'opération est toujours possible et cela donne une matrice symétrique.


Exemple de sortie écran :

 A[R3,C4] : 

  -7  +30  -29   -7 
 -35  -77  +42  +26 
 -47  -37  -41  +16 

 A_t[R4,C3] : 

  -7  -35  -47 
 +30  -77  -37 
 -29  +42  -41 
  -7  +26  +16 

 AA_t[R3,C3] : 

 +1839  -3465   +296 
 -3465  +9594  +3188 
  +296  +3188  +5515 


 Press return to continue
 Press X      to stop