Aller au contenu

Mathc complexes/02e

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)] ={   
+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  
  };

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=[
+4.162248089600+0.000000000000*i,-0.023552890900-0.526542902500*i,+0.414017700500-0.015857315700*i;
-0.023552890900+0.526542902500*i,+4.287592705700+0.000000000000*i,-0.628116270200+0.017615318900*i;
+0.414017700500+0.015857315700*i,-0.628116270200-0.017615318900*i,+3.550159204600+0.000000000000*i]

 EigenValues  = eigs (a,3) 

 EigenValues:
      +5.0      +0.0i 
      +4.0      -0.0i 
      +3.0      -0.0i 

 Press return to continue.