Aller au contenu

Mathc matrices/03m

Un livre de Wikilivres.


Application

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

c00a.c
/* ------------------------------------ */
/*  Save as:   c00a.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r,int rc)
{
double **A   =         r_mR(      i_mR(r,rc),99);
double **At  = transpose_mR(A,    i_mR(rc,r));
double **AAt =       mul_mR(A,At, i_mR(r, r));

  clrscrn();

  printf(" A[R%d,C%d]: \n",rsize_R(A),csize_R(A));
  p_mR(A, S4,P0, C4);

  printf(" At[R%d,C%d]: Transpose\n",
           rsize_R(At),csize_R(At));
  p_mR(At, S4,P0, C4);

  printf(" AAt[R%d,C%d]: \n",rsize_R(AAt),csize_R(AAt));
  p_mR(AAt, S7,P0, C4);
  
  f_mR(A);
  f_mR(At);
  f_mR(AAt);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
   do 
         fun(rp_I(R4),rp_I(RC4));
        
    while(stop_w());
        
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Multiplier A par sa transposée donne une matrice symétrique

Exemple de sortie écran :

 A[R4,C3]: 

 -27  -36  +44 
 +58  -43  +80 
 +64  -87  +25 
 +33  -28  +37 

 At[R3,C4]: Transpose

 -27  +58  +64  +33 
 -36  -43  -87  -28 
 +44  +80  +25  +37 

 AAt[R4,C4]: 

  +3961   +3502   +2504   +1745 
  +3502  +11613   +9453   +6078 
  +2504   +9453  +12290   +5473 
  +1745   +6078   +5473   +3242 


 Press   return to continue
 Press X return to stop