Mathc complexes/Fichiers c : mul diag

Un livre de Wikilivres.

Application

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

mul_diag.c
/* ------------------------------------ */
/*  Save as :   mul_diag.c              */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int rc)
{
double **A  = rdiag_mZ(i_mZ(rc,rc),9);
double **B  = rdiag_mZ(i_mZ(rc,rc),9);
double **AB =          i_mZ(rc,rc);

  clrscrn();

  printf(" A : ");
  p_mZ(A, S5,P0, S4,P0,C6);

  printf(" B : ");
  p_mZ(B, S5,P0, S4,P0,C6);

  printf(" AB : ");
  p_mZ(mul_mZ(A,B,AB), S5,P0, S4,P0,C6);
  
  f_mZ(A);
  f_mZ(B);
  f_mZ(AB);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

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


Si nous multiplions deux matrices diagonales, nous obtenons une matrice diagonale.


Exemple de sortie écran :

  A : 
   -7  -5i    +0  +0i    +0  +0i 
   +0  +0i    +2  -1i    +0  +0i 
   +0  +0i    +0  +0i    -9  -5i 

 B : 
   -9  -1i    +0  +0i    +0  +0i 
   +0  +0i    -3  -7i    +0  +0i 
   +0  +0i    +0  +0i    -1  -3i 

 AB : 
  +58 +52i    +0  +0i    +0  +0i 
   +0  +0i   -13 -11i    +0  +0i 
   +0  +0i    +0  +0i    -6 +32i 


 Press return to continue
 Press X      to stop