Mathc complexes/a218

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);
  
  UxV_mZ(U_T,V_T,UxV_T);
    
  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(dotuv_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 -1i   -3 +3i   +3 +5i 

  v_t  :
  +6 -7i   +9 +4i   +8 +8i 

  uxv_t :
 -55-57i +101+73i  -62-76i 

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

 Press   return to continue
 Press X return to stop