Aller au contenu

Mathc complexes/02g

Un livre de Wikilivres.


Application

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

c00b.c
/* ------------------------------------ */
/*  Save as :  c00b.c                   */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define   RCA    RC3
/* ------------------------------------ */
int main(void)
{
double a[RCA*(RCA*C2)] ={   
+3.6655231228,+3.6655231228, -0.3965810096,+0.4282557046, +0.8670026157,-0.0384689329, 
+0.4282557046,-0.3965810096, +4.6023160144,+4.6023160144, +0.5686805385,-0.1906631555, 
-0.0384689329,+0.8670026157, -0.1906631555,+0.5686805385, +3.7321608628,+3.7321608628 
  };

double **A         = ca_A_mZ(a, i_mZ(RCA,RCA));
double **EigsValue = eigs_mZ(A, i_mZ(RCA,C1));

  clrscrn();
  printf(" Copy/Paste into the octave windows \n\n");
  p_Octave_mZ(A,"a",P12,P12);
  printf(" EigenValues  = eigs (a,%d) \n\n",RCA);
  
  printf(" EigenValues:");
  p_mZ(EigsValue, S10,P1, S10,P1, C4);
  stop();  
   
  f_mZ(A);
  f_mZ(EigsValue);
  
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Pour éviter les problèmes d'arrondis, utiliser pour la matrice A des nombres avec 10 à 12 chiffres après la virgule.

Exemple de sortie écran :

 Copy/Paste into the octave windows 

 a=[
+3.665523122800+3.665523122800*i,-0.396581009600+0.428255704600*i,+0.867002615700-0.038468932900*i;
+0.428255704600-0.396581009600*i,+4.602316014400+4.602316014400*i,+0.568680538500-0.190663155500*i;
-0.038468932900+0.867002615700*i,-0.190663155500+0.568680538500*i,+3.732160862800+3.732160862800*i]

 EigenValues  = eigs (a,3) 

 EigenValues:
      +5.0      +5.0i 
      +4.0      +4.0i 
      +3.0      +3.0i 

 Press return to continue.