Aller au contenu

Mathc matrices/062

Un livre de Wikilivres.


Quelques propriétés des vecteurs propres.


Installer et compiler ces fichiers dans votre répertoire de travail.

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define FACTOR_E    +1.E-3
#define RCA          RC4 
/* ------------------------------------ */       
/* ------------------------------------ */
int main(void)
{
double a[RCA*(RCA*C2)] ={   
 -680,   +0,  +249,   +0,   +71,   +0,  -582,   +0, 
 +940,   +0,  +359,   +0,   +62,   +0,  -333,   +0, 
 +659,   +0,  +461,   +0,  +500,   +0,   -86,   +0, 
 +634,   +0,   -41,   +0,  +310,   +0,  +218,   +0   };
 
double evector[RCA*(RCA*C2)] ={  	 
-0.086941675784,+0.137530775811, -0.086941675784,-0.137530775811, -0.503370390731,+0.000000000000, -0.341984712854,+0.000000000000,
+0.079982417904,+0.478215807143, +0.079982417904,-0.478215807143, +0.725879046248,+0.000000000000, +0.764895765405,+0.000000000000,
+0.690803310381,+0.311037125623, +0.690803310381,-0.311037125623, +0.037125716105,+0.000000000000, -0.101013435459,+0.000000000000,
+0.405568216447,+0.000000000000, +0.405568216447,-0.000000000000, +0.467268168354,+0.000000000000, +0.536448702203,+0.000000000000
};    

double evalue[RCA*(RCA*C2)] ={
 +602.025962393876,+404.393554681167,   +0.000000000000,  +0.000000000000,   +0.000000000000,+0.000000000000,   +0.000000000000,+0.000000000000, 
   +0.000000000000,  +0.000000000000, +602.025962393865,-404.393554681167,   +0.000000000000,+0.000000000000,   +0.000000000000,+0.000000000000, 
   +0.000000000000,  +0.000000000000,   +0.000000000000,  +0.000000000000, -504.045539320427,+0.000000000000,   +0.000000000000,+0.000000000000, 
   +0.000000000000,  +0.000000000000,   +0.000000000000,  +0.000000000000,   +0.000000000000,+0.000000000000, -303.006385467296,+0.000000000000  };
                       
double **A          =  ca_A_mZ(a,       i_mZ(RCA,RCA));
double **EVector    =  ca_A_mZ(evector, i_mZ(RCA,RCA));
double **invEVector = invgj_mZ(EVector, i_mZ(RCA,RCA));
double **T          =                   i_mZ(RCA,RCA);
double **EValue     = ca_A_mZ(evalue,   i_mZ(RCA,RCA));

  clrscrn();
  printf(" A :");
  p_mRZ(A, S8,P0, C4);

  printf(" EVector :");
  p_mZ(EVector, S8,P4, S6,P4, C4); 
  printf(" invEVector :");
  p_mZ(invEVector, S8,P4, S6,P4, C4);
  stop();

  clrscrn();   
  printf(" EValue : invEVector * A * EVector");
  mul_mZ(invEVector,A,T);
  mul_mZ(T,EVector,EValue); 
    p_mZ(clean_eyes_mZ(EValue), S8,P2, S7,P2, C4);
 
  printf(" A :");
  p_mRZ(A, S8,P0, C4);
  
  printf(" A = EVector * EValue * invEVector");
  mul_mZ(EVector,EValue,T);
  mul_mZ(T,invEVector,A); 
   p_mRZ(A, S8,P0, C4);
  stop();

  clrscrn(); 
  printf(" det(EVector) = ");
  p_Z(det_Z(EVector), S4,P4, S5,P4);
  printf("\n\n\n\n");
  stop();
              
  f_mZ(A);
  f_mZ(EVector);  
  f_mZ(invEVector);  
  f_mZ(T);  
  f_mZ(EValue);

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */


Matrices non symétriques : (Étude avec la bibliothèque des nombres complexes)
Le déterminant de la matrice des vecteurs propres est différent de zéro.
Les vecteurs forment une base. 

L'étude de cette matrice a été effectué Ici


Exemple de sortie écran :
 A :
    -680     +249      +71     -582 
    +940     +359      +62     -333 
    +659     +461     +500      -86 
    +634      -41     +310     +218 

 EVector :
 -0.0869+0.1375i  -0.0869-0.1375i  -0.5034+0.0000i  -0.3420+0.0000i 
 +0.0800+0.4782i  +0.0800-0.4782i  +0.7259+0.0000i  +0.7649+0.0000i 
 +0.6908+0.3110i  +0.6908-0.3110i  +0.0371+0.0000i  -0.1010+0.0000i 
 +0.4056+0.0000i  +0.4056-0.0000i  +0.4673+0.0000i  +0.5364+0.0000i 

 invEVector :
 +0.1598-0.4183i  -0.3140-0.6932i  +0.4121-0.3567i  +0.6271+0.6546i 
 +0.1598+0.4183i  -0.3140+0.6932i  +0.4121+0.3567i  +0.6271-0.6546i 
 -4.0396+0.0000i  +0.4036-0.0000i  +1.1657-0.0000i  -2.9311+0.0000i 
 +3.2770-0.0000i  +0.1232+0.0000i  -1.6385+0.0000i  +3.4690-0.0000i 

 Press return to continue. 


 EValue : invEVector * A * EVector
 +602.03+404.39i    +0.00  +0.00i    +0.00  +0.00i    +0.00  +0.00i 
   +0.00  +0.00i  +602.03-404.39i    +0.00  +0.00i    +0.00  +0.00i 
   +0.00  +0.00i    +0.00  +0.00i  -504.05  +0.00i    +0.00  +0.00i 
   +0.00  +0.00i    +0.00  +0.00i    +0.00  +0.00i  -303.01  -0.00i 

 A :
    -680     +249      +71     -582 
    +940     +359      +62     -333 
    +659     +461     +500      -86 
    +634      -41     +310     +218 

 A = EVector * EValue * invEVector
    -680     +249      +71     -582 
    +940     +359      +62     -333 
    +659     +461     +500      -86 
    +634      -41     +310     +218 

 Press return to continue. 


 det(EVector) = +0.0000-0.1386i 



 Press return to continue.