Mathc matrices/a116
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define RA R4
#define CA C4
#define Cb C1
/* ------------------------------------ */
int main(void)
{
double ab[RA*(CA+C1)]={
-944, +337, -777, -131, -592,
-944, +337, -777, -131, -592,
+509, +581, -475, -544, -649,
+69, +777, -245, -51, +974
};
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));
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(" A :");
p_mR(A,S10,P4,C10);
printf(" b :");
p_mR(b,S10,P4,C10);
printf(" Ab :");
p_mR(Ab,S10,P4,C10);
stop();
clrscrn();
printf(" Copy/Past into the octave window.\n\n");
p_Octave_mR(Ab,"Ab",P4);
printf("\n rref(Ab,.00000000001)\n\n");
printf(" Ab : gj_PP_mR(Ab,NO) :");
gj_PP_mR(Ab,NO);
p_mR(Ab,S10,P4,C10);
stop();
clrscrn();
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();
printf(" Copy/Past into the octave window.\n\n");
p_Octave_mR(Ab_free,"Ab_free",P4);
printf("\n rref(Ab_free,.00000000001)\n\n");
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);
stop();
clrscrn();
c_Ab_b_mR(Ab_free,b_free);
printf(" b_free :");
p_mR(b_free,S10,P4,C7);
printf(" b_free : free variables");
p_freeV(b_free,S8,P4);
stop();
f_mR(Ab);
f_mR(Ab_free);
f_mR(b_free);
f_mR(b);
f_mR(A);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
---------------------
A :
-944.0000 +337.0000 -777.0000 -131.0000
-944.0000 +337.0000 -777.0000 -131.0000
+509.0000 +581.0000 -475.0000 -544.0000
+69.0000 +777.0000 -245.0000 -51.0000
b :
-592.0000
-592.0000
-649.0000
+974.0000
Ab :
-944.0000 +337.0000 -777.0000 -131.0000 -592.0000
-944.0000 +337.0000 -777.0000 -131.0000 -592.0000
+509.0000 +581.0000 -475.0000 -544.0000 -649.0000
+69.0000 +777.0000 -245.0000 -51.0000 +974.0000
Press return to continue.
---------------------
Copy/Past into the octave window.
Ab=[
-944.0000,+337.0000,-777.0000,-131.0000,-592.0000;
-944.0000,+337.0000,-777.0000,-131.0000,-592.0000;
+509.0000,+581.0000,-475.0000,-544.0000,-649.0000;
+69.0000,+777.0000,-245.0000,-51.0000,+974.0000]
rref(Ab,.00000000001)
Ab : gj_PP_mR(Ab,NO) :
+1.0000 -0.3570 +0.8231 +0.1388 +0.6271
+0.0000 +1.0000 -0.3765 -0.0756 +1.1610
-0.0000 -0.0000 +1.0000 +0.9179 +3.0549
+0.0000 +0.0000 +0.0000 +0.0000 +0.0000
Press return to continue.
---------------------
Ab_free : put_zeroR_mR(Ab,Ab_free);
+1.0000 -0.3570 +0.8231 +0.1388 +0.6271 +0.0000
+0.0000 +1.0000 -0.3765 -0.0756 +1.1610 +0.0000
-0.0000 -0.0000 +1.0000 +0.9179 +3.0549 +0.0000
+0.0000 +0.0000 +0.0000 +0.0000 +0.0000 +0.0000
Ab_free : put_freeV_mR(Ab_free);
+1.0000 -0.3570 +0.8231 +0.1388 +0.6271 +0.0000
+0.0000 +1.0000 -0.3765 -0.0756 +1.1610 +0.0000
-0.0000 -0.0000 +1.0000 +0.9179 +3.0549 +0.0000
+0.0000 +0.0000 +0.0000 +1.0000 +0.0000 +1.0000
Press return to continue.
---------------------
Copy/Past into the octave window.
Ab_free=[
+1.0000,-0.3570,+0.8231,+0.1388,+0.6271,+0.0000;
+0.0000,+1.0000,-0.3765,-0.0756,+1.1610,+0.0000;
-0.0000,-0.0000,+1.0000,+0.9179,+3.0549,+0.0000;
+0.0000,+0.0000,+0.0000,+1.0000,+0.0000,+1.0000]
rref(Ab_free,.00000000001)
Ab_free : zero_below_pivot_gj1Ab_mR(Ab_free,r--);
+1.0000 +0.0000 +0.0000 +0.0000 -1.0623 +0.5204
+0.0000 +1.0000 +0.0000 +0.0000 +2.3111 -0.2700
-0.0000 -0.0000 +1.0000 +0.0000 +3.0549 -0.9179
+0.0000 +0.0000 +0.0000 +1.0000 +0.0000 +1.0000
Press return to continue.
---------------------
b_free :
-1.0623 +0.5204
+2.3111 -0.2700
+3.0549 -0.9179
+0.0000 +1.0000
b_free : free variables
x1 = -1.0623 +0.5204*u
x2 = +2.3111 -0.2700*u
x3 = +3.0549 -0.9179*u
x4 = +0.0000 +1.0000*u
Press return to continue.