Mathc complexes/a165
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00c.c */
/* ------------------------------------ */
void fun(void)
double ab[RAb*((CA+Cb)*C2)] ={ 
 -3,-7, -6,-5, +4,-2, +6,+1, +1,-9, +1,-9, 
 -3,-7, -6,-5, +4,-2, +0,+1, +1,-0, -8,+7, 
 -3,-7, -6,-5, +4,-2, -4,-0, +0,-3, +0,-3 };
double **Ab = ca_A_mZ(ab,i_Abr_Ac_bc_mZ(RAb,CA,Cb));
double **Ab_free = i_Abr_Ac_bc_mZ(RAb,CA,Cb) ;
double **b_free = i_mZ(RAb,C2);
nb_Z B;
nb_Z C;
int c ;
 clrscrn();
 B = i_Z(+1.09230769,-0.67179487);
 c = TheCorrect_C(CA+C1);
 mulC_mZ(Ab,B,c);
 C = i_Z(-2.22564103,-1.72820513);
 c = TheCorrect_C(CA+C2); 
 mulC_mZ(Ab,C,c);
 printf(" Ab_news :");
 p_mZ(Ab, S8,P2, S6,P2, CA); 
 stop();
 clrscrn(); 
 printf(" zx zx zx \n"
 " 0 0 0 \n" 
 " 0 0 0 \n\n" 
 " zx*B zx*C zx \n"
 " z1*B z2*C z3 \n" 
 " z1*B z2*C z3 \n\n"
 " z1*B + z2*C + z3 == 0\n\n" 
 " The system is compatible :"); 
 p_mZ(gj_PP_FreeV_mZ(Ab), S10,P4, S6,P4, CA); 
 stop();
 f_mZ(Ab);
 f_mZ(Ab_free);
 f_mZ(b_free);
/* ------------------------------------ */
int main(void)
 fun();
 return 0;
/* ------------------------------------ */
 Le système est compatible.
 Exemple de sortie écran :
 Ab_news :
 -3.00 -7.00i -6.00 -5.00i +4.00 -2.00i 
 -3.00 -7.00i -6.00 -5.00i +4.00 -2.00i 
 -3.00 -7.00i -6.00 -5.00i +4.00 -2.00i 
 +7.23 -2.94i -17.78+18.30i +1.00 -9.00i 
 +0.67 +1.09i -2.23 -1.73i -8.00 +7.00i 
 -4.37 +2.69i -5.18 +6.68i +0.00 -3.00i 
 Press return to continue. 
 ------------------------------------ 
 zx zx zx 
 0 0 0 
 0 0 0 
 zx*B zx*C zx 
 z1*B z2*C z3 
 z1*B z2*C z3 
 z1*B + z2*C + z3 == 0
 The system is compatible :
 +1.0000+0.0000i +0.9138-0.4655i +0.0345+0.5862i 
 -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.0191+1.0240i -1.2893-3.0925i +1.0345+0.5862i 
 -6.5538+4.0308i +15.5538-20.0308i -9.0000+16.0000i 
 -11.5949+5.6256i +12.5949-11.6256i -1.0000+6.0000i 
 Press return to continue.

Mathc complexes/a168
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00c.c */
/* ------------------------------------ */
void fun(void)
double ab[RAb*((CA+Cb)*C2)] ={ 
 -4,-2, -1,-2, +3,-2, +6,+1, +1,-9, +1,-9, 
 -8,-4, -2,-4, +6,-4, +0,+1, +1,-0, -8,+7, 
 -4,-2, -1,-2, +3,-2, -4,-0, +0,-3, +0,-3 };
