Aller au contenu

Mathc complexes/a212

Un livre de Wikilivres.

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 **UxV_T = i_mZ(R1, C3);
double **UxV   = i_mZ(R3, C1); 

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

double **U = transpose_mZ(U_T,i_mZ(R3, C1));

  c_r_mZ(U_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("  uxv_t :");
  p_mZ(UxV_T, S4, P0, S3, P0, C6);
  
  printf(" u.(u x v) == "); p_Z(dot_Z(U, 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  :
  +7 -4i   -4 -8i   +1 -4i 

  v_t  :
  -7 +9i   +3 -9i   -1 -8i 

  uxv_t :
 -27+61i  +68+89i -115-95i 

 u.(u x v) ==  +0 +0i 
 det(A)    ==  +0 -0i 

 Press   return to continue
 Press X return to stop