Aller au contenu

Mathc matrices/a199

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"
/* ------------------------------------ */
#define   RA R3
#define   CA C4
#define   Cb C1
/* ------------------------------------ */
int main(void)
{
double ab[RA*(CA+C1)]={
//  x1   x2   x3   x4      b

     1,   0,  -1,  -0,     0, //N
     3,   0,  -0,  -2,     0, //H
     0,   2,  -1,  -1,     0, //O              
};

double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb));

double **Ab_free = i_Abr_Ac_bc_mR(csize_A_R(Ab),csize_A_R(Ab),Cb+C1);

double **b_free  = i_mR(rsize_R(Ab_free),csize_b_R(Ab_free)); 

int r;

  clrscrn();
  printf(" Ab :");
  p_mR(Ab,S10,P4,C10);

  printf(" Ab :  gj_PP_mR(Ab,NO) :");
  gj_PP_mR(Ab,NO);
  p_mR(Ab,S10,P4,C10);

  put_zeroR_mR(Ab,Ab_free);  
  printf(" Ab_free : put_zeroR_mR(Ab,Ab_free);");  
  p_mR(Ab_free,S10,P4,C10);  
  
  put_freeV_mR(Ab_free);
  printf(" Ab_free : put_freeV_mR(Ab_free);");  
  p_mR(Ab_free,S10,P4,C10);  
  stop();
  
  clrscrn();

  r = rsize_R(Ab_free);
  while(r>R1)    
        zero_below_pivot_gj1Ab_mR(Ab_free,r--);
        
  printf(" Ab_free : zero_below_pivot_gj1Ab_mR(Ab_free,r--);");  
  p_mR(Ab_free,S10,P4,C10);  

  c_Ab_b_mR(Ab_free,b_free);
  
  printf(" b_free : free variables");
  p_freeV(b_free,S8,P8);
  printf("Copy/Past These code in the next *.c file.\n\n");
  p_coefxn(b_free);
  stop();

  f_mR(Ab);
  f_mR(Ab_free);
  f_mR(b_free);
  
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
  • Nous résolvons le système.
  • Les valeurs permettant de calculer les coefficients de l'équation chimique sont données à la fin du programme.
  • Il faut copier la liste de ces valeurs dans le fichier suivant Calculer les coefficients.
Exemple de sortie écran :
 ---------------------
 Ab :
   +1.0000    +0.0000    -1.0000    +0.0000    +0.0000 
   +3.0000    +0.0000    +0.0000    -2.0000    +0.0000 
   +0.0000    +2.0000    -1.0000    -1.0000    +0.0000 

 Ab :  gj_PP_mR(Ab,NO) :
   +1.0000    +0.0000    +0.0000    -0.6667    +0.0000 
   +0.0000    +1.0000    -0.5000    -0.5000    +0.0000 
   -0.0000    -0.0000    +1.0000    -0.6667    -0.0000 

 Ab_free : put_zeroR_mR(Ab,Ab_free);
   +1.0000    +0.0000    +0.0000    -0.6667    +0.0000    +0.0000 
   +0.0000    +1.0000    -0.5000    -0.5000    +0.0000    +0.0000 
   -0.0000    -0.0000    +1.0000    -0.6667    -0.0000    +0.0000 
   +0.0000    +0.0000    +0.0000    +0.0000    +0.0000    +0.0000 

 Ab_free : put_freeV_mR(Ab_free);
   +1.0000    +0.0000    +0.0000    -0.6667    +0.0000    +0.0000 
   +0.0000    +1.0000    -0.5000    -0.5000    +0.0000    +0.0000 
   -0.0000    -0.0000    +1.0000    -0.6667    -0.0000    +0.0000 
   +0.0000    +0.0000    +0.0000    +1.0000    +0.0000    +1.0000 

 Press return to continue. 


 ---------------------
 Ab_free : zero_below_pivot_gj1Ab_mR(Ab_free,r--);
   +1.0000    +0.0000    +0.0000    +0.0000    +0.0000    +0.6667 
   +0.0000    +1.0000    +0.0000    +0.0000    +0.0000    +0.8333 
   +0.0000    +0.0000    +1.0000    +0.0000    +0.0000    +0.6667 
   +0.0000    +0.0000    +0.0000    +1.0000    +0.0000    +1.0000 

 b_free : free variables
 x1 =  +0.00000000 +0.66666667*u
 x2 =  +0.00000000 +0.83333333*u
 x3 =  +0.00000000 +0.66666667*u
 x4 =  +0.00000000 +1.00000000*u

Copy/Past These code in the next *.c file.

double x1 = +0.66666667;
double x2 = +0.83333333;
double x3 = +0.66666667;
double x4 = +1.00000000;


 Press return to continue.