Aller au contenu

Mathc matrices/a47

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 R4
#define   CA C4
#define   Cb C3
/* ------------------------------------ */
/* ------------------------------------ */
#define   B     (1.)
#define   C     (1.)
/* ------------------------------------ */
//#define   B   (+2./5.)
//#define   C   (-6./5.)
/* ------------------------------------ */
/* ------------------------------------ */
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
  -7,   +7,   +9,   -2,   +4*B,   +1*C,   +1,
  -5,   -6,   -1,   -8,   +2*B,   +3*C,   +2,
 -21,  +21,  +27,   -6,   +3*B,   +0*C,   +3,  
 -14,  +14,  +18,   -4,   +0*B,   +1*C,   +4,  
};   

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,C7);
  printf(" b :");
  p_mR(b,S3,P0,C7);
  printf(" Ab :");
  p_mR(Ab,S3,P0,C7);
  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,C7);
  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 :
 -7  +7  +9  -2 
 -5  -6  -1  -8 
-21 +21 +27  -6 
-14 +14 +18  -4 

 b :
 +4  +1  +1 
 +2  +3  +2 
 +3  +0  +3 
 +0  +1  +4 

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

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

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


 rref(Ab,.00000000001)

  gj_PP_mR(Ab,YES) :
 +1.0000  +0.0000  -0.6104  +0.8831  -0.2597  -0.2727  -0.2597 
 -0.0000  +1.0000  +0.6753  +0.5974  -0.1169  -0.2727  -0.1169 
 +0.0000  +0.0000  +0.0000  +0.0000  +3.0000  +1.0000  +0.0000 
 +0.0000  +0.0000  +0.0000  +0.0000  -2.0000  +1.0000  +2.0000 

 Press return to continue.


Les deux dernières lignes donnent :

+0.0000  +0.0000  +0.0000  +0.0000  +3.0000  +1.0000  +0.0000 
+0.0000  +0.0000  +0.0000  +0.0000  -2.0000  +1.0000  +2.0000  

ou bien

+0.0000  =  +3.0000  +1.0000  +0.0000 
+0.0000  =  -2.0000  +1.0000  +2.0000 

en introduisant B et C

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

 +3.0000 B +1.0000 C = -0.0000 
 -2.0000 B +1.0000 C = -2.0000 
 
 cela donne
 
  B =  +2./5.  
  C =  -6./5.