Méthode de résolution de Gauss
On souhaite résoudre un système d'équations en utilisant la méthode de Gauss.
Rappel théorique
Soit à résoudre le système
pour ![]()
A un moment de la résolution, le système est devenu
où

Alors
s'obtient à l'aide des formules

avec ![]()
Pour ceux qui seraient encore hermétiques à la notation indicielle, l'exemple théorique suivant vous permettra sans doute de retrouver les relations précédentes.
Soit le système de 3 équations à 3 inconnues suivant :

Alors, en divisant la première équation par le coefficient de x1 (appelé premier pivot) on obtient :
![]()
En posant
on obtient
ou encore
que l'on reporte dans les équations suivantes :

On peut alors définir de nouveaux coefficients :

ce qui permet d'écrire le systéme

On continue en divisant la seconde équation par le coefficient de x2 (second pivot) ce qui donne :

on en déduit x2 est remplacé dans la dernière équation pour donner
puis si l'on définit
on obtient le système linéaire triangulaire final

que l'on résoud facilement en partant de la dernière équation.
Méthodologie
On définit :
une fonction nommée Initialisation où la matrice A et le second membre seront définis.
une fonction nommée Triang qui va permettre (si tout va bien) d'obtenir un système triangulaire.
une fonction nommée Resol qui va permettre de résoudre le système triangulaire.
Algorithmes
Programme Principal :
Initialiser A et B.
Triangulariser le système.
Si OK Résoudre sinon la matrice est singulière.
Si OK afficher les résultats sinon résolution impossible.
Triangularisation par Pivot de Gauss
Résolution d'un systéme linéaire triangulaire :
Remarque : Erreurs d'arrondis
Même si la matrice A est singulière, les erreurs d'arrondis rendent
Il faudrait se fixer un nombre réel positif EPS et tester chaque valeur calculée de pivot. (on pourrait choisir EPS = 10-6)
Dans les cas extrèmes, les calculs seraient à vérifier!
Traduction en php
Conclusion
On devrait trouver réellement
1 au lieu de 0.96362091988414
2 au lieu de 1.7707214980161
3 au lieu de 2.9552952069758
-1 au lieu de -0.9882001385068
0 au lieu de -0.04949513887029


