Matrices anti-symétriques


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


c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A    = rskewsymmetric_mR(   i_mR(r,r), 9);
double **invA =            inv_mR(A, i_mR(r,r));

  clrscrn();
  printf(" If Rn is even det_R(A)>0\n\n"
         " det_R(A)  = %+.4f\n\n\n",det_R(A));
         
  printf(" A ");  
  p_mR(A, S7,P3, C6);
     
  printf(" invA ");
  p_mR(invA, S7,P3, C6); 

  f_mR(A);
  f_mR(invA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(rp_I(R2)*R2);

} while(stop_w());

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


Si le nombre de ligne est paire, le déterminant est positif et on peut calculer l'inverse


Exemple de sortie écran :
 If Rn is even det_R(A)>0

 det_R(A)  = +4900.0000


 A 
 +0.000  +9.000  +5.000  +2.000 
 -9.000  +0.000  -3.000  -8.000 
 -5.000  +3.000  +0.000  +4.000 
 -2.000  +8.000  -4.000  +0.000 

 invA 
 +0.000  -0.057  -0.114  +0.043 
 +0.057  +0.000  -0.029  +0.071 
 +0.114  +0.029  +0.000  -0.129 
 -0.043  -0.071  +0.129  +0.000 


 Press   return to continue
 Press X return to stop