f_mZ(P); 
 f_mZ(InvP); 
 f_mZ(T); 
 f_mZ(P_1_InvA0_P); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
 do{
 fun();
 }while(stop_w());
 return 0;
/* ------------------------------------ */
Je crée une suite de deux Matrices semblables. 
Exemple de sortie écran :
 The two similar matrices :
 A[1] = P**(-1) A[0] P 
 A[0] : 
 -73.0000 +63.0000i -96.0000 -36.0000i -34.0000 -2.0000i 
 -47.0000 -25.0000i -5.0000 -95.0000i +68.0000 +5.0000i 
 +30.0000 +67.0000i +88.0000 -2.0000i +22.0000 -79.0000i 
 A[1] : 
 -236.7995 -143.2208i +106.5832 +85.3502i +152.3677 +45.5125i 
 -177.2947 +284.2601i +16.9742 -96.5831i -76.4140 -147.0676i 
 -62.2371 -333.4057i +41.4827 +165.0499i +163.8253 +128.8039i 
 Press return to continue. 
 -------------------------------------------
 The inverse of the two similar matrices : 
 InvA[0] : 
 -5.5808e-03-7.2638e-03i +4.1355e-03-2.3909e-03i -1.6687e-04-5.8825e-03i 
 +1.5389e-03+2.9228e-03i -2.3637e-03+6.5115e-03i +4.6434e-03+1.7419e-03i 
 -5.4735e-03-4.3051e-03i +8.9070e-03-3.6105e-03i +1.3745e-04+2.4779e-03i 
 InvA[1] : 
 -5.1659e-03-2.9926e-04i -3.3495e-03-3.8725e-03i +2.5946e-03-5.1396e-03i 
 +5.1730e-03+1.5121e-02i -1.2297e-02-1.2227e-02i -1.2805e-02-2.2176e-02i 
 -1.7872e-03-1.8262e-02i +1.8925e-03+5.7091e-03i +9.6557e-03+1.4252e-02i 
 Press return to continue. 
 -------------------------------------------
 InvA[1] = P**(-1) InvA[0] P 
 InvA[1] : 
 -5.1659e-03-2.9926e-04i -3.3495e-03-3.8725e-03i +2.5946e-03-5.1396e-03i 
 +5.1730e-03+1.5121e-02i -1.2297e-02-1.2227e-02i -1.2805e-02-2.2176e-02i 
 -1.7872e-03-1.8262e-02i +1.8925e-03+5.7091e-03i +9.6557e-03+1.4252e-02i 
 P**(-1) InvA[0] P : 
 -5.1659e-03-2.9926e-04i -3.3495e-03-3.8725e-03i +2.5946e-03-5.1396e-03i 
 +5.1730e-03+1.5121e-02i -1.2297e-02-1.2227e-02i -1.2805e-02-2.2176e-02i 
 -1.7872e-03-1.8262e-02i +1.8925e-03+5.7091e-03i +9.6557e-03+1.4252e-02i 
 Press return to continue
 Press X return to stop

Mathc matrices/a93
Application
 a) A = I**(-1) A I 
 La relation « être semblables » est : réflexive.
 b) Si B = P**(-1) A P 
 alors P B P**(-1) = P P**(-1) A P P**(-1) = A
 ou A = P B P**(-1)
 si nous posons Q = P**(-1) dans l'équation ci-dessus alors
 on a B = P**(-1) A P et A = Q**(-1) B Q 
 La relation « être semblables » est : symétrique.

c) Si B = P**(-1) A P et C = Q**(-1) B Q
 alors C = Q**(-1) B Q
 C = Q**(-1) [P**(-1) A P] Q
 C = [Q**(-1) P**(-1)] A [P Q]
 C = [P Q]**(-1) A [P Q] posons R = [P Q]
 C = R**(-1) A R 
 La relation « être semblables » est : transitive.

Donc la relation « être semblables » est une relation d'équivalence.

Mathc complexes/a176
Application
 a) A = I**(-1) A I 
 La relation « être semblables » est : réflexive.
 b) Si B = P**(-1) A P 
 alors P B P**(-1) = P P**(-1) A P P**(-1) = A
 ou A = P B P**(-1)
 si nous posons Q = P**(-1) dans l'équation ci-dessus alors
 on a B = P**(-1) A P et A = Q**(-1) B Q 
 La relation « être semblables » est : symétrique.

Mathc matrices/a94
Quelques exemples :
Changement de Base dans R3 :
Changement de Base dans R2 :

Mathc matrices/a95
Application
Installer et compiler ce fichier dans votre répertoire de travail.
/* Save as : c00a.c */
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
double **A[TAB];
double **B = i_mR(RA,CB);
int c; 
 clrscrn();
 printf(" The problem :\n\n");
 for(c=C0; c<TAB; c++)
 A[c] = r_mR(i_mR(RA,CA),99); 
 printf(" A[%d] :",c); 
 p_mR(A[c],S5,P0,C6);

