Aller au contenu

Mathc matrices/02t

Un livre de Wikilivres.


Application

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **X_rdefinite_positive_mR(
double **A,
int      n
)
{
int r = rsize_R(A);

double **T  =         r_mR(   i_mR(r,r),n);
double **TT = transpose_mR(T, i_mR(r,r));

         mul_mR(T,TT,A);

  f_mR(T);
  f_mR(TT);
  
 return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r)
{
double **A      =  rdefinite_positive_mR(   i_mR(r,r), 99);
double **EValue =                eigs_mR(A, i_mR(r,C1));

  clrscrn();  
  printf(" A:");
  p_mR(A, S12,P3,C6);

  printf(" Eigenvalue: eigs_mR(A,EValue);");
  p_mR(EValue, S12,P3,C1);    
  
  f_mR(A);
  f_mR(EValue);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

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

} while(stop_w());

  return 0;
}

/* ------------------------------------ */
/* ------------------------------------ */

Exemple de sortie écran :

 A:
  +20275.000   +11381.000    -7532.000    +1075.000     -996.000 
  +11381.000    +9981.000    -5881.000    +3636.000     +301.000 
   -7532.000    -5881.000   +28651.000   +10597.000    -8184.000 
   +1075.000    +3636.000   +10597.000    +9130.000    -3186.000 
    -996.000     +301.000    -8184.000    -3186.000   +18543.000 

 Eigenvalue: eigs_mR(A,EValue);
  +41078.615 
  +26589.037 
  +13840.465 
   +4921.469 
    +150.415 


 Press   return to continue
 Press X return to stop