Application

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(void)
{ 
double **U_T =    r_mZ(i_mZ(R1, C3), 9);  
double **V_T =    r_mZ(i_mZ(R1, C3), 9);  
double **W_T =    r_mZ(i_mZ(R1, C3), 9); 

double **UxV_T = i_mZ(R1, C3);
double **UxV   = i_mZ(R3, C1); 

double **A = m1_mZ(i_mZ(R3, C3));

double **W = transpose_mZ(W_T,  i_mZ(R3 , C1));

  c_r_mZ(W_T, R1, A, R1);
  c_r_mZ(U_T, R1, A, R2);
  c_r_mZ(V_T, R1, A, R3);
  
// cofactor(A) -> (u x v)   
  c_z_mZ(cofactor_Z(A, R1, C1),       UxV_T, R1, C1);
  c_z_mZ(cofactor_Z(A, R1, C2*C2-C1), UxV_T, R1, C2);
  c_z_mZ(cofactor_Z(A, R1, C3*C2-C1), UxV_T, R1, C3);
//                          c*C2    : a number has two columns                              
//                              -C1 : The real part of the number
  
  ctranspose_mZ(UxV_T, UxV);
      
  clrscrn();       
  printf("  u_t  :");
  p_mZ(U_T, S4, P0, S3, P0, C6);
  printf("  v_t  :");
  p_mZ(V_T, S4, P0, S3, P0, C6);
  printf("  w_t  :");
  p_mZ(W_T, S4, P0, S3, P0, C6);
  printf("  uxv_t :");
  p_mZ(UxV_T, S4, P0, S3, P0, C6);
  
  printf(" w.(u x v) == "); p_Z(dot_Z(W, UxV),S3,P0, S3,P0); printf("\n");                  
  printf(" det(A)    == "); p_Z(det_Z(A),S3,P0, S3,P0); printf("\n"); 
                    
  f_mZ(U_T); 
  f_mZ(V_T);
  f_mZ(UxV_T);
      
  f_mZ(UxV);   

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

  srand(time(&t));
  
do
{  
  fun();

} while(stop_w());

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


Les vecteurs en mathématiques sont supposés être des vecteurs colonnes, c'est pour cela que j'utilise _T pour afficher des vecteurs lignes.


Exemple de sortie écran :

  u_t  :
  +5 -9i   +6 +3i   -9 -3i 

  v_t  :
  -7 -7i   +4 +3i   +7 -8i 

  w_t  :
  +6 +6i   -4 +9i   +3 -8i 

  uxv_t :
 +93+12i  +79+187i  +68+42i 

 w.(u x v) == -973+175i 
 det(A)    == -973+175i 

 Press   return to continue
 Press X return to stop