Mathc complexes/a83
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(int r)
double **Ab = r_singular_Ab_mZ(i_Abr_Ac_bc_mZ(r,r,C1),999);
double **A = c_Ab_A_mZ(Ab,i_mZ(r,r));
double **b = c_Ab_b_mZ(Ab,i_mZ(r,C1)); 
 clrscrn();
 printf(" A :");
 p_mZ(A, S5,P0, S4,P0, C6);
 printf(" b :");
 p_mZ(b, S5,P0, S4,P0, C6);
 stop();
 clrscrn();
 printf(" Copy/Past into the octave window.\n\n");
 p_Octave_mZ(Ab,"Ab",P0, P0);
 printf(" rref(Ab.00000000001)\n\n");
 printf(" gj4_mZ(Ab) :");
 gj4_mZ(Ab);
 p_mZ(Ab,S9,P4,S9,P4,C4);
 f_mZ(Ab);
 f_mZ(b);
 f_mZ(A);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Matrices singulières. : Le système ici à deux lignes identiques. Il pourrait être inconsistant. 
//Il faut initialiser la matrice Ab avec la fonction :
i_Abr_Ac_bc_mZ(Abr,Ac,bc);
//Pour avoir la bonne taille pour les matrices A et b.
// Par exemple :
double **Ab = r_singular_Ab_mZ(i_Abr_Ac_bc_mZ(r,r,C1),999);
Exemple de sortie écran :
 A :
 +39-494i -732+699i +304-811i -278+717i +666+725i 
 +39-494i -732+699i +304-811i -278+717i +666+725i 
 -869+614i +437+502i -846+691i +434+806i -707+587i 
 -869+614i +437+502i -846+691i +434+806i -707+587i 
 -860-404i -176+719i +464+413i +51-999i +722+789i 
 b :
 +873 +13i 
 +873 +13i 
 -162-906i 
 -162-906i 
 -102 -1i 
 Press return to continue. 
 -------------------------------
 Copy/Past into the octave window.
 Ab=[
+39-494*i,-732+699*i,+304-811*i,-278+717*i,+666+725*i,+873+13*i;
+39-494*i,-732+699*i,+304-811*i,-278+717*i,+666+725*i,+873+13*i;
-869+614*i,+437+502*i,-846+691*i,+434+806*i,-707+587*i,-162-906*i;
-869+614*i,+437+502*i,-846+691*i,+434+806*i,-707+587*i,-162-906*i;
-860-404*i,-176+719*i,+464+413*i,+51-999*i,+722+789*i,-102-1*i]
 rref(Ab.00000000001)
 gj4_mZ(Ab) :
 +1.0000 -0.0000i -0.0000 -0.0000i +0.0000 +0.0000i +1.4124 +0.5569i 
 +0.0000 -0.0000i +1.0000 +0.0000i +0.0000 -0.0000i +0.6810 -1.2564i 
 +0.0000 +0.0000i +0.0000 +0.0000i +1.0000 +0.0000i -0.3974 -1.0692i 
 +0.0000 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i 
 +0.7164 +0.6018i -0.1569 -0.2801i 
 +1.2743 -1.2657i -0.7103 -0.1268i 
 +0.9812 +0.1116i -0.2128 +0.5840i 
 +0.0000 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +0.0000 +0.0000i 
 Press return to continue
 Press X to stop

Mathc complexes/a84
Application
Quelques exemples :
Valeurs propres Vecteurs propres :

Mathc complexes/a85
Application
Installer et compiler ce fichier dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(int r)
double **A = r_mZ(i_mZ(r,r),9);
double **B = r_mZ(i_mZ(r,r),9);
double **AplsB = i_mZ(r,r);
 clrscrn();
 printf(" A : ");
 p_mZ(A,S5,P0, S5,P0, C6); 
 printf(" B : ");
 p_mZ(B,S5,P0, S5,P0, C6); 
 printf("\n\n Trace(A)+Trace(B) =");
 p_Z(trace_Z(A), S4,P0, S3,P0);
 p_Z(trace_Z(B), S4,P0, S3,P0);
 printf("="); 
 p_Z(add_Z(trace_Z(A),trace_Z(B)), S4,P0, S3,P0);
 add_mZ(A,B,AplsB);
 printf("\n\n Trace(A+B) =");
 p_Z(trace_Z(AplsB), S4,P0, S3,P0);
 printf("\n\n\n\n"); 
 f_mZ(A);
 f_mZ(B);
 f_mZ(AplsB);
/* ------------------------------------ */
void hello(void)
 printf("\n ");
 printf("\n ");
 printf("\n Trace(A+B) = Trace(A) + Trace(B): ");
 printf("\n ******************************** ");
 printf("\n ");
 printf("\n ");
 printf("\n \n");
 stop();
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
 hello();
do{ 
 fun(rp_I(RC4));
} while(stop_w());
 return 0;
/* ------------------------------------ */
 La fonction trace se contente d'additionner tous les coefficients sur la diagonale.
Exemple de sortie écran :
 A : 
 -8 -8i -9 +2i -3 -1i 
 -3 +1i -5 +1i +4 +9i 
 +2 -2i -4 -9i -7 +7i 
 B : 
 -3 +2i -9 -3i -6 -1i 
 -9 +2i -4 -6i +7 +7i 
 +3 -9i -3 -2i -2 +6i 
 Trace(A)+Trace(B) = -20 +0i -9 +2i = -29 +2i 
 Trace(A+B) = -29 +2i 
 Press return to continue
 Press X to stop

