Aller au contenu

Mathc matrices/03n

Un livre de Wikilivres.


Application

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

c00c.c
/* ------------------------------------ */
/*  Save as:   c00c.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int rc)
{
double **A     =         r_mR(    i_mR(rc,rc),9);
double **invA  =       inv_mR(A,  i_mR(rc,rc));
double **At    = transpose_mR(A,  i_mR(rc,rc));
double **invAt =       inv_mR(At, i_mR(rc,rc));
double **IDE   =                  i_mR(rc,rc);

  clrscrn();
  printf(" A: ");
  p_mR(A, S4,P4, C6);
  printf(" invA: ");
  p_mR(invA, S4,P4, C6);
  printf(" A * invA: ");
  p_mR(mul_mR(A,invA,IDE), S4,P4, C6);
  stop();

  clrscrn();
  printf(" At: Transpose");
  p_mR(At, S4,P4, C6);
  printf(" invAt: ");
  p_mR(invAt, S4,P4, C6);
  printf(" At * invAt: ");
  p_mR(mul_mR(At,invAt,IDE), S4,P4, C6); 
  stop();

  clrscrn();
  printf(" invA: ");
  p_mR(invA, S4,P4, C6);
  printf(" invAt: ");
  p_mR(invAt, S4,P4, C6);
      
  f_mR(A);
  f_mR(invA);
  f_mR(At);
  f_mR(invAt);
  f_mR(IDE);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
   do 
         fun(rp_I(RC3)+RC1);
        
    while(stop_w());
        
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
L'inverse de la transposée de A est la transposée de l'inverse de A

Exemple de sortie écran :

 A: 
-1.0000 -4.0000 -5.0000 
+1.0000 -3.0000 +3.0000 
-9.0000 +4.0000 -9.0000 

 invA: 
+0.0872 -0.3256 -0.1570 
-0.1047 -0.2093 -0.0116 
-0.1337 +0.2326 +0.0407 

 A * invA: 
+1.0000 +0.0000 +0.0000 
+0.0000 +1.0000 -0.0000 
+0.0000 +0.0000 +1.0000 

 Press return to continue. 


 At: Transpose
-1.0000 +1.0000 -9.0000 
-4.0000 -3.0000 +4.0000 
-5.0000 +3.0000 -9.0000 

 invAt: 
+0.0872 -0.1047 -0.1337 
-0.3256 -0.2093 +0.2326 
-0.1570 -0.0116 +0.0407 

 At * invAt: 
+1.0000 -0.0000 +0.0000 
-0.0000 +1.0000 -0.0000 
+0.0000 -0.0000 +1.0000 

 Press return to continue. 


 invA: 
+0.0872 -0.3256 -0.1570 
-0.1047 -0.2093 -0.0116 
-0.1337 +0.2326 +0.0407 

 invAt: 
+0.0872 -0.1047 -0.1337 
-0.3256 -0.2093 +0.2326 
-0.1570 -0.0116 +0.0407 


 Press   return to continue
 Press X return to stop