Aller au contenu

Mathc complexes/01x

Un livre de Wikilivres.

Application

Installer et compiler ce fichier dans votre répertoire de travail.

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A      =  rdefinite_positive_mZ(       i_mZ(r,r), 9);
double **invA   =                 inv_mZ(A,     i_mZ(r,r));
double **EVal =                  eigs_mZ(invA, i_mZ(r,C1));

  clrscrn();  
  printf(" A: ");
  p_mZ(A, S6,P0, S4,P0, C4);
  
  printf(" invA  ");
  pE_mZ(invA, S10,P2, S9,P2, C4);
  
  printf(" InvA : EVal are positives");
  p_mZ(EVal, S10,P5, S9,P5, C4);   
  
  f_mZ(A);
  f_mZ(invA);
  f_mZ(EVal);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(R3);

} while(stop_w());

  return 0;
}

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

La matrice inverse d'une matrice hermitienne définie positive est une matrice hermitienne définie positive. Ces valeurs propres sont positives.

Exemple de sortie écran :

 A: 
  +149  +0i     +7  +2i    +25 -57i 
    +7  -2i    +91  +0i    -43 -47i 
   +25 +57i    -43 +47i   +158  +0i 

 invA  
 +8.50e-03-1.67e-19i  +4.10e-04+2.73e-03i  -2.04e-03+3.93e-03i 
 +4.10e-04-2.73e-03i  +1.62e-02-8.75e-20i  +5.33e-03+5.40e-03i 
 -2.04e-03-3.93e-03i  +5.33e-03-5.40e-03i  +1.11e-02-2.19e-19i 

 InvA : EVal are positives
  +0.02326 -0.00000i 
  +0.00831 +0.00000i 
  +0.00426 -0.00000i 


 Press   return to continue
 Press X return to stop