Aller au contenu

Mathc matrices/a149

Un livre de Wikilivres.


Quelques propriétés des valeurs propres.


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


c07a.c
/* ------------------------------------ */
/*  Save as :  c07a.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define  TAB  R4 
#define  RCA  R3  
/* ------------------------------------ */
void fun(void)
{
double **A[TAB];
double **P[TAB];
double **InvP[TAB];

double **T = i_mR(RCA,RCA);
double **EigsValue = i_mR(RCA,C1);

int c;
int Yes = 0;

  for(c=C0; c<TAB; c++)
     {   
         A[c] = i_mR(RCA,RCA); 
         P[c] = r_mR(i_mR(RCA,RCA),999); 
      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] : ",c); 
      p_mR(A[c],S9,P2,C6);
      
	  printf(" EigsValue  of A[%d] : ",c); 
	  eigs_mR(A[c],EigsValue); 
      p_mR(EigsValue,S9,P2,C6); 
       if(Yes){
			    stop();
			  clrscrn();
			   Yes=0; }
      else{       
		       Yes=1;}    
     } 

  for(c=C0; c<TAB; c++)
     { 
	   f_mR(A[c]);
	   f_mR(P[c]);		 
	   f_mR(InvP[c]); 
	   }
	   
  f_mR(T);       
  f_mR(EigsValue); 
}
/* ------------------------------------ */
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. Elles ont toutes les mêmes valeurs propres


Exemple de sortie écran :
 --------------------------------
 A[0] : 
   -17.00     +3.00    +51.00 
    +3.00    +48.00    +86.00 
   +51.00    +86.00    +47.00 

 EigsValue  of A[0] : 
  +142.95 
   -66.17 
    +1.22 

 A[1] : 
   -47.50   -108.52   +135.86 
   -35.99    -95.63    +63.83 
   -78.10   -172.95   +221.14 

 EigsValue  of A[1] : 
  +142.95 
   -66.17 
    +1.22 

 Press return to continue. 


 A[2] : 
  -901.12  -1512.56  -1068.96 
  +225.86   +389.05   +268.46 
  +495.55   +849.22   +590.07 

 EigsValue  of A[2] : 
  +142.95 
   -66.17 
    +1.22 

 A[3] : 
 +2675.53  +2494.45  +5815.56 
 -1963.25  -1833.19  -4264.38 
  -353.24   -331.18   -764.34 

 EigsValue  of A[3] : 
  +142.95 
   -66.17 
    +1.22 

 Press   return to continue
 Press X return to stop