Aller au contenu

Mathc complexes/02d

Un livre de Wikilivres.


Application

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define FACTOR_E    +1.E-2         
#define RCA          RC3  
/* ------------------------------------ */ 
void fun(void)
{  
double d[RCA*(RCA*C2)] ={   
   5,0, 0,0,  0,0,
   0,0, 4,0,  0,0,
   0,0, 0,0,  3,0};
                           
double **D          =         ca_A_mZ(d, i_mZ(RCA,RCA));                            
double **A          = rdefpos_diag_mZ(D, i_mZ(RCA,RCA),9);
double **EigsValue  =         eigs_mZ(A, i_mZ(RCA,C1));  

  clrscrn(); 
  printf(" Choose your eigenvalues (d),     \n"
         " and copy A into the next C file\n\n"
         " A:");
  P_mZ(A, S10,P10, S10,P10, C4);     
    
  printf(" D = EValue :");
  p_mZ(D, S3,P0, S2,P0, C4);
  
  f_mZ(D);  
  f_mZ(A); 
  f_mZ(EigsValue);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
    fun();
    
} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
 Vous commencez par choisir vos valeurs propres réelles (le tableau d). La fonction va créer une matrice qui possédera ces valeurs propres réelles. La matrice A est une matrice symétrique conjugué. 
On utilise la même fonction pour calculer la matrice A que dans l'exemple précédent. 

Exemple de sortie écran :

 Choose your eigenvalues (d),     
 and copy A into the next C file

 A:
+4.1622480896,+0.0000000000, -0.0235528909,-0.5265429025, +0.4140177005,-0.0158573157, 
-0.0235528909,+0.5265429025, +4.2875927057,+0.0000000000, -0.6281162702,+0.0176153189, 
+0.4140177005,+0.0158573157, -0.6281162702,-0.0176153189, +3.5501592046,+0.0000000000  

 D = EValue :
 +5+0i  +0+0i  +0+0i 
 +0+0i  +4+0i  +0+0i 
 +0+0i  +0+0i  +3+0i 


 Press   return to continue
 Press X return to stop    x