Aller au contenu

Mathc matrices/c11a2

Un livre de Wikilivres.



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


c00a.c
/* ------------------------------------ */
/*  Save as :  c00a.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define   RA        R3          
/* ------------------------------------ */
void fun(void)
{
double **A             = rsymmetric_mR(i_mR(RA,RA),999.);

double **EigsVector    =               i_mR(RA,RA);
double **T_EigsVector  =               i_mR(RA,RA);
double **EigsValues    =               i_mR(RA,RA);

double **T_EigsVectorA =               i_mR(RA,RA);

  clrscrn();
  printf(" A :");  
  p_mR(A,S10,P4,C6);
  
  printf(" EigsValues = T_EigsVector * A * EigsVector"); 
  eigs_V_mR(A,EigsVector); 
  transpose_mR(EigsVector,T_EigsVector); 
    
  mul_mR(T_EigsVector,A,T_EigsVectorA);
  mul_mR(T_EigsVectorA,EigsVector,EigsValues);
  
  p_mR(EigsValues,S10,P4,C6);    

  printf(" det_R(A) \t\t= %10.1f\n",      det_R(A));
  printf(" det_R(EigsValues) \t= %10.1f\n",det_R(EigsValues));    
    
  f_mR(A);
  
  f_mR(EigsVector);
  f_mR(T_EigsVector); 
  f_mR(EigsValues);
   
  f_mR(T_EigsVectorA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun();

} while(stop_w());

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


Attention la valeur des déterminants peux croître très rapidement, par exemple ici le déterminant à neuf chiffres !


Exemple de sortie écran :
 --------------------------------
 A :
 -946.0000  +738.0000   +46.0000 
 +738.0000  +421.0000  -815.0000 
  +46.0000  -815.0000  +512.0000 

 EigsValues = T_EigsVector * A * EigsVector
+1387.2394    +0.0000    -0.0000 
   +0.0000 -1352.6159    -0.0000 
   -0.0000    -0.0000   -47.6235 

 det_R(A) 		    = 89360854.0
 det_R(EigsValues) 	= 89360854.0

 Press return to continue
 Press X      to stop