Application

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A      = rdefinite_negative_mR(   i_mR(r,r), 99);
double **invA   =                inv_mR(A, i_mR(r,r));
double **sA     =                          i_mR(r,r) ;

double **EValue =               eigs_mR(A, i_mR(r,C1));

  clrscrn();  
  printf(" A = Q sD QT : Definite negative");
  p_mR(A,S12,P6,C6);
  
  printf(" invA  ");
  p_mR(invA,S12,P6,C6);
  
  printf(" eigs_mR(A);  A : Definite negative");
  p_mR(EValue,S9,P3,C1);
  stop();
  
  clrscrn();   
  printf(" -A  : Definite positive");
  smul_mR(-1,A,sA);
  p_mR(sA,S12,P6,C6);

  printf(" eigs_mR(-A); -A : Definite positive");
  eigs_mR(sA,EValue);
     p_mR(EValue,S9,P3,C1);
  

  f_mR(A);
  f_mR(sA);
  f_mR(invA);
  f_mR(EValue);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(rp_I(R3)+R1);

} while(stop_w());

  return 0;
}

/* ------------------------------------ */
/* ------------------------------------ */


Ses valeurs propres sont négatives. Elle est inversible. -A est définie positif

Exemple de sortie écran :

 A = Q sD QT : Definite negative
  -62.822947   +13.971519   +13.431514 
  +13.971519   -46.998526   +24.588297 
  +13.431514   +24.588297   -28.178527 

 invA  
   -0.032702    -0.032892    -0.044289 
   -0.032892    -0.072233    -0.078708 
   -0.044289    -0.078708    -0.125279 

 eigs_mR(A);  A : Definite negative
  -71.000 
  -62.000 
   -5.000 

 Press return to continue. 


 -A  : Definite positive
  +62.822947   -13.971519   -13.431514 
  -13.971519   +46.998526   -24.588297 
  -13.431514   -24.588297   +28.178527 

 eigs_mR(-A); -A : Definite positive
  +71.000 
  +62.000 
   +5.000 


 Press   return to continue
 Press X return to stop