Aller au contenu

Mathc matrices/07w

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"
/* ------------------------------------ */
/* ------------------------------------ */
#define   RA  R3
#define   CA  C3
#define   CXY C2
/* ------------------------------------ */
int main(void)
{
double tA[RA*CA]={
/* x**2   x**1    x**0  */
  +1,     +1,     +1,        
  +4,     +2,     +1,        
  +9,     +3,     +1,       
};

double tb[RA*C1]={
/*    y    */
     6,
     3,
     5
};

double xy[RA*CXY] =
                {1,  6,
                 2,  3,
                 3,  5 };

double **XY   = ca_A_mR(xy,i_mR(RA,CXY));
double **A    = ca_A_mR(tA,i_mR(RA,CA));
double **b    = ca_A_mR(tb,i_mR(RA,C1));
double **Inv  =            i_mR(CA,RA);          
double **Invb =            i_mR(CA,C1);         

  clrscrn();
  printf(" Fitting a linear Curve to Data :\n\n");
  printf("    x     y \n");
  p_mR(XY,S5,P0,C6);
  printf(" A :\n x**2   x**1   x**0");
  p_mR(A,S6,P2,C7);
  printf(" b :\n y ");
  p_mR(b,S6,P2,C7);
  stop();
  
  clrscrn();    
  printf(" Inv : ");
  invgj_mR(A,Inv);  
  pE_mR(Inv,S12,P4,C10);    
  
  printf(" x = Inv * b ");   
  mul_mR(Inv,b,Invb); 
  p_mR(Invb,S10,P4,C10);
  printf("\n The coefficients a, b, c of the curve are :  \n\n" 
         " y = %+.2fx**2  %+.2fx %+.2f\n\n"
            ,Invb[R1][C1],Invb[R2][C1],Invb[R3][C1]);         
  stop();  

  f_mR(XY);
  f_mR(b);
  f_mR(A);
  f_mR(Inv);
  f_mR(Invb); 

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


Exemple de sortie écran :
 Fitting a linear Curve to Data :

    x     y 

   +1    +6 
   +2    +3 
   +3    +5 

 A :
 x**2   x**1   x**0
 +1.00  +1.00  +1.00 
 +4.00  +2.00  +1.00 
 +9.00  +3.00  +1.00 

 b :
 y 
 +6.00 
 +3.00 
 +5.00 

 Press return to continue. 


 Inv : 
 +5.0000e-01  -1.0000e+00  +5.0000e-01 
 -2.5000e+00  +4.0000e+00  -1.5000e+00 
 +3.0000e+00  -3.0000e+00  +1.0000e+00 

 x = Inv * b 
   +2.5000 
  -10.5000 
  +14.0000 


 The coefficients a, b, c of the curve are :  

 y = +2.50x**2  -10.50x +14.00

 Press return to continue.