Mathc complexes/h06a
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : w_a.h */
/* Standard file */
/* Help */
/* Complexes numbers */
/* Create */
/* Copy */
/* Print */
/* Basic operation */
/* ------------------------------------ */ 
/* ------------------------------------ */ 
/* Rand */
/* ------------------------------------ */
Le fichier w_a.h appellera tous les fichiers h de la librairie.

Mathc matrices/a07
Copier un tableau de nombres dans une matrice :
Copier une matrice A dans une matrice B : 
Copier une colonne ou une ligne de la matrice A dans la matrice B :
Copier une colonne de la matrice A dans une ligne de la matrice B :
Copier A et b dans Ab : 
Copier A de Ab dans A, et b de Ab dans b: 
Copier la sous-matrice de Ab dans subA : 
Copier une matrice avec la ligne zéro (R0 : Index de position des colonnes)
Copier uniquement la ligne zéro :
Copier une colonne avec son indice dans une autre colonne :
Copier une ligne R1 dans la ligne R2 d'une matrice :
Copier une ligne s*R1 dans la ligne R2 d'une matrice :
Copier n lignes d'une matrice A dans une matrice B :
Copier une matrice diagonale dans une matrice d'une colonne :
Copier la matrice inverse du système Ab dans la matrice invA :

Mathc matrices/h07a
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00b.c */
/* ------------------------------------ */
void fun(int r,int c)
double **A = r_mR(i_mR(r, c),99.);
double **B = i_mR(r+R2,c);
double **C = eye_mR(i_mR(r+R2,r+C2));
 clrscrn(); 
 printf(" A :");
 p_mR(A,S5,P0,C10); 
 printf(" B : c_mR(A,B);");
 c_mR(A,B);
 p_mR(B,S5,P0,C10); 
 printf(" C : c_mR(A,C);");
 c_mR(A,C );
 p_mR(C ,S5,P0,C10); 
 f_mR(A);
 f_mR(B); 
 f_mR(C); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+C1);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Copier une matrice A dans une matrice B. A et B sont de tailles différentes :

Exemple de sortie écran :
 A :
 +49 +43 +4 -17 
 -11 +42 -11 -36 
 -64 -55 +77 -18 
 B : c_mR(A,B);
 +49 +43 +4 -17 
 -11 +42 -11 -36 
 -64 -55 +77 -18 
 +0 +0 +0 +0 
 +0 +0 +0 +0 
 C : c_mR(A,C);
 +49 +43 +4 -17 +0 
 -11 +42 -11 -36 +0 
 -64 -55 +77 -18 +0 
 +0 +0 +0 +1 +0 
 +0 +0 +0 +0 +1 
 Press return to continue
 Press X to stop

Mathc matrices/h07b
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : ve_det1.h */
double det_R(
double **A
double **T = c_mR(A,
 i_RC_mR(A[R_SIZE][C0],A[C_SIZE][C0]));
double deter=1;
int rc;
 for( rc=C1; rc<T[C_SIZE][C0]; rc++)
 deter *= pivotbest_mR(T,rc);
 deter *= zero_under_pivot_mR(T,rc); 
 f_mR(T);
return(deter);
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/c071a
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01a.c */
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
double **A[tA];
int c;
 for(c=C0; c<tA; c++)
 A[c] = r_mR(i_mR(RA,CA),99);

clrscrn();
 for(c=C0; c<tA; c++)
 printf(" A[%d] :",c); 
 p_mR(A[c],S5,P0,C6);

for(c=C0; c<tA; c++)
 f_mR(A[c]); 
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Créer et initialiser des tableaux de matrices avec la boucle for(;;)

Exemple de sortie écran :
 A[0] :
 +56 +91 +27 +56 +8 
 +10 -34 +39 +80 +2 
 A[1] :
 +37 -13 +46 -5 +97 
 -11 -78 +71 -55 -99 
 A[2] :
 -26 +6 -85 +40 +2 
 -63 +84 +64 +66 -37 
 Press return to continue
 Press X to stop

Mathc matrices/c072a
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c02a.c */
void fun(int r)
double **A = r_mR(i_mR(r,r),9.);
double **At = i_mR(r,r);
 clrscrn();
 printf(" A\n");
 p_mR(A,S3,P0,C6);
 printf(" At\n");
 p_mR(transpose_mR(A,At),S3,P0,C6);
 printf(" det_R(A) = %+.0f\n",det_R(A));
 printf(" det_R(At) = %+.0f\n",det_R(At));
 f_mR(A);
 f_mR(At);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC5)+RC1);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A
 -5 +2 +8 +2 +2 +8 
 -5 +2 +6 -9 -1 -1 
 +6 -7 -1 -1 -3 -5 
 -7 -5 +6 -3 -9 +4 
 +8 +6 -9 -9 +8 -9 
 -9 -1 +2 +6 +2 -1 
 At
 -5 -5 +6 -7 +8 -9 
 +2 +2 -7 -5 +6 -1 
 +8 +6 -1 +6 -9 +2 
 +2 -9 -1 -3 -9 +6 
 +2 -1 -3 -9 +8 +2 
 +8 -1 -5 +4 -9 -1 
 det_R(A) = -265000
 det_R(At) = -265000
 Press return to continue
 Press X to stop

