Mathc matrices/a46

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

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 :
 +9  -2  +1 
-27  +6  -3 
+18  -4  +2 

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

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


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

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


 rref(Ab,.00000000001)

  gj_PP_mR(Ab,YES) :
 +1.0000  -0.2222  +0.1111  -0.0000  -0.0000  -0.1111 
 +0.0000  +0.0000  +0.0000  +3.0000  +1.0000  +3.0000 
 +0.0000  +0.0000  +0.0000  +1.0000  +2.0000  +2.0000 

 Press return to continue.


Les deux dernières lignes donnent :

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

ou bien

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

en introduisant B et C

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

  3.0000 B +1.0000 C = -3.0000 
 +1.0000 B +2.0000 C = -2.0000
 
 cela donne
 
   B =  -4./5. 
   C =  -3./5.