//  Programme pour l'algorithme de l'exercice 1.6

//  Donn\'ees
  a=[2 4 2; 1 0 3; 3 1 2]
  n = 3;
  
  b = [a,eye(n,n)];
  Perm = eye(n,n);    //  Matrice des permutations pour avoir un pivot <> 0
  for j = 1:n
    if (b(j,j) == 0) then   //  Pivot nul
      if (j == n) then   //  Sortie en echec
        disp("Permuter la derniere ligne avec une autre"); 
        break;  
      end;
      p = eye(n,n);         // calcul de la matrice des permutations
      l1 = p(j,:);
      p(j,:) = p(j+1,:);
      p(j+1,:) = l1;
      Perm = p*Perm ;     //  Stockage des permutations
      b = p * b;
    end;
    c = [];               //  Debut de l'algorithme
    c = b(j,:)/b(j,j);
    d = [];
    for i = 1:n
      if (i == j) then d = [d;c]; 
      else
        d = [d;b(i,1:$) - b(i,j) * c];
      end;
    end;
    b = d;
  end;
  
  a1 = inv(Perm) * b(:,n+1:$);  //  Restitution de l'inverse en annulant les permutations
  
  disp("RESULTAT");
  a1
  inv(a)
