Aller au contenu

Mathc matrices/a139

Un livre de Wikilivres.


Quelques propriétés des valeurs propres.


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

c03a.c
/* ------------------------------------ */
/*  Save as :   c03a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A            = rsymmetric_mR(    i_mR(r,r),9.);
double **EigsValue    =       eigs_mR(A,  i_mR(r,C1));
double **Inv          =        inv_mR(A,  i_mR(r,r));
double **EigsValueInv =       eigs_mR(Inv,i_mR(r,C1));

int    i = 0;
int    j = 0;

  clrscrn();

  printf(" A :");
  p_mR(A,S2,P0,C6);
  
  printf(" EigsValue of A :");
  p_mR(EigsValue,S13,P6,C1);
      
  printf(" inv(A)");
  pE_mR(Inv,S12,P4,C5);
  
  printf(" EigsValue of invA :");
  p_mR(EigsValueInv,S13,P6,C1);
  
  stop();

  clrscrn();
  
  for(i=1,j=r; i<=r; i++,j--)
       
       printf(" EigsValue*EigsValueInv: %.3f    \n",
           EigsValue[i][C1]*EigsValueInv[j][C1]);      
           
  f_mR(EigsValueInv);  
  f_mR(EigsValue);  
  f_mR(Inv);
  f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(rp_I(RC4)+C1);

} while(stop_w());


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


Les valeurs propres de l'inverse de A correspondent aux inverses des valeurs propres de A :

Attention : L'ordre des valeurs propres est inversés !!! Ici Aλ1*inv(A)λ4 = 1, Aλ2*inv(A)λ3 = 1 ...
 

Exemple de sortie écran :
 A :
-4 -1 -6 +1 
-1 -4 -8 +2 
-6 -8 +9 -8 
+1 +2 -8 -3 

 EigsValue of A :
   +17.452803 
   -10.785948 
    -5.657402 
    -3.009452 

 inv(A)
 -2.4212e-01  +1.1763e-01  -1.7473e-02  +4.4306e-02 
 +1.1763e-01  -1.7441e-01  -4.3058e-02  +3.7754e-02 
 -1.7473e-02  -4.3058e-02  +9.0484e-03  -5.8658e-02 
 +4.4306e-02  +3.7754e-02  -5.8658e-02  -1.3697e-01 

 EigsValue of invA :
    -0.332286 
    -0.176760 
    -0.092713 
    +0.057297 

 Press return to continue. 


 EigsValue*EigsValueInv: 1.000    
 EigsValue*EigsValueInv: 1.000    
 EigsValue*EigsValueInv: 1.000    
 EigsValue*EigsValueInv: 1.000    

 Press   return to continue
 Press X return to stop