Fonctions matricielles ex : cos(A)


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


c01a.c
/* ------------------------------------ */
/*  Save as :   c01a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define RCA      RC5
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double **A          = rEsymmetric_mR(i_mR(RCA,RCA),999,+1.E-3);
double **EValue     =                i_mR(RCA,RCA); 

double **Exp_EValue = i_mR(RCA,RCA);
double **ExpA       = i_mR(RCA,RCA);  

double **V          = i_mR(RCA,RCA);
double **V_T        = i_mR(RCA,RCA);

double **T          = i_mR(RCA,RCA);

   clrscrn();     
   printf(" Copy/Past into the octave window.       \n\n");
   p_Octave_mR(A,"A", P6);
   printf(" expm (A)\n\n\n");
 
      eigs_V_mR(A,V);
   transpose_mR(V,V_T);
    
/* EValue = V_T * A * V        */   
   mul_mR(V_T,A,T);
   mul_mR(T,V,EValue);  

   printf(" ExpA :");
   f_eigs_mR(exp,EValue, Exp_EValue);     
      mul_mR(V,Exp_EValue,T);
      mul_mR(T,V_T,ExpA);  
        p_mR(ExpA, S11,P6, C6);
       
   f_mR(A);
   f_mR(EValue);   
       
   f_mR(Exp_EValue);
   f_mR(ExpA); 
      
   f_mR(V);
   f_mR(V_T);

   f_mR(T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

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

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
                         Exp(A)


Exemple de sortie écran :
 Copy/Past into the octave window.       

 A=[
+1.655355,+1.350778,-0.342599,-0.341748,+0.429861;
+1.350778,+1.568408,-0.158844,-0.415816,+0.417686;
-0.342599,-0.158844,+1.175215,-0.436240,-0.573249;
-0.341748,-0.415816,-0.436240,+0.410208,-0.033060;
+0.429861,+0.417686,-0.573249,-0.033060,+0.607863]

 expm (A)


 ExpA :
 +12.926874  +11.175547   -3.185199   -2.628348   +4.187926 
 +11.175547  +12.073314   -2.637676   -2.732714   +3.935739 
  -3.185199   -2.637676   +4.511294   -0.509211   -2.312927 
  -2.628348   -2.732714   -0.509211   +2.261209   -0.584766 
  +4.187926   +3.935739   -2.312927   -0.584766   +3.354703 


 Press   return to continue
 Press X return to stop