Mathc matrices/c21l

Un livre de Wikilivres.


Application


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


c00b.c
/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "v_a.h"

/* ------------------------------------ */
void fun(int r, int c, int bc)
{
double **A  = i_mR(r,c);
double **b  = i_mR(r,bc);
double **Ab = r_mR(i_Abr_Ac_bc_mR(r,c,bc),99.);        
                        
  clrscrn();
  printf(" Ab :                            Ab[R%d][C%d]   \n",
                            rsize_R(Ab), 
                            csize_R(Ab));
  p_mR(Ab,S5,P0,C12);
  stop();
  
  clrscrn();    
  printf(" A : c_Ab_A_mR(Ab,A);             A[R%d][C%d] \n",
                            rsize_R(Ab), 
                            csize_A_R(Ab));
  p_mR(c_Ab_A_mR(Ab,A),S5,P0,C12);
  stop();
  
  clrscrn();  
  printf(" b : c_Ab_b_mR(Ab,b);             b[R%d][C%d]  \n",
                            rsize_R(Ab), 
                            csize_R(Ab)-csize_A_R(Ab));
  p_mR(c_Ab_b_mR(Ab,b),S5,P0,C12);
        
  f_mR(Ab);
  f_mR(b);
  f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(rp_I(R4)+R1, rp_I(R3)+R2, rp_I(R3)+R1);


} while(stop_w());

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


Copier A de Ab dans A
Copier b de Ab dans b:
//La matrice Ab doit être initialiser avec la fonction :

double **Ab = i_Abr_Ac_bc_mR( RAb, CA, Cb); 

//Cette fonction installe la bonne taille pour les matrices Ab, A, b.


Exemple de sortie écran :
 --------------------------------------
 Ab :                            Ab[R4][C8]   

  -89   +79   +91   +87   +29   -22 
  +75   -74   -41   -24   -58   +67 
  -40   +41   +58   -36   +43    +6 
  -96   +46   +86   +38   +28   -76 

  +50   -90 
  -24   -55 
  -81   -15 
  -68   -62 

 Press return to continue. 


 --------------------------------------
 A : c_Ab_A_mR(Ab,A);             A[R4][C5] 

  -89   +79   +91   +87   +29 
  +75   -74   -41   -24   -58 
  -40   +41   +58   -36   +43 
  -96   +46   +86   +38   +28 

 Press return to continue. 


 --------------------------------------
 b : c_Ab_b_mR(Ab,b);             b[R4][C3]  

  -22   +50   -90 
  +67   -24   -55 
   +6   -81   -15 
  -76   -68   -62 


 Press return to continue
 Press X      to stop