Aller au contenu

Mathc matrices/a153

Un livre de Wikilivres.


Adjoint


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


c00d.c
/* ------------------------------------ */
/*  Save as :   c00d.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A                =       r_mR(                   i_mR(r,r),9.);
double **Aadjoint         = adjoint_mR(A,                 i_mR(r,r)   );

double **B                =       r_mR(                   i_mR(r,r),9.);
double **Badjoint         = adjoint_mR(B,                 i_mR(r,r)   );

double **AB               =     mul_mR(A,B,               i_mR(r,r)   );
double **ABadjoint        = adjoint_mR(AB,                i_mR(r,r)   );

double **BadjointAadjoint =     mul_mR(Badjoint,Aadjoint, i_mR(r,r)   );

  clrscrn();
  printf(" A :");
  p_mR(A,S3,P0,C6);
  printf(" B :");
  p_mR(B,S3,P0,C6);
  stop();

  clrscrn();
  printf(" adjoint(A) :");
  p_mR(Aadjoint,S6,P0,C6);
  printf(" adjoint(B) :");
  p_mR(Badjoint,S6,P0,C6);
  stop();
  
  clrscrn();
  printf(" adjoint(AB) :");
  p_mR(ABadjoint,S10,P0,C6);
  printf(" adjoint(B) * adjoint(A) :");
  p_mR(BadjointAadjoint,S10,P0,C6);

  f_mR(A);
  f_mR(Aadjoint); 
  
  f_mR(B);
  f_mR(Badjoint);
  
  f_mR(AB);
  f_mR(ABadjoint);  
  
  f_mR(BadjointAadjoint);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(rp_I(RC4)+C1);

} while(stop_w());

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


adjoint(AB) = adjoint(B) * adjoint(A)


Exemple de sortie écran :
 A :
 +7  -7  -1 
 -7  +7  +6 
 -1  -9  -5 

 B :
 +1  +1  -3 
 +4  -6  -7 
 +6  +2  -1 

 Press return to continue. 


 adjoint(A) :
   +19    -26    -35 
   -41    -36    -35 
   +70    +70     +0 

 adjoint(B) :
   +20     -5    -25 
   -38    +17     -5 
   +44     +4    -10 

 Press return to continue. 


 adjoint(AB) :
     -1165      -2090       -525 
     -1769        +26       +735 
       -28      -1988      -1680 

 adjoint(B) * adjoint(A) :
     -1165      -2090       -525 
     -1769        +26       +735 
       -28      -1988      -1680 


 Press   return to continue
 Press X return to stop