Mathc matrices/c11b2

Un livre de Wikilivres.


Fonctions de bases


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


c0b2.c
/* ------------------------------------ */
/*  Save as :  c00a.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define   RA R2
#define   CA C2
/* ------------------------------------ */
void fun(void)
{
double a[RA*CA]={
-367,+448,
+448,-847 
};

double **A            = ca_A_mR(a,i_mR(RA,CA));
double **EigsVector   =           i_mR(RA,CA);
double **T_EigsVector =           i_mR(CA,RA);
double **EigsValue    =           i_mR(RA,C1);

double **T1 =  i_mR(RA,RA);
double **T2 =  i_mR(RA,RA);

  clrscrn();
  printf(" Copy/Past into the octave windows \n\n");
  p_Octave_mR(A,"a",P0);
  printf(" [V, E] = eigs (a,10) \n\n");
  stop();

  clrscrn();   
  eigs_V_mR(A,EigsVector); 
  printf(" EigsVector:");
  p_mR(EigsVector,S10,P4,C6);

  printf(" EigsValue : T_EigsVector * A * EigsVector");   
  transpose_mR(EigsVector,T_EigsVector);   
  mul_mR(T_EigsVector,A,T1);
  mul_mR(T1,EigsVector,T2);
  p_mR(T2,S10,P4,C6);  
   
  eigs_mR(A,EigsValue);
  printf(" EigsValue :");
  p_mR(EigsValue,S10,P4,C1);   
  stop();
   
  f_mR(A);
  
  f_mR(EigsVector);
  f_mR(T_EigsVector);
  
  f_mR(EigsValue);  
     
  f_mR(T1);
  f_mR(T2);
}
/* ------------------------------------ */
int main(void)
{

  fun();

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */



Exemple de sortie écran :
  ------------------------------------  
 Copy/Past into the octave windows 

 a=[
-367,+448;
+448,-847]

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

 Press return to continue. 


  ------------------------------------ 
 EigsVector:
   -0.5137    +0.8580 
   +0.8580    +0.5137 

 EigsValue : T_EigsVector * A * EigsVector
-1115.2362    +0.0000 
   +0.0000   -98.7638 

 EigsValue :
-1115.2362 
  -98.7638 

 Press return to continue.