Aller au contenu

Mathc matrices/09e

Un livre de Wikilivres.


Matrices de Markov

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

c00c.c
/* ------------------------------------ */
/*  Save as:  c00c.c                    */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define   RCA C3
/* ------------------------------------ */
int main(void)
{
double a[RCA*RCA]={
+.7,+.2,+.1,
+.2,+.2,+.6,
+.1,+.6,+.3
};

double **A     =   ca_A_mR(a,        i_mR(RCA,RCA));
double **Ev    = eigs_V_mR(A,        i_mR(RCA,RCA));
double **InvEv =  invgj_mR(Ev,       i_mR(RCA,RCA));
 
/*                   Eval = InvEv  A Ev           */
double **T1    =    mul_mR(InvEv, A, i_mR(RCA,RCA));        
double **Eval  =    mul_mR(T1,   Ev, i_mR(RCA,RCA));

  clrscrn();
  printf(" Copy/Paste into the octave windows \n");
  p_Octave_mR(A,"a",P9);
  printf(" [V, E] = eigs (a,%d) \n\n",RCA);
 
  printf(" Ev:");
  p_mR(Ev,S10,P4,C6);

  printf(" Eval = InvEv A Ev");   
  p_mR(Eval,S10,P4,C6);  
  
  stop();
   
  f_mR(A);
  
  f_mR(Ev);
  f_mR(InvEv);
  
  f_mR(Eval);  
     
  f_mR(T1);
  
    return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */

Exemple de sortie écran :

 Copy/Paste into the octave windows 
 a=[
+0.700000000,+0.200000000,+0.100000000;
+0.200000000,+0.200000000,+0.600000000;
+0.100000000,+0.600000000,+0.300000000]

 [V, E] = eigs (a,3) 

 Ev:
   +0.5774    +0.8128    -0.0775 
   +0.5774    -0.3393    +0.7427 
   +0.5774    -0.4735    -0.6652 

 Eval = InvEv A Ev
   +1.0000    +0.0000    +0.0000 
   -0.0000    +0.5583    +0.0000 
   +0.0000    -0.0000    -0.3583 

 Press return to continue.