Aller au contenu

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"
/* ------------------------------------ */
/* ------------------------------------ */
double **X_c_Ab_A_mR(
double **Ab,
double **A
)
{
int r;
int c;

 	for    (r=R1; r<Ab[R_SIZE][C0];   r++)
 	   for (c=C1; c<Ab[C_SIZE_A][C0]; c++)

            A[r][c] = Ab[r][c];
            
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
double **X_c_Ab_b_mR(
double **Ab,
double **b
)
{
int r;
int c;
int b_c;


  	for    (r=R1;                      r<Ab[R_SIZE][C0]; r++)
 	   for (c=Ab[C_SIZE_A][C0],b_c=C1; c<Ab[C_SIZE][C0]; c++,b_c++)

            b[r][b_c] = Ab[r][c];
            
return(b);
}
/* ------------------------------------ */
/* ------------------------------------ */
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);
 
  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[R3][C6]   

  +21   +81   -30   +14   +85   +32 
   +9   -17   -47   +13   -70    -2 
  -22   +94   +79   -94   +40   +37 

 Press return to continue. 


 A : c_Ab_A_mR(Ab,A);             A[R3][C3] 

  +21   +81   -30 
   +9   -17   -47 
  -22   +94   +79 

 b : c_Ab_b_mR(Ab,b);             b[R3][C3]  

  +14   +85   +32 
  +13   -70    -2 
  -94   +40   +37 


 Press   return to continue
 Press X return to stop