Application


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


c04a.c
/* ------------------------------------ */
/*  Save as :   c04a.c                  */
/* ------------------------------------ */
#include      "v_a.h"
/* ------------------------------------ */
int main(void)
{
double a[16]={
     -2.,     0.,   0.,     0., 
     -6.,     1.,   0.,     0.,
      3.,     1.,   1.,     0.,
      0.,    -4.,  -2.,     7.
     };          
double inva[16]={
    -1./2.,   0.,    0.,     0.,
    -3.,      1.,    0.,     0.,
     9./2.,  -1.,    1.,     0.,  
    -3./7.,   2./7., 2./7.,  1./7. };
    
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,S5,P0,C6);
    
  printf(" invA : ");
  p_mR(invA,S5,P3,C6);
  
  printf(" A*invA : ");
  p_mR(mul_mR(A,invA,AinvA),S5,P3,C6);

  stop();
  
  f_mR(A);
  f_mR(invA);
  f_mR(AinvA);

  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
     =====================================================
 
    -2     0     0     0        a     0     0     0        1 0 0 0
    -6     1     0     0    *   b     c     0     0    =   0 1 0 0
     3     1     1     0        d     e     f     0        0 0 1 0
     0    -4    -2     7        g     h     i     j        0 0 0 1

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

    b) Inverser les coefficients de la diagonale :
       =========================================

       -2 ->   a= -1/2
        1 ->   c=  1
        1 ->   f=  1
        7 ->   j=  1/7


    c) Calculer le produit scalaire des r* lignes par les c* colonnes :
       ==============================================================


    1) r2*c1 =>           3  +  b   = 0    =>    b = -3
       ------------------------------------------------  
      
    -2     0     0     0      -1/2    0     0     0        1 0 0 0
    -6     1     0     0    *   b     1     0     0    =   0 1 0 0
     3     1     1     0        d     e     1     0        0 0 1 0
     0    -4    -2     7        g     h     i   1/7        0 0 0 1
     
     
           
    2) r3*c1 =>    -3/2 - 3  +  d   = 0    =>    d =  9/2
       ------------------------------------------------  
      
    -2     0     0     0      -1/2    0     0     0        1 0 0 0
    -6     1     0     0    *  -3     1     0     0    =   0 1 0 0
     3     1     1     0        d     e     1     0        0 0 1 0
     0    -4    -2     7        g     h     i   1/7        0 0 0 1
     
     
    3) r4*c1 =>    12   - 9  + 7g   = 0    =>    g = -3/7
       ------------------------------------------------  
      
    -2     0     0     0      -1/2    0     0     0        1 0 0 0
    -6     1     0     0    *  -3     1     0     0    =   0 1 0 0
     3     1     1     0       9/2    e     1     0        0 0 1 0
     0    -4    -2     7        g     h     i   1/7        0 0 0 1
     
     
    4) r3*c2 =>            1 +  e   = 0    =>    e = -1
       ------------------------------------------------  
      
    -2     0     0     0      -1/2    0     0     0        1 0 0 0
    -6     1     0     0    *  -3     1     0     0    =   0 1 0 0
     3     1     1     0       9/2    e     1     0        0 0 1 0
     0    -4    -2     7      -3/7    h     i   1/7        0 0 0 1
     
     
    5) r4*c2 =>    -4   + 2  + 7h   = 0    =>    h =  2/7    
       ------------------------------------------------  
      
    -2     0     0     0      -1/2    0     0     0        1 0 0 0
    -6     1     0     0    *  -3     1     0     0    =   0 1 0 0
     3     1     1     0       9/2   -1     1     0        0 0 1 0
     0    -4    -2     7      -3/7    h     i   1/7        0 0 0 1
     
     
     
    6) r4*c3 =>         - 2  + 7i   = 0    =>    i =  2/7 
       ------------------------------------------------  
      
    -2     0     0     0      -1/2    0     0     0        1 0 0 0
    -6     1     0     0    *  -3     1     0     0    =   0 1 0 0
     3     1     1     0       9/2   -1     1     0        0 0 1 0
     0    -4    -2     7      -3/7    h     i   1/7        0 0 0 1
 

     d) Le résultat :
        =============
                             
    -2     0     0     0       -1/2   0     0     0        1 0 0 0
    -6     1     0     0   *   -3     1     0     0    =   0 1 0 0
     3     1     1     0        9/2  -1     1     0        0 0 1 0
     0    -4    -2     7       -3/7   2/7   2/7   1/7      0 0 0 1