En mathématiques, l'élimination de Gauss-Jordan, aussi appelée pivot de Gauss, nommée en hommage à Carl Friedrich Gauss et Wilhelm Jordan, est un algorithme de l'algèbre linéaire pour déterminer les solutions d'un système d'équations linéaires, pour déterminer le rang d'une matrice ou pour calculer l'inverse d'une matrice carrée inversible. Lorsqu'on applique l'élimination de Gauss sur une matrice, on obtient sa forme échelonnée réduite.
Cette méthode fut nommée d'après le mathématicien Carl Friedrich Gauss, mais elle est connue des Chinois depuis au moins le Ier siècle de notre ère. Elle est référencée dans l'important livre chinois Jiuzhang suanshu ou Les neuf chapitres sur l'art mathématique, dont elle constitue le huitième chapitre, sous le titre " Fang cheng " (la disposition rectangulaire). La méthode est présentée au moyen de 18 exercices. Dans son commentaire très détaillé daté de 263, Liu Hui en attribue la paternité à Chang Ts'ang chancelier de l'empereur de Chine au IIe siècle avant notre ère.
La complexité algorithmique asymptotique de l'élimination de Gauss est O(n3) (notations de Landau), donc le nombre d'instructions nécessaires est proportionnel à n3 si la matrice est de type n*n. Cet algorithme peut être utilisé sur un ordinateur pour des systèmes avec des milliers d'inconnues et d'équations. Cependant, l'algorithme de Strassen, qui est en O(n2,807) a une meilleure complexité algorithmique asymptotique. De plus, l'élimination de Gauss est numériquement instable, les erreurs d'arrondis effectuées pendant le calcul sont accumulées et le résultat trouvé peut être loin de la solution si le calculs ne sont pas faits en arithmétique exacte. Mais l'élimination de Gauss est une bonne méthode pour les systèmes d'équations sur un champ où les calculs sont par nature exacts comme les corps finis.
Inverser une matrice A carrée inversible d'ordre n, revient à résoudre les n systèmes Afi = ei pour i allant de 1 à n. Pour cela, on crée un tableau à n lignes et 2n colonnes en bordant la matrice A par la matrice identité In.
Ainsi, pour inverser la matrice A=(ai j) de format (n, n), on utilisera la matrice augmentée suivante :
La transformation de Gauss-Jordan consiste à transformer ce système en un système équivalent dont le bloc gauche est l'identité, c'est-à-dire qu'il faut modifier la matrice (A | I) pour qu'elle devienne de la forme (I | A − 1) en utilisant les propriétés de l'algorithme. On notera :
L'algorithme de Gauss-Jordan est le suivant :
Pour k allant de 1 à n
Après l'étape k de l'algorithme, la colonne k a tous ces coefficients nuls sauf un : celui de la diagonale, qui vaut 1.
Variante : on peut aussi chercher le coefficient
Avec l'inverse de la matrice A, peut résoudre les équations de la forme A.X = B, où B est un vecteur fixé, et X l'inconnue. Mais il existe aussi une autre présentation.
On veut résoudre un système d'équations A.X = B, où B est un vecteur fixé, et X le vesteur inconnu. On crée un tableau à n lignes et n + 1 colonnes en bordant la matrice A par le vecteur B. On utilise le même algorithme que ci-dessus. On obtient à la fin une matrice identité, et dans la dernière colonne le vecteur X recherché.
Variante : dans l'algorithme précédent, si on n'exécute la boucle interne que pour i allant de k + 1 à n, on obtient une matrice triangulaire supérieure. Il ne reste plus qu'à " remonter " pour retrouver les valeurs des coefficients de X.
Soit le système d'équations suivant :
On établit la matrice correspondante et on applique la première étape de Gauss-Jordan, le pivot est 1 :
On ajoute un multiple de la première ligne aux deux autres lignes pour obtenir des zéros (respectivement
La deuxième ligne est multipliée par 1/5 :
On ajoute cette deuxième ligne à la troisième et à la première, le nouveau pivot est -7 :
On divise la 3ème ligne par -7 :
On utilise la 3ème ligne pour éliminer des coefficients dans la première et deuxième ligne. Nous sommes alors en présence d'une forme échelonnée réduite avec la matrice identité d'un côté et la valeur des variables dans l'autre :
La solution du système est ainsi :
Cet algorithme permet aussi de calculer le déterminant d'une matrice : dans l'algorithme ci-dessus, c'est le produit des "