Aller au contenu

Mathc matrices/086

Un livre de Wikilivres.


Application


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


c00b.c
/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define   RA R5
#define   CA C5      
/* ------------------------------------ */
int main(void)
{
double   xy[8] ={
   1,      1,
   2,      4,
   3,      9,
   4,     16  };

   
double tA[RA*CA]={
/* x**2     y**2     x        y        e     */
  +1,      +0,      +0,      +0,      +0,       
  +1,      +1,      +1,      +1,      +1,     
  +4,     +16,      +2,      +4,      +1,         
  +9,     +81,      +3,      +9,      +1,        
 +16,    +256,      +4,     +16,      +1,      
};	
	
	
double tb[RA*C1]={
/* = 0   */
  +1.00, 
  +0.00, 
  +0.00, 
  +0.00, 
  +0.00, 
};

double **XY      = ca_A_mR(xy,i_mR(R4,C2));
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("\n");
  printf(" Find the coefficients a, b, c, d, e, of the curve \n\n");
  printf("     ax**2 + by**2 + cx + dy + e  = 0 \n\n");
  printf(" that passes through these four points.\n\n");
  printf("         x         y");
  p_mR(XY,S10,P0,C6);
  stop();
  
  clrscrn();
  printf(" Using the given points, we obtain this matrix.\n");
  printf("  (a = 1. This is my choice)\n\n");  
  printf(" A :");
  p_mR(A,S10,P2,C7);
  printf(" b :");
  p_mR(b,S10,P2,C7);
   
  printf(" Inv ");
  invgj_mR(A,Inv);   
  pE_mR(Inv,S12,P4,C10); 
  stop();
  
  clrscrn();
  printf(" x = Inv * b ");   
  mul_mR(Inv,b,Invb); 
  p_mR(Invb,S10,P4,C10);
  printf(" The coefficients a, b, c, d, e, of the curve are : \n\n"
         "  %+.2fx**2   %+.2fy  = 0\n\n"
            ,Invb[R1][C1],Invb[R4][C1]);      
  stop();  

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

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


Exemple de sortie écran :
 Find the coefficients a, b, c, d, e, of the curve 

     ax**2 + by**2 + cx + dy + e  = 0 

 that passes through these four points.

         x         y
        +1         +1 
        +2         +4 
        +3         +9 
        +4        +16 

 Press return to continue. 


 Using the given points, we obtain this matrix.
  (a = 1. This is my choice)

 A :
     +1.00      +0.00      +0.00      +0.00      +0.00 
     +1.00      +1.00      +1.00      +1.00      +1.00 
     +4.00     +16.00      +2.00      +4.00      +1.00 
     +9.00     +81.00      +3.00      +9.00      +1.00 
    +16.00    +256.00      +4.00     +16.00      +1.00 

 b :
     +1.00 
     +0.00 
     +0.00 
     +0.00 
     +0.00 

 Inv 
 +1.0000e+00  +0.0000e+00  +0.0000e+00  +0.0000e+00  +0.0000e+00 
 +0.0000e+00  -1.6667e-02  +5.0000e-02  -5.0000e-02  +1.6667e-02 
 +0.0000e+00  -3.5000e+00  +7.0000e+00  -4.5000e+00  +1.0000e+00 
 -1.0000e+00  +9.1667e-01  -2.2500e+00  +1.7500e+00  -4.1667e-01 
 +0.0000e+00  +3.6000e+00  -4.8000e+00  +2.8000e+00  -6.0000e-01 

 Press return to continue. 


 x = Inv * b 
   +1.0000 
   +0.0000 
   +0.0000 
   -1.0000 
   +0.0000 

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

  +1.00x**2   -1.00y  = 0

 Press return to continue.