Mathc matrices/c31a

Un livre de Wikilivres.


Application


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


c03a.c
/* ------------------------------------ */
/*  Save as :   c03a.c                  */
/* ------------------------------------ */
#include      "v_a.h"
/* ------------------------------------ */
int main(void)
{
double a[9]={
     3.,   0.,   0.,
     3.,   1.,   0.,
     3.,  -2.,   1. };          
double inva[9]={
     1./3.,0.,   0.,
    -1.,   1.,   0.,
    -3.,   2.,   1. };
    
double **A     = ca_A_mR(a,   i_mR(R3,C3));
double **invA  = ca_A_mR(inva,i_mR(R3,C3));
double **AinvA =              i_mR(R3,C3);
  
  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
     =====================================================
  
     3  0  0     a  0  0     1 0 0 
     3  1  0  *  b  c  0  =  0 1 0 
     3 -2  1     d  e  f     0 0 1 

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

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

        ->  a=  1/3  
        ->  c=  1  
        ->  f=  1
             

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

      1) r2*c1 =>  1 +  b = 0    =>    b = -1
         ------------------------------------  
      
     3  0  0     1/3  0  0     1 0 0 
     3  1  0  *   b   1  0  =  0 1 0 
     3 -2  1      d   e  1     0 0 1       
      
      
      r3*c1 =>   1 + 2 +  d = 0    =>    d = -3 
      -----------------------------------------  
      
     3  0  0     1/3  0  0     1 0 0 
     3  1  0  *  -1   1  0  =  0 1 0 
     3 -2  1      d   e  1     0 0 1  
      
      
      r3*c2 =>     - 2 +  e = 0    =>    e =  2
      -----------------------------------------  
      
     3  0  0     1/3  0  0     1 0 0 
     3  1  0  *  -1   1  0  =  0 1 0 
     3 -2  1     -3   e  1     0 0 1
  
  
     d) Le résultat :
        =============
                             
     3  0  0     1/3  0  0     1 0 0 
     3  1  0  *  -1   1  0  =  0 1 0 
     3 -2  1     -3   2  1     0 0 1