Aller au contenu

Mathc matrices/a48

Un livre de Wikilivres.


Application


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


c00.c
/* ------------------------------------ */
/*  Save as :   c00.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define   RA R5
#define   CA C5
#define   Cb C3
/* ------------------------------------ */
/* ------------------------------------ */
#define   B     (1.)
#define   C     (1.)
/* ------------------------------------ */
//#define   B   (+0./1.)
//#define   C   (-1./2.)
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
/* 
 * Find a value for "B" so that the system is compatible.
*/ 
double ab[RA*(CA+Cb)]={
//           A                =  x*B  +  y*C  +  z
  +3,   +9,   +1,   -1,   -2,   +2*B,   +2*C,   +2,
  +6,  +18,   +2,   -2,   -4,   +0*B,   +4*C,   +4, 
  -4,   +6,   -2,   +4,   +9,   +8*B,   +0*C,   +6, 
  -6,   -6,   +8,   +1,   +5,   +0*B,   +6*C,   +3, 
  +9,  +27,   +3,   -3,   -6,   -6*B,   +0*C,   +3,
}; 

double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb));
double **A  = c_Ab_A_mR(Ab,i_mR(RA,CA));
double **b  = c_Ab_b_mR(Ab,i_mR(RA,Cb));

  clrscrn();
  printf(" A :");
  p_mR(A,S3,P0,C8);
  printf(" b :");
  p_mR(b,S3,P0,C8);;
  printf(" Ab :");
  p_mR(Ab,S3,P0,C8);
  getchar();

  clrscrn();
  printf(" Copy/Past into the octave window.\n\n");
  p_Octave_mR(Ab,"Ab",P0);
  printf("\n rref(Ab,.00000000001)\n\n");
  printf("  gj_PP_mR(Ab,YES) :");
  gj_PP_mR(Ab,YES);
  p_mR(Ab,S8,P4,C8);
  stop();

  f_mR(Ab);
  f_mR(b);
  f_mR(A);
  
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */


 Calculer la valeur de B et de C pour que le système soit compatible.


Exemple de sortie écran :
 ------------------------------------ 
 A :
 +3  +9  +1  -1  -2 
 +6 +18  +2  -2  -4 
 -4  +6  -2  +4  +9 
 -6  -6  +8  +1  +5 
 +9 +27  +3  -3  -6 

 b :
 +2  +2  +2 
 +0  +4  +4 
 +8  +0  +6 
 +0  +6  +3 
 -6  +0  +3 

 Ab :
 +3  +9  +1  -1  -2  +2  +2  +2 
 +6 +18  +2  -2  -4  +0  +4  +4 
 -4  +6  -2  +4  +9  +8  +0  +6 
 -6  -6  +8  +1  +5  +0  +6  +3 
 +9 +27  +3  -3  -6  -6  +0  +3 


 ------------------------------------ 
 Copy/Past into the octave window.

 Ab=[
+3,+9,+1,-1,-2,+2,+2,+2;
+6,+18,+2,-2,-4,+0,+4,+4;
-4,+6,-2,+4,+9,+8,+0,+6;
-6,-6,+8,+1,+5,+0,+6,+3;
+9,+27,+3,-3,-6,-6,+0,+3]


 rref(Ab,.00000000001)

  gj_PP_mR(Ab,YES) :
 +1.0000  +0.0000  +0.0000  -0.6596  -1.5851  -1.2340  -0.2553  -0.8936 
 +0.0000  +1.0000  +0.0000  +0.1383  +0.3404  +0.2695  +0.0213  +0.4078 
 +0.0000  +0.0000  +1.0000  -0.2660  -0.3085  -0.7234  +0.5745  +0.0106 
 +0.0000  +0.0000  +0.0000  +0.0000  +0.0000  +4.0000  +4.0000  +2.0000 
 +0.0000  +0.0000  +0.0000  +0.0000  +0.0000  +4.0000  +2.0000  +1.0000 

 Press return to continue.


Les deux dernières lignes donnent :

+0.0000  +0.0000  +0.0000  +0.0000  +0.0000  +4.0000  +4.0000  +2.0000 
+0.0000  +0.0000  +0.0000  +0.0000  +0.0000  +4.0000  +2.0000  +1.0000  

ou bien

  +0.0000 = +4.0000  +4.0000  +2.0000 
  +0.0000 = +4.0000  +2.0000  +1.0000 

en introduisant B et C

  +0.0000 = +4.0000 B +4.0000 C +2.0000 
  +0.0000 = +4.0000 B +2.0000 C +1.0000  
 
soit le système 

  +4.0000 B +4.0000 C = -2.0000 
  +4.0000 B +2.0000 C = -1.0000  
 
 cela donne
 
  B =  (+0./1.)
  C =  (-1./2.)