Bonsoir,
Je travaille sur un tp dans lequel je dois programmer la méthode de Gauss sans bouger les lignes en python. Voici ce que j’ai fait pour le moment :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | def gauss_without_swap(A): n = len(A) try: for i in range(0, n): pivot = abs(A[i][i]) if pivot == 0: raise ValueError("Le système n'a pas de solution, impossible de continuer.") for k in range(i + 1, n): first_term = A[k][i] for j in range(0, n + 1): A[k][j] -= (first_term / pivot) * A[i][j] except ValueError as err: print(err) exit(0) return A if __name__ == '__main__': A = [[1, 2, 5, 1], [3, 2, 6, 6], [7, 2, 4, 0]] A = gauss_without_swap(A) pprint(A) |
Voici ce que j’obtiens comme résultat :
1 2 3 | 1.0 2.0 5.0 | 1.0 0.0 -4.0 -9.0 | 3.0 0.0 -24.0 -58.0 | 2.0 |
Elle n’est pas triangulaire supérieur donc ma fonction ne fonctionne pas. Elle fonctionne pour une matrice carrée 2 mais pas au-dessus, sûrement un problème au niveau des indices mais je n’arrive pas à le trouver…
J’espère que vous saurez m’aider,
Merci et bonne soirée !
+0
-0