double **Ab = ca_A_mZ(ab,i_Abr_Ac_bc_mZ(RAb,CA,Cb));
double **Ab_free = i_Abr_Ac_bc_mZ(RAb,CA,Cb) ;
double **b_free = i_mZ(RAb,C2);
nb_Z B;
nb_Z C;
int c ;
 clrscrn();
 B = i_Z(+0.53196192,-0.35481129);
 c = TheCorrect_C(CA+C1);
 mulC_mZ(Ab,B,c);
 C = i_Z(-1.64246855,-0.83866032);
 c = TheCorrect_C(CA+C2); 
 mulC_mZ(Ab,C,c);
 printf(" Ab_news :");
 p_mZ(Ab, S8,P2, S6,P2, CA); 
 stop();
 clrscrn(); 
 printf(" zx zx zx \n"
 " 0 0 0 \n" 
 " 0 0 0 \n\n" 
 " zx*B zx*C zx \n"
 " z1*B z2*C z3 \n" 
 " z1*B z2*C z3 \n\n"
 " z1*B + z2*C + z3 == 0\n\n" 
 " The system is compatible :"); 
 p_mZ(gj_PP_FreeV_mZ(Ab), S10,P4, S8,P4, CA); 
 stop();
 f_mZ(Ab);
 f_mZ(Ab_free);
 f_mZ(b_free);
/* ------------------------------------ */
int main(void)
 fun();
 return 0;
/* ------------------------------------ */
 Le système est compatible.
 Exemple de sortie écran :
 Ab_news :
 -4.00 -2.00i -1.00 -2.00i +3.00 -2.00i 
 -8.00 -4.00i -2.00 -4.00i +6.00 -4.00i 
 -4.00 -2.00i -1.00 -2.00i +3.00 -2.00i 
 +3.55 -1.60i -9.19+13.94i +1.00 -9.00i 
 +0.35 +0.53i -1.64 -0.84i -8.00 +7.00i 
 -2.13 +1.42i -2.52 +4.93i +0.00 -3.00i 
 Press return to continue. 
 ------------------------------------ 
 zx zx zx 
 0 0 0 
 0 0 0 
 zx*B zx*C zx 
 z1*B z2*C z3 
 z1*B z2*C z3 
 z1*B + z2*C + z3 == 0
 The system is compatible :
 +1.0000 +0.0000i +0.4000 +0.3000i -0.4000 +0.7000i 
 +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.0621 -0.0355i +0.2062 +0.0017i +0.4500 -1.1000i 
 +3.3692 -1.8629i -8.3692+14.3629i +5.0000-12.5000i 
 -2.3053 +1.1533i -1.6947 +5.3467i +4.0000 -6.5000i 
 Press return to continue.

Mathc complexes/a169
Application
Dans cette section, je travaille sur des matrices avec des coefficients réelles avec les fonctions complexes.

Mathc complexes/a170
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
void fun(void)
int r = RCA;
int c = RCA;
double **A = rcsymmetric_mZ(i_mZ(r,c),9); 
double **A_T = ctranspose_mZ(A,i_mZ(c,r));
double **V = i_mZ(r,c);
double **U = i_mZ(r,c);
double **U_T = i_mZ(c,r); // :c,r 
double **U_TA = i_mZ(c,c); // c,r r,c :c,c
double **U_TA2 = i_mZ(c,r); // c,r :c,r 
double **U_TA2V = i_mZ(c,c); // c,r r,c :c,c X_Value
double **svdvalue = i_mZ(r,C1);
 clrscrn();
 printf(" A :");
 p_mZ(A, S10,P2, S8,P2, C3);
 X_U_mZ(A_T,U,FACTOR_E);
 printf(" U :");
 p_mZ(U, S10,P4, S8,P4, C3);
 X_V_mZ(A_T,V,FACTOR_E);
 printf(" V :");
 p_mZ(V, S10,P4, S8,P4, C3); 
 ctranspose_mZ(U,U_T);
