Aller au contenu

Mathc matrices/c12b10

Un livre de Wikilivres.


Valeurs propres. Vecteurs propres

Je veux calculer les valeurs propres de la matrice M.


  • J'utilise la QR décomposition de M
  • Puis je calcule RQ
  • RQ devient la nouvelle valeur de M
  • Et je recommence un cycle.


Je copie M dans T pour ne pas modifier M. Puis j'applique 1000 fois l'algorithme vue plus haut.

c_mR(M,T);

 for(i=0;i<1000;i++)
     { 
       QR_mR(T,Q,R);  
        mul_mR(R,Q,T);
     }


À la fin je trouve sur la diagonale de T les valeurs propres.

     
  for(rc=R1;rc<=r;rc++)
     { 
	   EValue[rc][C1] = T[rc][rc];
     }


 /* ------------------------------------ */
/* ------------------------------------ */
double **eigs_mR(
double **A,
double **EValue
)
{
int r = rsize_R(A);

double **T = i_mR(r,r);
double **Q = i_mR(r,r);
double **  = i_mR(r,r);
int i;
int rc;

 c_mR(A,T);
 
 for(i=0;i<LOOP_EIGSUV;i++)
     { 
	   QR_mR(T,Q,R);  
        mul_mR(R,Q,T);
     }
     
  for(rc=R1;rc<=r;rc++)
     { 
	   EValue[rc][C1] = T[rc][rc];
     }
     
  f_mR(T);
  f_mR(Q);
  f_mR(R); 
  
  return(EValue);    
}
/* ------------------------------------ */
/* ------------------------------------ */