Mathc matrices/c072b
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c02b.c */
void fun(int r)
double **A = r_mR(i_mR(r,r),9.);
double **B = r_mR(i_mR(r,r),9.);
double **AB = i_mR(r,r);
 clrscrn();
 printf(" A \n");
 p_mR(A,S3,P0,C6);
 printf(" B \n");
 p_mR(B,S3,P0,C6);
 printf(" det(A) * det(B) = %+.0f\n",det_R(A)*det_R(B));
 printf(" det(AB) = %+.0f\n",det_R(mul_mR(A,B,AB)));
 f_mR(A);
 f_mR(B);
 f_mR(AB);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC4)+RC1);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A 
 -9 -5 -3 +2 
 -5 -5 +4 -3 
 +4 -9 +8 -1 
 +4 -7 +4 +8 
 B 
 -1 -7 +4 +4 
 -5 +4 -1 -7 
 +8 -7 -1 +2 
 -5 -3 -3 +2 
 det(A) * det(B) = -7333497
 det(AB) = -7333497
 Press return to continue
 Press X to stop

Mathc matrices/c072c
Application 
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c02c.c */
void fun(int r)
double **A = r_mR(i_mR(r,r),9.);
double **B = i_mR(r,r);
double s = 2;
int c = rp_I(A[C_SIZE][C0]-C1);
 clrscrn();
 printf(" A:");
 p_mR(A,S3,P0,C6);
 printf(" The column[%d] of A is muliply by (%+.3f):\n",c,s);
 printf(" B:");
 p_mR( mulC_mR(c_mR(A,B),s,c),S3,P0,C6);
 printf(" If B is the matrix that results when \n");
 printf(" a single column of A is muliplied by \n");
 printf(" a scalar s, then det(B) = s det(A) \n\n");
 printf(" det_R(B) = %+.0f\n", det_R(B));
 printf(" s*det_R(A) = %+.0f\n", s*det_R(A));
 printf(" det_R(A) = %+.0f\n", det_R(A));
 f_mR(A);
 f_mR(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC3)+RC1);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A:
 +8 -9 +6 -3 
 -7 +8 -3 -5 
 -5 -5 +4 -7 
 -3 -1 -3 +8 
 The column[3] of A is muliply by (+2.000):
 B:
 +8 -9 +12 -3 
 -7 +8 -6 -5 
 -5 -5 +8 -7 
 -3 -1 -6 +8 
 If B is the matrix that results when 
 a single column of A is muliplied by 
 a scalar s, then det(B) = s det(A) 
 det_R(B) = -988
 s*det_R(A) = -988
 det_R(A) = -494
 Press return to continue
 Press X to stop

Mathc matrices/c072d
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c02d.c */
void fun(int rc)
double **A = r_mR(i_mR(rc,rc),9.);
double **B = i_mR(rc,rc);
double s = 2;
int r = rp_I(A[C_SIZE][C0]-C1);
 clrscrn();
 printf(" A:");
 p_mR(A,S3,P0,C6);
 printf(" The row[%d] of A is muliply by (%+.3f):\n",r,s);
 printf(" B:");
 p_mR(mulR_mR(c_mR(A,B),s,r),S3,P0,C6);
 printf(" If B is the matrix that results when \n");
 printf(" a single row of A is muliplied by \n");
 printf(" a scalar s, then det(B) = s det(A)\n\n");
 printf(" det_R(B) = %+.0f\n", det_R(B));
 printf(" s*det_R(A) = %+.0f\n",s*det_R(A));
 printf(" det_R(A) = %+.0f\n",det_R(A));
 f_mR(A);
 f_mR(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC3)+RC1);
} while(stop_w());
 return 0;
/* ------------------------------------ */