/* X_Value = U_T * A * V */
 mul_mZ( U_T, A, U_TA); // U_TA : c,c
 c_mZ( U_TA, U_TA2); // U_TA2 : c,r 
 mul_mZ(U_TA2, V, U_TA2V); // V : r,c
 printf(" X_Value = U_T * A * V :");
 p_mZ(U_TA2V, S10,P4, S9,P4, C3);
 stop();
 clrscrn();
 printf(" X_Value = U_T * A * V :");
 p_mZ(U_TA2V, S10,P4, S9,P4, C3);
 svduv_mZ(A,svdvalue);
 printf(" Singular value : ");
 p_mZ(svdvalue, S10,P4, S9,P4, C10);

f_mZ(A); 
 f_mZ(A_T);
 f_mZ(V); 
 f_mZ(U);
 f_mZ(U_T); 
 f_mZ(U_TA);
 f_mZ(U_TA2); 
 f_mZ(U_TA2V); 
 f_mZ(svdvalue); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
Je vais utiliser les fonctions X_U_mZ(); X_V_mZ(); sur une matrice conjuguée symétrique. Cela va me donner le vecteur propre et ensuite je vais calculer les valeurs propres.
 Exemple de sortie écran :
 A :
 +92.00 +0.00i -39.00 +33.00i -94.00 +33.00i 
 -39.00 -33.00i +225.00 +0.00i -84.00 +126.00i 
 -94.00 -33.00i -84.00 -126.00i +281.00 +0.00i 
 U :
 -0.2361 -0.0128i -0.2694 +0.5637i +0.5936 -0.4488i 
 -0.2783 +0.5244i +0.0895 -0.6593i +0.3612 -0.2727i 
 +0.7692 +0.0000i +0.4086 +0.0000i +0.4913 -0.0000i 
 V :
 -0.2361 -0.0128i -0.2694 +0.5637i +0.5936 -0.4488i 
 -0.2783 +0.5244i +0.0895 -0.6593i +0.3612 -0.2727i 
 +0.7692 +0.0000i +0.4086 +0.0000i +0.4913 -0.0000i 
 X_Value = U_T * A * V :
 +425.6033 -0.0000i +0.0000 +0.0000i -0.0000 +0.0000i 
 -0.0000 -0.0000i +166.7760 +0.0000i -0.0000 -0.0000i 
 -0.0000 -0.0000i -0.0000 +0.0000i +5.6207 +0.0000i 
 Press return to continue. 
 ----------------------------------
 X_Value = U_T * A * V :
 +425.6033 -0.0000i +0.0000 +0.0000i -0.0000 +0.0000i 
 -0.0000 -0.0000i +166.7760 +0.0000i -0.0000 -0.0000i 
 -0.0000 -0.0000i -0.0000 +0.0000i +5.6207 +0.0000i 
 Singular value : 
 +425.6033 +0.0000i 
 +166.7760 +0.0000i 
 +5.6207 +0.0000i 
 Press return to continue
 Press X return to stop

Mathc matrices/a88
Determinant ... ... Matrices semblables.
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(void)
double **A[TAB];
double **P[TAB];
double **InvP[TAB];
double **T = i_mR(RCA,RCA);
int c;
 for(c=C0; c<TAB; c++)
 A[c] = i_mR(RCA,RCA); 
 P[c] = r_mR(i_mR(RCA,RCA),99); 
 InvP[c] = inv_mR(P[c],i_mR(RCA,RCA)); 
 rsymmetric_mR(A[0],99);
 for(c=C0; c<(TAB-C1); c++)
 mul_mR(InvP[c],A[c],T); 
 mul_mR(T,P[c],A[c+C1]);
 clrscrn();
 for(c=C0; c<TAB; c++)
 printf(" A[%d] : \t\t\t det = %+.4f ",c,det_R(A[c])); 
 p_mR(A[c],S9,P2,C6); 
 for(c=C0; c<TAB; c++)
 f_mR(A[c]);
 f_mR(P[c]); 
 f_mR(InvP[c]);

f_mR(T); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
 do{
 fun();
 }while(stop_w());
 return 0;
/* ------------------------------------ */
Je crée une suite de quatre Matrices semblables.