Mathc matrices/a249

Un livre de Wikilivres.



Application


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


c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(void)
{ 
double s = 5;

double u_T[R1*C3] = {    4,   2,   5};                                             
double v_T[R1*C3] = {    3,   4,   1};

double **U_T = ca_A_mR(u_T , i_mR(R1, C3));
double **V_T = ca_A_mR(v_T , i_mR(R1, C3));

double **sU_T = smul_mR(s,U_T,i_mR(R1, C3));  
double **sV_T = smul_mR(s,V_T,i_mR(R1, C3)); 
 
double **UxV_T   = i_mR(R1, C3);
double **s_UxV_T = i_mR(R1, C3);

double **sUxV_T = i_mR(R1, C3);
double **UxsV_T = i_mR(R1, C3);

double **A = rp_mR(i_mR(R3, C3), 1);

// s (u x v) 
  c_r_mR(U_T, R1, A, R2);
  c_r_mR(V_T, R1, A, R3);
  
  c_s_mR(cofactor_R(A, R1, C1), UxV_T, R1, C1);
  c_s_mR(cofactor_R(A, R1, C2), UxV_T, R1, C2);
  c_s_mR(cofactor_R(A, R1, C3), UxV_T, R1, C3);
  
  smul_mR(s,UxV_T,s_UxV_T);

// (su x v) 
  c_r_mR(sU_T, R1, A, R2);
  c_r_mR(V_T, R1, A, R3);
  
  c_s_mR(cofactor_R(A, R1, C1), sUxV_T, R1, C1);
  c_s_mR(cofactor_R(A, R1, C2), sUxV_T, R1, C2);
  c_s_mR(cofactor_R(A, R1, C3), sUxV_T, R1, C3);

// (u x sv) 
  c_r_mR(U_T, R1, A, R2);
  c_r_mR(sV_T, R1, A, R3);
  
  c_s_mR(cofactor_R(A, R1, C1), UxsV_T, R1, C1);
  c_s_mR(cofactor_R(A, R1, C2), UxsV_T, R1, C2);
  c_s_mR(cofactor_R(A, R1, C3), UxsV_T, R1, C3);
    
  clrscrn();
  printf("  s = %+.0f\n\n",s);         
  printf("  u_T :");
  p_mR(U_T, S4, P0, C6);
  printf("  v_T :");
  p_mR(V_T, S4, P0, C6);

  printf("\n"
         "                  s (uxv) == su x v == u x sv\n\n"
         "  s (uxv) :" );     
  p_mR(s_UxV_T, S5, P0, C6);

  printf("  su x v :" );    
  p_mR(sUxV_T, S5, P0, C6);
  
  printf("  u x sv :" );    
  p_mR(UxsV_T, S5, P0, C6);
  
  stop();
  
  f_mR(U_T); 
  f_mR(V_T); 
  
  f_mR(sU_T); 
  f_mR(sV_T); 
  
  f_mR(UxV_T); 
  f_mR(s_UxV_T);

  f_mR(sUxV_T); 
  f_mR(UxsV_T);
     
  f_mR(A); 
}
/* ------------------------------------ */
int main(void)
{
  fun();

  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 :
 --------------------
  s = +5

  u_T :
  +4   +2   +5 

  v_T :
  +3   +4   +1 


                  s (uxv) == su x v == u x sv

  s (uxv) :
  -90   +55   +50 

  su x v :
  -90   +55   +50 

  u x sv :
  -90   +55   +50 

 Press return to continue.