Aller au contenu

Mathc complexes/Fichiers c : mul rot

Un livre de Wikilivres.

Application

Installer et compiler ce fichier dans votre répertoire de travail.

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r,int rc)
{
double **A    =         r_mZ(       i_mZ(r,rc),99);
double **A_T  = transpose_mZ(A,     i_mZ(rc,r));
double **AA_T =       mul_mZ(A,A_T, i_mZ(r, r));

  clrscrn();

  printf(" A[R%d,C%d] : \n",rsize_Z(A),csize_Z(A));
  p_mZ(A, S4,P0, S4,P0, C4);

  printf(" A_T[R%d,C%d] : Transpose\n",
           rsize_Z(A_T),csize_Z(A_T));
  p_mZ(A_T, S4,P0, S4,P0, C4);

  printf(" AA_T[R%d,C%d] : \n",rsize_Z(AA_T),csize_Z(AA_T));
  p_mZ(AA_T, S7,P0, S7,P0, C4);
  
  f_mZ(A);
  f_mZ(A_T);
  f_mZ(AA_T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
   do 
         fun(rp_I(R4),rp_I(RC4));
        
    while(stop_w());
        
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */


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[R4,C1] : 

 -59 -40i 
 -85 +37i 
 -73 -67i 
  -5 -68i 

 A_T[R1,C4] : Transpose

 -59 -40i  -85 +37i  -73 -67i   -5 -68i 

 AA_T[R4,C4] : 

  +1881  +4720i   +6495  +1217i   +1627  +6873i   -2425  +4212i 
  +6495  +1217i   +5856  -6290i   +8684  +2994i   +2941  +5595i 
  +1627  +6873i   +8684  +2994i    +840  +9782i   -4191  +5299i 
  -2425  +4212i   +2941  +5595i   -4191  +5299i   -4599   +680i 


 Press   return to continue
 Press X return to stop