Mathc complexes/a86
Application
Installer et compiler ce fichier dans votre répertoire de travail.
/* Save as : c00b.c */
void fun(int r)
double **A = r_mZ(i_mZ(r,r),9); 
double **B = r_mZ(i_mZ(r,r),9);
double **AB = i_mZ(r,r);
double **BA = i_mZ(r,r);
 clrscrn();
 printf(" A : ");
 p_mZ(A, S5,P0, S5,P0, C6); 
 printf(" B : ");
 p_mZ(B, S5,P0, S5,P0, C6); 
 printf("\n\n"); 
 printf(" Trace(AB) = ");
 p_Z(trace_Z(mul_mZ(A,B,AB)), S4,P0, S3,P0); 
 printf("\n\n\n"); 
 printf(" Trace(BA) = ");
 p_Z(trace_Z(mul_mZ(B,A,BA)), S4,P0, S3,P0); 
 printf("\n\n\n"); 
 f_mZ(A);
 f_mZ(B);
 f_mZ(AB);
 f_mZ(BA);
/* ------------------------------------ */
void hello(void)
 printf("\n ");
 printf("\n ");
 printf("\n Trace(AB) = Trace(BA): ");
 printf("\n ********************* ");
 printf("\n ");
 printf("\n ");
 printf("\n \n");
 stop();
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
 hello();
do{ 
 fun(rp_I(RC4));
} while(stop_w());
 return 0;
/* ------------------------------------ */
 La fonction trace se contente d'additionner tous les coefficients sur la diagonale.
Exemple de sortie écran :
 A : 
 -1 -7i +3 +5i +1 +1i +4 -9i 
 -1 +9i -6 +2i -7 -3i -3 -7i 
 -4 -8i +1 -2i -5 -8i +6 +8i 
 -2 +9i +8 -9i +4 +3i -8 +4i 
 B : 
 +9 -4i -1 -1i -2 +1i +1 +1i 
 +2 +5i +5 -3i -3 -2i +9 -8i 
 -5 -6i -3 -9i +2 -1i -3 +9i 
 -7 -2i -7 -7i -4 +5i +1 +9i 
 Trace(AB) = -316 -4i 
 Trace(BA) = -316 -4i 
 Press return to continue
 Press X to stop

Mathc matrices/a34
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(int r)
double **A = i_mR(r,r);
double **b = i_mR(r,r);
double **Ab = i_Abr_Ac_bc_mR( r, r, r);
/* i_Abr_Ac_bc_mR(R_Ab,C_A,C_b)); */
double **invA = i_mR(r,r);
 do
 r_mR(A,999.);
 printf(".");
 }while(!det_R(A));
 clrscrn();
 printf(" A :");
 p_mR(A,S8,P0,C4);
 printf(" b : ID :");
 eye_mR(b);
 p_mR(b,S8,P0,C4);
 stop();
 clrscrn(); 
 printf(" Ab :");
 c_A_b_Ab_mR(A,b,Ab);
 p_mR(Ab,S8,P0,C4);
 printf(" gj_TP_mR(Ab) :"); 
 gj_TP_mR(Ab);
 p_mR(Ab,S8,P4,C4);
 stop();
 clrscrn(); 
 printf(" Copy/Past into the octave window.\n\n");
 p_Octave_mR(A,"A",P0);
 printf("format short e\n");
 printf(" inv(A)\n\n");
 printf(" invA : c_Inv_A_mR(Ab,invA);"); 
 c_Inv_A_mR(Ab,invA);
 pE_mR(invA,S14,P4,C4);
 f_mR(invA);
 f_mR(Ab);
 f_mR(b);
 f_mR(A);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(R4);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Copier la matrice inverse du système Ab dans la matrice invA :
 Exemple de sortie écran :
 A :
 +461 +953 +389 +217 
 -273 +218 -312 +389 
 +434 +256 -224 -416 
 +978 -891 +122 +23 
 b : ID :
 +1 +0 +0 +0 
 +0 +1 +0 +0 
 +0 +0 +1 +0 
 +0 +0 +0 +1 
 Press return to continue. 
 Ab :
 +461 +953 +389 +217 
 -273 +218 -312 +389 
 +434 +256 -224 -416 
 +978 -891 +122 +23 
 +1 +0 +0 +0 
 +0 +1 +0 +0 
 +0 +0 +1 +0 
 +0 +0 +0 +1 
 gj_TP_mR(Ab) :
 +1.0000 +0.0000 +0.0000 +0.0000 
 +0.0000 +1.0000 +0.0000 +0.0000 
 -0.0000 -0.0000 +1.0000 -0.0000 
 +0.0000 +0.0000 +0.0000 +1.0000 
 +0.0004 +0.0004 +0.0006 +0.0007 
 +0.0005 +0.0002 +0.0004 -0.0004 
 +0.0006 -0.0017 -0.0013 -0.0002 
 +0.0004 +0.0014 -0.0009 +0.0006 
 Press return to continue. 
 ------------------------------------
 Copy/Past into the octave window.
 A=[
+461,+953,+389,+217;
-273,+218,-312,+389;
+434,+256,-224,-416;
+978,-891,+122,+23]
format short e
 inv(A)
 invA : c_Inv_A_mR(Ab,invA);
 +3.9920e-04 +3.5079e-04 +5.7373e-04 +6.7765e-04 
 +5.2663e-04 +1.9352e-04 +4.3427e-04 -3.8693e-04 
 +5.6361e-04 -1.6586e-03 -1.2662e-03 -1.6677e-04 
 +4.3707e-04 +1.3781e-03 -8.5627e-04 +5.5865e-04 
 Press return to continue
 Press X to stop