Mathc complexes/a110

Un livre de Wikilivres.


Application


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


c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define FACTOR_E     +1.E-4      
#define RCA           RC8  
/* ------------------------------------ */       
/* ------------------------------------ */
void fun(int r)
{
double **A            = rcsymmetric_mRZ(i_mZ(RCA,RCA),99.);// 8x8 -> +1.E-4 
double **a            =                 i_mZ(RCA,RCA);

double **EigsVector   =                 i_mZ(RCA,RCA);
double **T_EigsVector =                 i_mZ(RCA,RCA);
double **EigsValue    =                 i_mZ(RCA,RCA);

double **T1           =                 i_mZ(RCA,RCA);

  clrscrn();
  
  printf(" A :");
  p_mRZ(A,S8,P0,C8);  

  eigs_V_mZ(A,EigsVector,FACTOR_E);
  transpose_mZ(EigsVector,T_EigsVector); 
  
/* EigsValue : T_EigsVector * A * EigsVector */ 
  mul_mZ(T_EigsVector,A,T1);
  mul_mZ(T1,EigsVector,EigsValue);   
 
  mul_mZ(EigsVector,EigsValue,T1);
  mul_mZ(T1,T_EigsVector,a);
  
  printf(" A : EigsVector * EigsValue * T_EigsVector");  
  p_mRZ(a,S8,P0,C8);     
   
  f_mZ(A);
  f_mZ(a);
    
  f_mZ(EigsVector);
  f_mZ(T_EigsVector);
  
  f_mZ(EigsValue);  
     
  f_mZ(T1);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(rp_I(2)+R2);

} while(stop_w());

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


              A = V * EValue * cV_T


Exemple de sortie écran :
 ------------------------------------
 A :
  +22879     +866    +7422    -3441   -17440    +1003    -4305   -13983 
    +866   +25859    -3183    +6604    +7305   -14222   -21133    -7192 
   +7422    -3183   +28866   -23892    -7622   +16609   +10254    -8170 
   -3441    +6604   -23892   +36083     -947   -21706   -12442    +6609 
  -17440    +7305    -7622     -947   +33128    -6053    -9493     -589 
   +1003   -14222   +16609   -21706    -6053   +25853   +10889     -623 
   -4305   -21133   +10254   -12442    -9493   +10889   +30094   +10599 
  -13983    -7192    -8170    +6609     -589     -623   +10599   +27753 

 A : EigsVector * EigsValue * T_EigsVector
  +22879     +866    +7422    -3441   -17440    +1003    -4305   -13983 
    +866   +25859    -3183    +6604    +7305   -14222   -21133    -7192 
   +7422    -3183   +28866   -23892    -7622   +16609   +10254    -8170 
   -3441    +6604   -23892   +36083     -947   -21706   -12442    +6609 
  -17440    +7305    -7622     -947   +33128    -6053    -9493     -589 
   +1003   -14222   +16609   -21706    -6053   +25853   +10889     -623 
   -4305   -21133   +10254   -12442    -9493   +10889   +30094   +10599 
  -13983    -7192    -8170    +6609     -589     -623   +10599   +27753 


 Press return to continue
 Press X      to stop