Mathc matrices/a247

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 u_T[R1*C3] = {    4,   2,   5};                                             
double v_T[R1*C3] = {    3,   4,   1};
double w_T[R1*C3] = {    5,   1,   3};

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 **W_T = ca_A_mR(w_T , i_mR(R1, C3));
 
double **VxU_T           = i_mR(R1, C3);
double **WxU_T           = i_mR(R1, C3);
double **VxU_T_pls_WxU_T = i_mR(R1, C3);

double **V_plus_W_T      = add_mR(V_T,W_T,i_mR(R1, C3));
double **VplusW_xU_T     =                i_mR(R1, C3);

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

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

// (w x u)  
  c_r_mR(W_T, R1, A, R2);
  c_r_mR(U_T, R1, A, R3);
  
  c_s_mR(cofactor_R(A, R1, C1), WxU_T, R1, C1);
  c_s_mR(cofactor_R(A, R1, C2), WxU_T, R1, C2);
  c_s_mR(cofactor_R(A, R1, C3), WxU_T, R1, C3);

// (vxu) + (wxu)
  add_mR(VxU_T,WxU_T,VxU_T_pls_WxU_T);

// (v+w) x u    
  c_r_mR(V_plus_W_T, R1, A, R2);
  c_r_mR(U_T       , R1, A, R3);
  
  c_s_mR(cofactor_R(A, R1, C1), VplusW_xU_T, R1, C1);
  c_s_mR(cofactor_R(A, R1, C2), VplusW_xU_T, R1, C2);
  c_s_mR(cofactor_R(A, R1, C3), VplusW_xU_T, R1, C3);
    
  clrscrn();       
  printf("  u_T  :");
  p_mR(U_T, S4, P0, C6);
  printf("  v_T  :");
  p_mR(V_T, S4, P0, C6);
  printf("  w_T  :");
  p_mR(W_T, S4, P0, C6);

  printf("\n\n"
         "    (v+w) x u == (vxu) + (wxu) \n\n"  
         "    (v+w) x u :");    
  p_mR(VplusW_xU_T, S5, P0, C6);                       
  printf("    (vxu) + (wxu) :");
  p_mR(VxU_T_pls_WxU_T, S5, P0, C6);
  
  stop();
  
  f_mR(U_T); 
  f_mR(V_T);
  f_mR(W_T);  

  f_mR(VxU_T); 
  f_mR(WxU_T);
  f_mR(VxU_T_pls_WxU_T); 

  f_mR(V_plus_W_T);
  f_mR(VplusW_xU_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 :
 --------------------
  u_T  :
  +4   +2   +5 

  v_T  :
  +3   +4   +1 

  w_T  :
  +5   +1   +3 



    (v+w) x u == (vxu) + (wxu) 

    (v+w) x u :
  +17   -24    -4 

    (vxu) + (wxu) :
  +17   -24    -4 

 Press return to continue.