Mathc matrices/c16e


Sommaire


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


Crystal Clear mimetype source c.png gj_r_a2.c
'
/* ------------------------------------ */
/*  Save as :   gj_r_a2.c                 */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
int main(void)
{
double ab[R4*C7]={
    +1,     -3,     +4,     -2,    +5,    +4,  0,
    +2,     -6,     +9,     -1,    +8,    +2,  0,
    +2,     -6,     +9,     -1,    +9,    +7,  0, 
    -1,      3,     -4,      2,    -5,    -4,  0,  
};


/*                       i_Abr_Ac_bc_mR(R_Ab,C_A,C_b));  */

double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(R4,C6,C1));
double **A  = c_Ab_A_mR(Ab,i_mR(R4,C6));
double **b  = c_Ab_b_mR(Ab,i_mR(R4,C1));

  clrscrn();
  printf(" A :");
  p_mR(A,S8,P0,C7);
  printf(" b :");
  p_mR(b,S8,P0,C7);
  printf(" Ab :");
  p_mR(Ab,S8,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,NO) :");
  gj_PP_mR(Ab,NO);
  p_mR(Ab,S10,P5,C7);
  stop();

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


Si A est une matrice singulière le Total pivoting ne fonctionne pas. C'est pourquoi j'ai introduit un nouvel algorithme. Par exemple, le Total pivoting ne permettrait pas d'obtenir le résultat ci-dessous.


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

 b :
      +0 
      +0 
      +0 
      +0 

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



 Copy/Past into the octave window.

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


 rref(Ab,.00000000001)

  gj_PP_mR(Ab,NO) :
  +1.00000   -3.00000   +4.50000   -0.50000   +4.00000   +1.00000   +0.00000 
  -0.00000   -0.00000   +1.00000   +3.00000   -2.00000   -6.00000   -0.00000 
  +0.00000   +0.00000   +0.00000   +0.00000   +1.00000   +5.00000   +0.00000 
  +0.00000   +0.00000   +0.00000   +0.00000   +0.00000   +0.00000   +0.00000 

 Press return to continue.