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 :



x2 est remplacé dans la dernière équation pour donner

puis si l'on définit

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