Mathc matrices/c23r
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define C_FREE1 C3
#define C_FREE2 C4
/* ------------------------------------ */
int main(void)
{
double ab[R4*C7]={
+1, 3, -2, 0, +2, +0, 0,
+2, 6, -5, -2, +4, -3, 0,
0, 0, +5, 10, 0, 15, 0,
2, 6, 0, 8, 4, 18, 0,
};
double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(R4,C6,C1));
double **A = c_Ab_A_mR(Ab,i_mR(R4,C6));
double **b = c_Ab_b_mR(Ab,i_mR(R4,C1));
double **Ab_free = i_Abr_Ac_bc_mR(csize_A_R(Ab),csize_A_R(Ab),C1+C3);
double **b_free = i_mR(rsize_R(Ab_free),csize_b_R(Ab_free));
double **cFree1 = i_mR(R6,C1);
double **cFree2 = i_mR(R6,C1);
double **cFree1plscFree2 = i_mR(R6,C1);
double **A_cFree1plscFree2 = i_mR(rsize_R(A),csize_R(cFree1plscFree2)) ;
int r;
clrscrn();
printf(" Verify if the sum of two columns of b_free\n"
" is orthogonal to A :\n\n");
printf(" A :");
p_mR(A,S6,P1,C10);
printf(" b :");
p_mR(b,S6,P1,C10);
printf(" Ab :");
p_mR(Ab,S6,P1,C10);
stop();
gj_PP_mR(Ab,NO);
put_zeroR_mR(Ab,Ab_free);
put_freeV_mR(Ab_free);
r = rsize_R(Ab_free);
while(r>R1)
zero_below_pivot_gj1Ab_mR(Ab_free,r--);
clrscrn();
c_Ab_b_mR(Ab_free,b_free);
printf(" b_free :");
p_mR(b_free,S10,P3,C7);
c_c_mR(b_free,C_FREE1,cFree1,C1);
c_c_mR(b_free,C_FREE2,cFree2,C1);
printf(" C%d + C%d :",C_FREE1,C_FREE2);
p_mR(add_mR(cFree1,cFree2,cFree1plscFree2),S10,P3,C7);
printf(" A * (C%d+C%d) :",C_FREE1,C_FREE2);
p_mR(mul_mR(A,cFree1plscFree2,A_cFree1plscFree2),S10,P3,C7);
stop();
f_mR(Ab);
f_mR(Ab_free);
f_mR(b_free);
f_mR(b);
f_mR(A);
f_mR(cFree1);
f_mR(cFree2);
f_mR(cFree1plscFree2);
f_mR(A_cFree1plscFree2);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
J'ai éliminé tous les affichages intermédiaire. On peut sélectionner les colonnes de travail dans le code ci-dessous.
#define C_FREE1 C3
#define C_FREE2 C4
Exemple de sortie écran :
------------------------------------
Verify if the sum of two columns of b_free
is orthogonal to A :
A :
+1.0 +3.0 -2.0 +0.0 +2.0 +0.0
+2.0 +6.0 -5.0 -2.0 +4.0 -3.0
+0.0 +0.0 +5.0 +10.0 +0.0 +15.0
+2.0 +6.0 +0.0 +8.0 +4.0 +18.0
b :
+0.0
+0.0
+0.0
+0.0
Ab :
+1.0 +3.0 -2.0 +0.0 +2.0 +0.0 +0.0
+2.0 +6.0 -5.0 -2.0 +4.0 -3.0 +0.0
+0.0 +0.0 +5.0 +10.0 +0.0 +15.0 +0.0
+2.0 +6.0 +0.0 +8.0 +4.0 +18.0 +0.0
Press return to continue.
------------------------------------
b_free :
+0.000 -3.000 -4.000 -2.000
+0.000 +1.000 +0.000 +0.000
+0.000 +0.000 -2.000 +0.000
+0.000 +0.000 +1.000 +0.000
+0.000 +0.000 +0.000 +1.000
+0.000 +0.000 +0.000 +0.000
C3 + C4 :
-6.000
+0.000
-2.000
+1.000
+1.000
+0.000
A * (C3+C4) :
+0.000
+0.000
+0.000
+0.000
Press return to continue.