Aller au contenu

Mathc matrices/034

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"
/* ------------------------------------ */
void fun(int r)
{
double s = rp_I(9);

double **A      = rdefinite_negative_mR(     i_mR(r,r), 99);
double **sA     =               smul_mR(s,A, i_mR(r,r));
double **EValue =               eigs_mR(sA,  i_mR(r,C1));

  clrscrn();  
  printf(" A = Q D QT;        A : Definite negative");
  p_mR(A,S12,P6,C6);
  
  printf(" %+.0f*A   s > 0 ",s);
  p_mR(sA,S12,P6,C6);
  
  printf(" %+.0f*A : EValue are negative",s);
  p_mR(EValue,S9,P3,C1);    
  
  f_mR(A);
  f_mR(sA);
  f_mR(EValue);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

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

} while(stop_w());

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


Si A est définie négative et si s est un réel strictement positif, alors s*A est définie négative.

Exemple de sortie écran :

 A = Q D QT;        A : Definite negative
  -52.706356   +17.969085    -9.173214   +14.200213 
  +17.969085   -67.204662    +1.385784    +8.036333 
   -9.173214    +1.385784   -63.417248   -17.113006 
  +14.200213    +8.036333   -17.113006   -62.671734 

 +9*A   s > 0 
 -474.357203  +161.721761   -82.558922  +127.801916 
 +161.721761  -604.841957   +12.472057   +72.326997 
  -82.558922   +12.472057  -570.755229  -154.017057 
 +127.801916   +72.326997  -154.017057  -564.045610 

 +9*A : EValue are negative
 -756.000 
 -702.000 
 -522.000 
 -234.000 


 Press   return to continue
 Press X return to stop