Exemple de sortie écran :
 A:
 +8 +2i +8 +2i -7 -5i -1 -7i 
 -3 +8i -5 -3i +2 -1i -3 -5i 
 -9 +4i +8 +6i +6 -1i +4 -7i 
 +2 -5i -3 -7i +4 +4i +4 +2i 
 The column[2] of A is muliply by +2-3i 
 B:
 +8 +2i +22-20i -7 -5i -1 -7i 
 -3 +8i -19 +9i +2 -1i -3 -5i 
 -9 +4i +34-12i +6 -1i +4 -7i 
 +2 -5i -27 -5i +4 +4i +4 +2i 
 If B is the matrix that results when 
 a single column of A is muliplied by 
 a scalar z, then det(B) = z det(A)
 det_Z(B) =-22018-40514i 
 z*det_Z(A) =-22018-40514i 
 det_Z(A) = +5962-11314i 
 Press return to continue
 Press X to stop

Mathc complexes/c072d
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c02d.c */
void fun(int rc)
double **A = r_mZ(i_mZ(rc,rc),9.);
double **B = i_mZ(rc,rc);
nb_Z z = {2,-3};
int r = R2;
 clrscrn();
 printf(" A:");
 p_mZ(A, S3,P0, S3,P0, C6);
 printf(" The row[%d] of A is muliply by ",r);
 p_Z(z, S1,P0,S1,P0);
 printf("\n\n B:");
 p_mZ(mulR_mZ(c_mZ(A,B),z,r), S3,P0, 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 z, then det(B) = z det(A)\n\n");
 printf(" det_Z(B) =");
 p_Z(det_Z(B), S1,P0, S1,P0);
 printf("\n z*det_Z(A) =");
 p_Z(mul_Z(z,det_Z(A)), S1,P0, S1,P0);
 printf("\n\n det_Z(A) = ");
 p_Z(det_Z(A), S1,P0, S1,P0);
 f_mZ(A);
 f_mZ(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC2)+RC2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A:
 +2 +6i +2 +6i -7 -5i 
 -5 +8i +4 +6i +4 -1i 
 -3 -7i +8 -5i -3 +4i 
 The row[2] of A is muliply by +2-3i 
 B:
 +2 +6i +2 +6i -7 -5i 
+14+31i +26 +0i +5-14i 
 -3 -7i +8 -5i -3 +4i 
 If B is the matrix that results when 
 a single row of A is muliplied by 
 a scalar z, then det(B) = z det(A)
 det_Z(B) =-2315-3645i 
 z*det_Z(A) =-2315-3645i 
 det_Z(A) = +485-1095i 
 Press return to continue
 Press X to stop

Mathc complexes/c072e
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c02e.c */
int take_c(int c)
int r = c;
 if(r!=C1) r= (c-C1)*C2+C1;
return(r);
/* ------------------------------------ */
void fun(int r)
double **A = r_mZ(i_mZ(r,r),9.);
double **B = i_mZ(r,r);
int c1 = C1; 
int c2 = take_c(C4);
 clrscrn();
 printf(" A:");
 p_mZ(A, S3,P0, S3,P0, C6);
 printf(" B:");
 c_mZ(A,B);
 p_mZ(swapC_mZ(B,c1,c2), S3,P0, S3,P0, C6);
 printf(" If B is the matrix that results when \n");
 printf(" two columns (c[%d],c[%d]) are interchanged\n",c1,((c2-C1)/C2)+C1);
 printf(" then : det(B) = - det(A)\n\n\n");
 printf("\n det(A) = ");
 p_Z(det_Z(A), S1,P0, S1,P0);
 printf("\n det(B) = ");
 p_Z(det_Z(B), S1,P0, S1,P0);
 f_mZ(A);
 f_mZ(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC2)+RC3);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A:
 +8 +2i -3 +2i +2 +4i -1 -5i 
 -5 -3i +4 -1i -1 -9i +4 -1i 
 -1 +2i +8 +2i -9 -9i -3 +2i 
 -9 -7i +8 +2i +2 +2i +4 -9i 
 B:
 -1 -5i -3 +2i +2 +4i +8 +2i 
 +4 -1i +4 -1i -1 -9i -5 -3i 
 -3 +2i +8 +2i -9 -9i -1 +2i 
 +4 -9i +8 +2i +2 +2i -9 -7i 
 If B is the matrix that results when 
 two columns (c[1],c[4]) are interchanged
 then : det(B) = - det(A)
 det(A) = +5369+13167i 
 det(B) = -5369-13167i 
 Press return to continue
 Press X to stop

