Mathc matrices/a38
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
double f(
double x)
 return(pow(x,1./Pn));
char feq[] = "x**Pn";
/* ------------------------------------ */
void fun(void)
double **A = rPsymmetric_mR(i_mR(RCA,RCA),99.);
double **SqrtA = i_mR(RCA,RCA);
double **EigsVector = i_mR(RCA,RCA);
double **T_EigsVector = i_mR(RCA,RCA);
double **EigsValue = i_mR(RCA,RCA);
double **f_EigsValue = i_mR(RCA,RCA);
double **T1 = i_mR(RCA,RCA);
 clrscrn();
 printf(" A :");
 p_mR(A, S7,P0, C8); 
 eigs_V_uv_mR(A,EigsVector); 
 transpose_mR(EigsVector,T_EigsVector);
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mR(T_EigsVector,A,T1);
 mul_mR(T1,EigsVector,EigsValue); 
 f_eigs_uv_mR(f,EigsValue,f_EigsValue);
 //A == EigsVector * EigsValue * T_EigsVector 
 mul_mR(EigsVector,f_EigsValue,T1);
 mul_mR(T1,T_EigsVector,SqrtA); 
 printf(" A**(1/%d) = EigsVector * EigsValue**(1/%d)"
 " * T_EigsVector\n", Pn, Pn);
 p_mR(SqrtA,S10,P4,C8); 
 printf(" A = A**%d ",Pn); 
 pow_mR(Pn,SqrtA,A);
 p_mR(A, S7,P0, C8); 
 f_mR(A);
 f_mR(SqrtA);
 f_mR(EigsVector);
 f_mR(T_EigsVector);
 f_mR(EigsValue);
 f_mR(f_EigsValue); 
 f_mR(T1);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 A**1/3 = V EValue**1/3 T_V 
 Exemple de sortie écran :
 A :
 +999 -80 +61 -56 
 -80 +7881 -99 -60 
 +61 -99 +10434 +27 
 -56 -60 +27 +2664 
 A**(1/3) = EigsVector * EigsValue**(1/3) * T_EigsVector
 +9.9921 -0.1153 +0.0763 -0.1311 
 -0.1153 +19.8993 -0.0752 -0.0701 
 +0.0763 -0.0752 +21.8511 +0.0279 
 -0.1311 -0.0701 +0.0279 +13.8610 
 A = A**3 
 +999 -80 +61 -56 
 -80 +7881 -99 -60 
 +61 -99 +10434 +27 
 -56 -60 +27 +2664 
 Press return to continue
 Press X to stop

Mathc complexes/a118
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
double f(
double x)
 return(pow(x,1./Pn));
char feq[] = "x**1/Pn";
/* ------------------------------------ */
void fun(void)
double **A = rcsymmetric_mRZ(i_mZ(RCA,RCA),99.);
double **A_Pn = i_mZ(RCA,RCA);
double **EigsVector = i_mZ(RCA,RCA);
double **T_EigsVector = i_mZ(RCA,RCA);
double **EigsValue = i_mZ(RCA,RCA);
double **f_EigsValue = i_mZ(RCA,RCA);
double **T1 = i_mZ(RCA,RCA);
 clrscrn();
 printf(" A "); 
 p_mRZ(A, S8,P0, C6); 
 eigs_V_uv_mZ(A,EigsVector,FACTOR_E);
 transpose_mZ(EigsVector,T_EigsVector);
