ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges

Méthode du pivot selon Gauss      version JavaScript
       @ Pas de théorie, je veux utiliser le programme en ligne | @ version VisualBasic pour Microsoft Excel

Un système d'équations linéaires de n équations linéaires et de p inconnues x1, x2, ..., xp est la donnée de n égalités du premier degré liant les inconnues x1, x2, ... et xp. Dans l'enseignement secondaire, on limite généralement la résolution de tels systèmes à trois équations (n = 3) et trois inconnues x, y et z (au collège n = p = 2). On trouvera quelques exemples "concrets" ci-dessous :

Livraisons  système linéaire 2 ×2   (2 équations, 2 inconnues)

Histoire de trains #1  système linéaire 2 ×2

Histoire de trains #2  formule d = v × t système linéaire 2 ×2

Histoire d'oiseaux  système linéaire 2 ×2

Alchimie  système linéaire 2 ×2

Histoire de bénef...  système linéaire 2 ×2  & pourcentages

Problème B.O.F.  système linéaire 3 ×3

Remplissage d'une piscine par 3 vannes   problème de robinets 3 ×3

Considérons le système n x n de n équations linéaires à n inconnues x1, x2,…,xn :

a1,1x1 + a1,2x2 + … + a1,nxn = b1
a2,1x1 + a2,2x2 + … + a2,nxn = b2

...
a
n,1x1 + an,2x2 + … + an,nxn = bn

où les ai,j et les bi sont des réels donnés, i et j variant de 1 à n. Le système peut s'écrire AX = B où A désigne la matrice des ai,j , X la matrice colonne des xi et B la matrice colonne des bi. On suppose que le système est de Cramer : il admet une unique solution. C’est dire que le déterminant de A est non nul.

Cas général, théorème de Rouché :  »               un exemple simple

Nous utilisons les notations suivantes :

La méthode de Gauss consiste à trianguler la matrice A, selon le principe de la réduction du même auteur, afin de ramener le système à la forme :

a1,1x1 + a1,2x2 + …        + a1,nxn = b1
      a'2,2x2 + a'2,3x3 + … + a2,nxn = b2
                  a'3,3x3  + … + a'3,nxn = b3
                                        ... ... ...
                   a'n-1,n-1xn-1 + a'n,nxn = bn-1
                                         a'n,nxn = bn

à la fin du processus, la matrice A est alors devenue triangulaire (supérieure) :

On a fait apparaître des zéros au-dessous des termes diagonaux de i = 2 à i = n - 1. Dans ces conditions, on obtient tout d'abord xn = bn/a'n,n, puis xn-1, … , x2, x1.

Description de l'algorithme :

Quitte à permuter les lignes, on peut supposer que a1,1 est non nul. Si cela s'avère impossible, l'inconnue x1 est arbitraire et le système n'est pas de Cramer. Pour éliminer x1 en ligne 2, il suffit de retirer a2,1/a1,1 x L1 à L2, soit :  L2  ==> L2 - a2,1/a1,1x L1.

Le terme constant b2 subit la même transformation : b2  ==> b2 - a2,1/a1,1x b1. D'une façon générale, pour éliminer x1 dans les lignes 2 à n, donc faire apparaître des zéros au-dessous de a1,1, on procède à la transformation :

Li  ==> Li - ai,1/a1,1x L1   et   bi  ==> bi - ai,1/a1,1x b1

La matrice du système est désormais de la forme :

On cherche maintenant à éliminer x2 dans les lignes 3 à n : cela revient à réitérer le procédé sur la matrice A' privée de ses premières ligne et colonne :

 

extraite de A et sur le membre de droite (matrice colonne des constantes) privé de b1. On procède à la transformation Li  ==> Li - a'i,2/a'2,2 x L2 , i variant de 3 à n.

Si a'2,2 s'était avéré nul, on aurait permuté les lignes jusqu'à trouver un a'k,2 non nul. Si cela n'est pas possible, alors x2 est arbitraire : le système ne serait pas de Cramer.

   Le procédé se poursuit pour éliminer xk dans les lignes k, pour k < n. Les éléments diagonaux servant de diviseur sont appelés pivots. Remarquer que lors de l'élimination de xk, les lignes de rang inférieur ne sont pas modifiées.

On parle parfois de la méthode du pivot maximum : elle consiste, quitte à permuter les lignes de la matrice, à prendre comme pivot, à chaque étape, celui qui est le plus grand en valeur absolue afin de limiter les erreurs d'arrondi inévitables dues à un diviseur trop faible (pertes de chiffres significatifs).

Programmation de l'algorithme en JavaScript

                    

Exemple d'exécution :

On a entré successivement : 2,3,-1,-6, puis 3,-1,2,11  et  7,4,-10,-8, c'est à dire le système :

2x1 + 3x2 - x3 = -6
3x1 - x2 + 2x3 = 11          
L'ordinateur donne la solution 2, -3, 1
7x1 + 4x2 - 10x3 = -8

Et pour le système :

2x1 + 3x2 - x3 = -6
3x1 - 2x2 - 8x3 = 4
7x1 + 4x2 - 10x3 = -8

l'ordinateur dit être désolé.... En effet : L2 = L3 - 2L1.


Résolution d'un système 4 x 4 par triangulation


© Serge Mehl - www.chronomath.com