Aller au contenu

Mathc matrices/a34

Un livre de Wikilivres.


Application


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


c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void X_c_Inv_A_mR(
double **AID,
double **invA
)
{
int r;
int c;
int RC = AID[C_SIZE_A][C0];
   
    --RC;
    
 	for    (r=R1; r<invA[R_SIZE][C0]; r++)
 	   for (c=C1; c<invA[C_SIZE][C0]; c++)

            invA[r][c] = AID[r][c+RC];
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r)
{
double **A  = i_mR(r,r);
double **b  = i_mR(r,r);
double **Ab = i_Abr_Ac_bc_mR(   r,  r,  r);
/*            i_Abr_Ac_bc_mR(R_Ab,C_A,C_b));  */

double **invA = i_mR(r,r);

 do
  {
   r_mR(A,999.);
   printf(".");
  }while(!det_R(A));

  clrscrn();
  printf(" A:");
  p_mR(A, S8,P0,C4);

  printf(" b:");
  eye_mR(b);
  p_mR(b, S8,P0,C4);
  stop();
  
  clrscrn();  
  printf(" Ab:");
  c_A_b_Ab_mR(A,b,Ab);
  p_mR(Ab,S8,P0,C4);
  printf("  gj_TP_mR(Ab);");  
  gj_TP_mR(Ab);
  p_mR(Ab, S8,P4,C4);
  stop();
  
  clrscrn(); 
  printf(" Copy/Paste into the octave window.\n\n");
  p_Octave_mR(A,"A",P0);
  printf("format short e\n");
  printf(" inv(A)\n\n");

  printf(" invA :                      c_Inv_A_mR(Ab,invA);");  
  c_Inv_A_mR(Ab,invA);
  pE_mR(invA, S14,P4,C4);
  
  f_mR(invA);
  f_mR(Ab);
  f_mR(b);
  f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(R4);
} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier la matrice inverse du système Ab dans la matrice invA :
Exemple de sortie écran :
 A:
    -177     -831     -780     +240 
    +681     -295     +704     +586 
    +753     -612     +791     -780 
    +978     +174     +988     -758 

 b:
      +1       +0       +0       +0 
      +0       +1       +0       +0 
      +0       +0       +1       +0 
      +0       +0       +0       +1 

 Press return to continue. 


 Ab:
    -177     -831     -780     +240 
    +681     -295     +704     +586 
    +753     -612     +791     -780 
    +978     +174     +988     -758 

      +1       +0       +0       +0 
      +0       +1       +0       +0 
      +0       +0       +1       +0 
      +0       +0       +0       +1 

  gj_TP_mR(Ab);
 +1.0000  -0.0000  -0.0000  -0.0000 
 +0.0000  +1.0000  -0.0000  -0.0000 
 +0.0000  +0.0000  +1.0000  +0.0000 
 +0.0000  +0.0000  +0.0000  +1.0000 

 +0.0016  +0.0003  -0.0016  +0.0024 
 -0.0001  -0.0002  -0.0012  +0.0010 
 -0.0016  +0.0004  +0.0015  -0.0017 
 -0.0000  +0.0008  -0.0005  -0.0002 

 Press return to continue. 


 Copy/Paste into the octave window.

 A=[
-177,-831,-780,+240;
+681,-295,+704,+586;
+753,-612,+791,-780;
+978,+174,+988,-758]

format short e
 inv(A)

 invA :                      c_Inv_A_mR(Ab,invA);
   +1.6053e-03    +2.6072e-04    -1.6275e-03    +2.3845e-03 
   -6.3830e-05    -1.9885e-04    -1.1612e-03    +1.0210e-03 
   -1.5787e-03    +4.0429e-04    +1.4664e-03    -1.6963e-03 
   -1.1191e-06    +8.1770e-04    -4.5498e-04    -2.1928e-04 


 Press   return to continue
 Press X return to stop