Aller au contenu

Mathc complexes/05j

Un livre de Wikilivres.


Application

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define   RA R3
#define   CA C4
#define   Cb C1
/* ------------------------------------ */
/* ------------  Chemistry ------------ */
void p_xn_mRZ(
double **b
)
{
 int r;

 for(r=R1; r<b[R_SIZE][C0];    r++)

    printf("double x%d = %+0.8f;\n",r,b[r][C3]);

 printf("\n\n");
}
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
double ab[RA*(CA+Cb)]={
//   x1     x2    x3     x4        b
     1,     0,    -1,    -0,       0,   //C
     4,     0,    -0,    -2,       0,   //H
     0,     2,    -2,    -1,       0,   //O      
};

double **Ab = ca_A_mRZ(ab,i_Abr_Ac_bc_mZ(RA,CA,Cb));

double **Ab_free = i_Abr_Ac_bc_mZ(csize_A_Z(Ab),csize_A_Z(Ab),Cb+C1);
                   
double **b_free  = i_mZ(rsize_Z(Ab_free),csize_b_Z(Ab_free)); 


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

  printf(" Ab :  gj_PP_mZ(Ab) :");
  gj_PP_mZ(Ab);
  p_mRZ(Ab,S10,P4,C10);

  put_zeroR_mZ(Ab,Ab_free);  
  printf(" Ab_free : put_zeroR_mZ(Ab,Ab_free);");  
  p_mRZ(Ab_free,S10,P4,C10);  
  
  put_freeV_mZ(Ab_free);
  printf(" Ab_free : put_freeV_mZ(Ab_free);");  
  p_mRZ(Ab_free,S10,P4,C10);  
  stop();
  
  clrscrn();
  gj_mZ(Ab_free);  
  printf(" Ab_free : gj_mZ(Ab_free);"); 
  p_mRZ(Ab_free,S10,P4,C10);  

  c_Ab_b_mZ(Ab_free,b_free);

  printf(" b_free : free variables");
  p_mRZ(b_free,S10,P4,C10);

  printf("Copy/Paste These code in the next *.c file.\n\n");
  p_xn_mRZ(b_free);
      
  stop();

  f_mZ(Ab);
  f_mZ(Ab_free);
  f_mZ(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 
   +4.0000    +0.0000    +0.0000    -2.0000    +0.0000 
   +0.0000    +2.0000    -2.0000    -1.0000    +0.0000 

 Ab :  gj_PP_mZ(Ab) :
   +1.0000    +0.0000    +0.0000    -0.5000    +0.0000 
   +0.0000    +1.0000    -1.0000    -0.5000    +0.0000 
   +0.0000    +0.0000    +1.0000    -0.5000    +0.0000 

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

 Ab_free : put_freeV_mZ(Ab_free);
   +1.0000    +0.0000    +0.0000    -0.5000    +0.0000    +0.0000 
   +0.0000    +1.0000    -1.0000    -0.5000    +0.0000    +0.0000 
   +0.0000    +0.0000    +1.0000    -0.5000    +0.0000    +0.0000 
   +0.0000    +0.0000    +0.0000    +1.0000    +0.0000    +1.0000 

 Press return to continue. 


 Ab_free : gj_mZ(Ab_free);
   +1.0000    +0.0000    +0.0000    +0.0000    +0.0000    +0.5000 
   +0.0000    +1.0000    +0.0000    +0.0000    +0.0000    +1.0000 
   +0.0000    +0.0000    +1.0000    +0.0000    +0.0000    +0.5000 
   +0.0000    +0.0000    +0.0000    +1.0000    +0.0000    +1.0000 

 b_free : free variables
   +0.0000    +0.5000 
   +0.0000    +1.0000 
   +0.0000    +0.5000 
   +0.0000    +1.0000 

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

double x1 = +0.50000000;
double x2 = +1.00000000;
double x3 = +0.50000000;
double x4 = +1.00000000;


 Press return to continue.