Mathc matrices/a48
Installer et compiler ces fichiers dans votre répertoire de travail.
c00.c |
---|
/* ------------------------------------ */
/* Save as : c00.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define RA R5
#define CA C5
#define Cb C3
/* ------------------------------------ */
/* ------------------------------------ */
#define B (1.)
#define C (1.)
/* ------------------------------------ */
//#define B (+0./1.)
//#define C (-1./2.)
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
/*
* Find a value for "B" so that the system is compatible.
*/
double ab[RA*(CA+Cb)]={
// A = x*B + y*C + z
+3, +9, +1, -1, -2, +2*B, +2*C, +2,
+6, +18, +2, -2, -4, +0*B, +4*C, +4,
-4, +6, -2, +4, +9, +8*B, +0*C, +6,
-6, -6, +8, +1, +5, +0*B, +6*C, +3,
+9, +27, +3, -3, -6, -6*B, +0*C, +3,
};
double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb));
double **A = c_Ab_A_mR(Ab,i_mR(RA,CA));
double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb));
clrscrn();
printf(" A :");
p_mR(A,S3,P0,C8);
printf(" b :");
p_mR(b,S3,P0,C8);;
printf(" Ab :");
p_mR(Ab,S3,P0,C8);
getchar();
clrscrn();
printf(" Copy/Past into the octave window.\n\n");
p_Octave_mR(Ab,"Ab",P0);
printf("\n rref(Ab,.00000000001)\n\n");
printf(" gj_PP_mR(Ab,YES) :");
gj_PP_mR(Ab,YES);
p_mR(Ab,S8,P4,C8);
stop();
f_mR(Ab);
f_mR(b);
f_mR(A);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Calculer la valeur de B et de C pour que le système soit compatible. Exemple de sortie écran :
------------------------------------
A :
+3 +9 +1 -1 -2
+6 +18 +2 -2 -4
-4 +6 -2 +4 +9
-6 -6 +8 +1 +5
+9 +27 +3 -3 -6
b :
+2 +2 +2
+0 +4 +4
+8 +0 +6
+0 +6 +3
-6 +0 +3
Ab :
+3 +9 +1 -1 -2 +2 +2 +2
+6 +18 +2 -2 -4 +0 +4 +4
-4 +6 -2 +4 +9 +8 +0 +6
-6 -6 +8 +1 +5 +0 +6 +3
+9 +27 +3 -3 -6 -6 +0 +3
------------------------------------
Copy/Past into the octave window.
Ab=[
+3,+9,+1,-1,-2,+2,+2,+2;
+6,+18,+2,-2,-4,+0,+4,+4;
-4,+6,-2,+4,+9,+8,+0,+6;
-6,-6,+8,+1,+5,+0,+6,+3;
+9,+27,+3,-3,-6,-6,+0,+3]
rref(Ab,.00000000001)
gj_PP_mR(Ab,YES) :
+1.0000 +0.0000 +0.0000 -0.6596 -1.5851 -1.2340 -0.2553 -0.8936
+0.0000 +1.0000 +0.0000 +0.1383 +0.3404 +0.2695 +0.0213 +0.4078
+0.0000 +0.0000 +1.0000 -0.2660 -0.3085 -0.7234 +0.5745 +0.0106
+0.0000 +0.0000 +0.0000 +0.0000 +0.0000 +4.0000 +4.0000 +2.0000
+0.0000 +0.0000 +0.0000 +0.0000 +0.0000 +4.0000 +2.0000 +1.0000
Press return to continue.
Les deux dernières lignes donnent :
+0.0000 +0.0000 +0.0000 +0.0000 +0.0000 +4.0000 +4.0000 +2.0000 +0.0000 +0.0000 +0.0000 +0.0000 +0.0000 +4.0000 +2.0000 +1.0000 ou bien +0.0000 = +4.0000 +4.0000 +2.0000 +0.0000 = +4.0000 +2.0000 +1.0000 en introduisant B et C +0.0000 = +4.0000 B +4.0000 C +2.0000 +0.0000 = +4.0000 B +2.0000 C +1.0000 soit le système +4.0000 B +4.0000 C = -2.0000 +4.0000 B +2.0000 C = -1.0000 cela donne B = (+0./1.) C = (-1./2.)