Aller au contenu

Mathc complexes/a95

Un livre de Wikilivres.


trace_mR(); ... ... det_Z();


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


c00b.c
/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define FACTOR_E        +1.E-2    
#define RA               R3          
/* ------------------------------------ */
void fun(void)
{                          
double **A         = r_hermitian_mZ(         i_mZ(RA,RA),99);
double **V         =      eigs_V_mZ(A,       i_mZ(RA,RA),FACTOR_E);
double **cV_T      =  ctranspose_mZ(V,       i_mZ(RA,RA)); 
double **cV_TA     =         mul_mZ(cV_T,A,  i_mZ(RA,RA)); 
double **EigsValue =         mul_mZ(cV_TA,V, i_mZ(RA,RA));
  
  clrscrn();
  printf(" A :");
  p_mZ(A, S10,P2, S9,P2, C3); 
   
  printf(" EigsValue = cV_T * A * V");
  p_mZ(EigsValue, S10,P2, S9,P2, C3); 
   
  printf("\n det_Z(A) \t\t= ");
  p_Z( det_Z(A), S5,P2, S6,P2);
  printf("\n det_Z(EigsValue) \t= ");
  p_Z( det_Z(EigsValue), S5,P2, S6,P2);
  printf("\n");
          
  f_mZ(A);
  f_mZ(V);
  f_mZ(cV_T);
  f_mZ(EigsValue);
  f_mZ(cV_TA);    
}
/* ------------------------------------ */
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 :
 +19950.00    +0.00i   +2891.00 +5426.00i     -25.00 -7474.00i 
  +2891.00 -5426.00i  +14628.00    +0.00i   -1519.00 -9193.00i 
    -25.00 +7474.00i   -1519.00 +9193.00i  +23930.00    +0.00i 

 EigsValue = cV_T * A * V
 +34975.28    -0.00i      -0.00    -0.00i      -0.00    -0.00i 
     -0.00    +0.00i  +16531.83    +0.00i      +0.00    +0.00i 
     -0.00    +0.00i      +0.00    -0.00i   +7000.89    -0.00i 


 det_Z(A) 		    = +4047950179048.00 +0.00i 
 det_Z(EigsValue) 	= +4047950179048.00 -0.00i 

 Press return to continue
 Press X      to stop