Mathc complexes/c072f
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c02f.c */
void fun(int r)
double **A = r_mZ(i_mZ(r,r),9.);
double **B = i_mZ(r,r);
int r1 = R1;
int r2 = R3;
 clrscrn();
 printf(" A:");
 p_mZ(A, S3,P0, S3,P0, C6);
 printf(" B:");
 p_mZ(swapR_mZ(c_mZ(A,B),r1,r2), S3,P0, S3,P0, C6);
 printf(" If B is the matrix that results when \n");
 printf(" two rows (r[%d],r[%d]) are interchanged\n",r1,r2);
 printf(" then : det(B) = - det(A)\n\n\n");
 printf("\n det_Z(A) = "); 
 p_Z(det_Z(A), S1,P0, S1,P0);
 printf("\n det_Z(B) = ");
 p_Z(det_Z(B), S1,P0, S1,P0);
 f_mZ(A);
 f_mZ(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC2)+RC3);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A:
 -5 -1i +8 -7i +6 -5i -5 +8i +8 -3i 
 -3 -7i +2 +4i -1 -7i -1 +2i -1 +6i 
 -7 +8i -3 +4i +6 -9i -3 +8i -1 +6i 
 -3 +6i +4 +2i -1 -7i +4 -5i -5 +2i 
 -7 -5i +6 +6i -9 -7i +4 -9i +8 +2i 
 B:
 -7 +8i -3 +4i +6 -9i -3 +8i -1 +6i 
 -3 -7i +2 +4i -1 -7i -1 +2i -1 +6i 
 -5 -1i +8 -7i +6 -5i -5 +8i +8 -3i 
 -3 +6i +4 +2i -1 -7i +4 -5i -5 +2i 
 -7 -5i +6 +6i -9 -7i +4 -9i +8 +2i 
 If B is the matrix that results when 
 two rows (r[1],r[3]) are interchanged
 then : det(B) = - det(A)
 det_Z(A) = -210157-355133i 
 det_Z(B) = +210157+355133i 
 Press return to continue
 Press X to stop

Mathc matrices/a08
Sommaire
Mathc matrices/h08a
Quelques types de matrices spécifiques :

Mathc matrices/h08b
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : ve_det2.h */
double **minor_mR(
double **A,
double **Minor,
int minor_r, 
int minor_c 
int r;
int c;
int T_r;
int T_c;
 for(r=R1,T_r=R1; r<A[R_SIZE][C0]; r++)
 if(minor_r!=r)
 for( c=C1,T_c=C1; c<A[C_SIZE][C0]; c++)
 if(minor_c!=c)
 Minor[T_r][T_c++] = A[r][c];
 T_r++;

return(Minor);
/* ------------------------------------ */
double minor_R(
double **A,
int r,
int c
double **T = i_RC_mR((A[R_SIZE][C0]-C1),
 (A[C_SIZE][C0]-C1));
double minor= det_R(minor_mR(A,T,r,c));
 f_mR(T);
return(minor);
/* ------------------------------------ */
double cofactor_R(
double **A,
int r,
int c
 return( ( pow(-1,(r+c))*minor_R(A,r,c) ) );
/* ------------------------------------ */
double **cofactor_mR(
double **A,
double **Cofactor
int r;
int c;
 for(r=R1; r<A[R_SIZE][C0]; r++)
 for( c=C1; c<A[C_SIZE][C0]; c++)
 Cofactor[r][c] = cofactor_R(A,r,c);
return(Cofactor);
/* ------------------------------------ */
double **adjoint_mR(
double **A,
double **Adjoint
double **T = i_RC_mR(A[R_SIZE][C0],A[C_SIZE][C0]);
 transpose_mR(cofactor_mR(A,T),Adjoint);
 f_mR(T);
return(Adjoint);
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/h08c
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : ve_det3.h */
double **inv_mR(
double **A,
double **InvA
double det = det_R(A);
double invdet = 1;
int r;
 if(!det)
 printf("\n inv_mR error - The determinant is Zero");
 printf("\n Press return to continue.\n");
 fflush(stdout);
 getchar();
 exit(EXIT_FAILURE);
 adjoint_mR(A,InvA);
 invdet /= det;
 for(r=R1; r<A[R_SIZE][C0]; r++)
 mulR_mR(InvA,invdet,r);
return(InvA);
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/c081a
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : inv_r.c */
void fun(int r)
double **A = r_mR(i_mR(r,r),9999.);
double **Inv = i_mR(r,r);
double **ID = i_mR(r,r);
 clrscrn();
 printf(" Copy/Past into the octave window.\n\n");
 p_Octave_mR(A,"A",P0);
 printf(" inv(A)\n");
 pE_mR(inv_mR(A,Inv),S12,P4,C4);
 stop();
 clrscrn();
 printf(" inv(A)*A\n"); 
 p_mR(mul_mR(Inv,A,ID),S0,P4,C8);
 printf(" A*inv(A)\n"); 
 p_mR(mul_mR(A,Inv,ID),S0,P4,C8);
 f_mR(ID);
 f_mR(Inv);
 f_mR(A);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC4)+C1);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Vérifier avec octave.