Mathc complexes/05j
Apparence
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.