Aller au contenu

Mathc matrices/c31f

Un livre de Wikilivres.


Application


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


d04a.c
/* ------------------------------------ */
/*  Save as :   d04a.c                  */
/* ------------------------------------ */
#include      "v_a.h"
/* ------------------------------------ */
int main(void)
{
double a[16]={
     1.,    -2.,    -2.,     3.,
     0.,     1.,     1.,     3.,
     0.,     0.,     3.,     1.,
     0.,     0.,     0.,    3. 
     };   
            
double inva[16]={
    1.,   2.,    0.,     -3., 
    0.,   1.,   -1./3.,  -8./9.,  
    0.,   0.,    1./3.,  -1./9.,   
    0.,   0.,    0.,      1./3. };
    
double **A     = ca_A_mR(a,   i_mR(R4,C4));
double **invA  = ca_A_mR(inva,i_mR(R4,C4));
double **AinvA =               i_mR(R4,C4);

  printf(" A : ");
  p_mR(A,5,0,6);
  
  printf(" invA : ");
  p_mR(invA,5,3,6);
  
  printf(" A*invA : ");
  mul_mR(A,invA,AinvA);
  p_mR(AinvA,5,3,6);

  printf("\n\n\n Press return to continue");
  
  f_mR(A);
  f_mR(invA);
  f_mR(AinvA);
    
  getchar();

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


Il faut jouer le jeu pour comprendre ce travail. Copier le système de matrice et remplacer au fur et à mesure les lettres par leurs valeurs.


Le fichier c permet simplement de vérifier le résultat.


La méthode de calcul :
 ------------------------------------ 


  a) Ecrire sur un papier au crayon ce système de matrices
     =====================================================
     1  -2  -2  3     a  b  c  d     1 0 0 0 
     0   1   1  3     0  e  f  g  =  0 1 0 0 
     0   0   3  1  *  0  0  h  i     0 0 1 0 
     0   0   0  3     0  0  0  j     0 0 0 1 

    << Remplacer chaque lettre aux fur et à mesure. >>
    

    b) Inverser les coefficients de la diagonale :
       =========================================
        ->  a= 1
        ->  e= 1
        ->  h= 1/3
        ->  j= 1/3


    c) Calculer le produit scalaire des r* lignes par les c* colonnes :
       ==============================================================
      r1*c2 =>   b -  2             = 0    =>   b=  2   
      r2*c3 =>   f +  1/3           = 0    =>   f= -1/3  
      r1*c3 =>   c +  2/3 - 2/3     = 0    =>   c=  0  
      r3*c4 =>  3i +  1/3           = 0    =>   i= -1/9   
      r2*c4 =>   g -  1/9 + 1       = 0    =>   g= -8/9  
      r1*c4 =>   d + 16/9 + 2/9 + 1 = 0    =>   d= -3  
 
     d) Le résultat :
        =============
     1  -2  -2   3      1   2   0    -3       1 0 0 0 
     0   1   1   3      0   1  -1/3  -8/9  =  0 1 0 0 
     0   0   3   1   *  0   0   1/3  -1/9     0 0 1 0 
     0   0   0   3      0   0   0     1/3     0 0 0 1