/* EigsValue : T_EigsVector * A * EigsVector */
 mul_mZ(T_EigsVector,A,T1);
 mul_mZ(T1,EigsVector,EigsValue); 
 f_eigs_uv_mZ(f,EigsValue,f_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector 
 mul_mZ(EigsVector,f_EigsValue,T1);
 mul_mZ(T1,T_EigsVector,A_Pn); 
 printf(" A_Pn = A**(1/%d) = EigsVector * EigsValue**(1/%d)"
 " * T_EigsVector\n", Pn, Pn);
 p_mRZ(A_Pn,S10,P4,C6); 
 printf(" A = A_Pn**%d ",Pn); 
 p_mRZ(pow_mZ(Pn,A_Pn,T1), S8,P0, C6); 
 f_mZ(A);
 f_mZ(A_Pn);
 f_mZ(EigsVector);
 f_mZ(T_EigsVector);
 f_mZ(EigsValue);
 f_mZ(f_EigsValue); 
 f_mZ(T1);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 A**(1/3) == V * EValue**(1/3) * T_V
 Exemple de sortie écran :
 A 
 +3530 +6946 +4551 +1247 
 +6946 +15417 +11733 +6870 
 +4551 +11733 +10999 +9945 
 +1247 +6870 +9945 +19317 
 A_Pn = A**(1/3) = EigsVector * EigsValue**(1/3) * T_EigsVector
 +9.1381 +7.6805 +2.5368 -0.8878 
 +7.6805 +19.3141 +9.1352 +2.1710 
 +2.5368 +9.1352 +15.4858 +6.3291 
 -0.8878 +2.1710 +6.3291 +25.2532 
 A = A_Pn**3 
 +3530 +6946 +4551 +1247 
 +6946 +15417 +11733 +6870 
 +4551 +11733 +10999 +9945 
 +1247 +6870 +9945 +19317 
 Press return to continue
 Press X to stop

Mathc complexes/a116
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
double f(
double x)
 return(pow(x,1./Pn));
char feq[] = "x**1/Pn";
/* ------------------------------------ */
void fun(void)
double **A = rcsymmetric_mZ(i_mZ(RCA,RCA),99);
double **A_Pn = i_mZ(RCA,RCA);
double **EigsVector = i_mZ(RCA,RCA);
double **T_EigsVector = i_mZ(RCA,RCA);
double **T = i_mZ(RCA,RCA);
double **EigsValue = i_mZ(RCA,RCA);
double **SqrtEigsValue = i_mZ(RCA,RCA);
 clrscrn();
 printf(" A :");
 p_mZ(A, S7,P0, S7,P0, C6); 
/* EigsVector and T_EigsVector*/ 
 eigs_V_uv_mZ(A,EigsVector,FACTOR_E);
 ctranspose_mZ(EigsVector,T_EigsVector);
/* EigsValue = T_EigsVector * A * EigsVector */ 
 mul_mZ(T_EigsVector,A,T);
 mul_mZ(T,EigsVector,EigsValue); 
 f_eigs_uv_mZ(f,EigsValue,SqrtEigsValue); 
/* inv : EigsVector * sqrt(EEigsVectoralue) * T_EigsVector*/ 
 mul_mZ(EigsVector,SqrtEigsValue,T);
 mul_mZ(T,T_EigsVector,A_Pn); 
 printf(" A_Pn = A**(1/%d) = EigsVector * EigsValue**(1/%d)"
 " * T_EigsVector\n", Pn, Pn);
 p_mZ(A_Pn, S9,P3, S8,P3, C6); 
 printf(" A = A_Pn**%d ",Pn); 
 p_mZ(pow_mZ(Pn,A_Pn,A), S7,P0, S7,P0, C6);
 f_mZ(A);
 f_mZ(A_Pn);
 f_mZ(EigsVector);
 f_mZ(T_EigsVector);
 f_mZ(T); 
 f_mZ(SqrtEigsValue);
 f_mZ(EigsValue);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
Avec les matrices réelles nous avons calculer les vecteurs et valeurs propres des matrices symétriques. Avec les matrices complexes nous allons calculer les vecteurs et valeurs propres des matrices symétriques conjuguées.
Contrôle du facteur : 
Nous allons étudier une des propriétés des valeurs propres et des vecteurs propres :
 A**1/3 = V EValue**1/3 T_V
 Exemple de sortie écran :
 A :
 +14358 +0i -8031 +363i +6369 +2393i -14091 +4643i 
 -8031 -363i +27605 +0i +5916 -4738i +12435 -12393i 
 +6369 -2393i +5916 +4738i +24326 +0i -6520 -4144i 
 -14091 -4643i +12435 +12393i -6520 +4144i +24540 +0i 
 A_Pn = A**(1/3) = EigsVector * EigsValue**(1/3) * T_EigsVector
 +19.695 -0.000i -1.763 +1.044i +2.797 +2.438i -8.801 +2.977i 
 -1.763 -1.044i +27.076 -0.000i +2.919 -3.226i +6.164 -6.343i 
 +2.797 -2.438i +2.919 +3.226i +27.204 +0.000i -3.990 -3.085i 
 -8.801 -2.977i +6.164 +6.343i -3.990 +3.085i +22.642 +0.000i 
 A = A_Pn**3 
 +14358 -0i -8031 +363i +6369 +2393i -14091 +4643i 
 -8031 -363i +27605 -0i +5916 -4738i +12435 -12393i 
 +6369 -2393i +5916 +4738i +24326 +0i -6520 -4144i 
 -14091 -4643i +12435 +12393i -6520 +4144i +24540 +0i 
 Press return to continue
 Press X to stop