Aller au contenu

Mathc matrices/c12ec1

Un livre de Wikilivres.


Application


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


c00c.c
/* ------------------------------------ */
/*  Save as :   c00c.c                 */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r, int c)
{	
double **Ab    = r_mR(i_Abr_Ac_bc_mR(r,c,C1),999.);
double **A     = i_mR(r,c);        
double **subA  = i_mR(r,r);
                        
  clrscrn();
  printf(" Ab :");
  p_mR(Ab,S8,P0,C7);
  
  printf(" A    : i_mR(r,c);");
  p_mR(c_Ab_A_mR(Ab,A),S8,P0,C7);
  
  printf(" subA : i_mR(r,r); \t\t c_Ab_subArxr_mR(Ab,subA); ");
  p_mR(c_Ab_subArxr_mR(Ab,subA),S8,P0,C7);

  f_mR(A);    
  f_mR(Ab);
  f_mR(subA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(rp_I(R3)+R1, rp_I(R3)+R3);


} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */


Copier la sous-matrice de Ab dans subA :
// La matrice Ab doit être initialiser avec la fonction : 

double **Ab = i_Abr_Ac_bc_mR( RAb, CA, Cb); 

// Cette fonction installe la bonne taille pour les matrices Ab, A, b.
Cette méthode permet par exemple de faire croire à la fonction det_mR(); que la matrice est carrée. On peut calculer le déterminant de cette sous-matrice. Si il n'est pas nul, le système Ab peut être résolu avec l'algorithme du Total Pivoting.


Exemple de sortie écran :
 Ab :
    +437     -943     +921     -443     +755     -102 
    -719     +240     -682     +376     +191     +706 
    +801     +624     +991     +423     +598     +768 
    +105     -864      -70     +841     -704     +871 

 A    : i_mR(r,c);
    +437     -943     +921     -443     +755 
    -719     +240     -682     +376     +191 
    +801     +624     +991     +423     +598 
    +105     -864      -70     +841     -704 

 subA : i_mR(r,r); 		 c_Ab_subArxr_mR(Ab,subA); 
    +437     -943     +921     -443 
    -719     +240     -682     +376 
    +801     +624     +991     +423 
    +105     -864      -70     +841 


 Press return to continue
 Press X      to stop