stop();
 clrscrn();
 for(c=C0; c<TAB; c++)
 c_c_mR(A[c],C1,B,c+C1);
 printf(" A solution :\n\n"); 
 printf(" A[0] A[1] A[1] :"); 
 p_mR(B,S6,P0,C10);
 for(c=C0; c<TAB; c++)
 f_mR(A[c]); 
 f_mR(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 L'affichage des vecteurs d'une colonne prend trop de place. J'ai donc tenté de les installer dans une matrice avant de les afficher.
Exemple de sortie écran :
 The problem :
 A[0] :
 -54 
 -70 
 -62 
 +63 
 -61 
 A[1] :
 -34 
 -37 
 -96 
 -24 
 -86 
 A[2] :
 -10 
 -87 
 -11 
 -13 
 +68 
 Press return to continue. 
 ------------------------
 A solution :
 A[0] A[1] A[1] :
 -54 -34 -10 
 -70 -37 -87 
 -62 -96 -11 
 +63 -24 -13 
 -61 -86 +68 
 Press return to continue
 Press X return to stop

Mathc matrices/a96
Application
Installer et compiler ce fichier dans votre répertoire de travail.
/* Save as : c00a.c */
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
double **A[TAB];
double **B = i_mR(RA,CB);
int c;
 for(c=C0; c<TAB; c++)
 A[c] = r_mR(i_mR(RA,CA),99); 
 clrscrn();
 add_mR(A[0],A[1],A[2]);
 for(c=C0; c<TAB; c++)
 c_c_mR(A[c],C1,B,c+C1);
 printf(" A solution :\n\n"); 
 printf(" A[0] + A[1] = A[2] :"); 
 p_mR(B,S8,P0,C10);
 for(c=C0; c<TAB; c++)
 f_mR(A[c]); 
 f_mR(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 L'affichage des vecteurs d'une colonne prend trop de place. J'ai donc tenté de les installer dans une matrice avant de les afficher.
Exemple de sortie écran :
 A solution :
 A[0] + A[1] = A[2] :
 +24 -26 -2 
 -15 -8 -23 
 +17 +33 +50 
 -4 -11 -15 
 +6 -34 -28 
 Press return to continue
 Press X return to stop

Mathc matrices/a97
Application
Installer et compiler ce fichier dans votre répertoire de travail.
/* Save as : c00a.c */
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
double **A[TAB];
double **B = i_mR(RA,CB);
int c;
double s = 2;
 for(c=C0; c<TAB; c++)
 A[c] = r_mR(i_mR(RA,CA),99); 
 clrscrn();
 smul_mR(s,A[0],A[1]);
 for(c=C0; c<TAB; c++)
 c_c_mR(A[c],C1,B,c+C1);
 printf(" A solution :\n\n"); 
 printf(" %.0f*A[0] = A[1] ",s); 
 p_mR(B,S8,P0,C10);
 for(c=C0; c<TAB; c++)
 f_mR(A[c]); 
 f_mR(B);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 L'affichage des vecteurs d'une colonne prend trop de place. J'ai donc tenté de les installer dans une matrice avant de les afficher.
Exemple de sortie écran :
 A solution :
 2*A[0] = A[1] 
 +9 +18 
 -72 -144 
 -99 -198 
 -58 -116 
 -82 -164 
 Press return to continue
 Press X return to stop

Mathc matrices/a98
Application
Installer et compiler ce fichier dans votre répertoire de travail.
/* Save as : c00a.c */
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
double **A[TAB];
double **T[TAB];
double s[TAB];
double **B = i_mR(RA,CB);
double **ID = eye_mR(i_mR(RA,RA));
int c;
 clrscrn();
 for(c=C0; c<TAB; c++)
 T[c] = i_mR(RA,CA);
 c_c_mR(ID,c+C1, T[c],C1); 
 c_c_mR(T[c],C1, B,c+C1);

printf(" The Three Standard Columns Vectors \n\n" 
 " A[0] A[1] A[2] :"); 
 p_mR(B,S6,P0,C10);
 stop();
 clrscrn();
 for(c=C0; c<TAB; c++)
 A[c] = i_mR(RA,CA); 
 s[c] = r_I(9);
 smul_mR(s[c],T[c],A[c]);
 c_c_mR(A[c],C1, B,c+C1);

add_mR(A[0],A[1],T[0]); 
 add_mR(T[0],A[2],T[1]); 
 c_c_mR(T[1],C1, B,CB);
 printf(" V is a linear combination of \n" 
 " the three Standard Columns Vectors of R_3 :\n\n" 
 " %+.0f*A[0] %+.0f*A[1] %+.0f*A[1] V",s[0],s[1],s[2]); 
 p_mR(B,S8,P0,C10);
 for(c=C0; c<TAB; c++)
 f_mR(A[c]); 
 f_mR(T[c]);