la valeur de "e" n'est pas actualisée correctement, elle ne fait que croitre au cours des itérations.
Il faut l'initialiser par exemple à 10*erreur (pour être sûr d'entrer dans la boucle while)
Une fois dans la boucle while, la mettre à jour à partir de la valeur de k par exemple ( e = np.max(np.fabs(k)) qui correspond au gradient maximal) ou alors comme la différence de deux itérés successifs ( e = np.max(np.fabs(xnew - xold)) ).
Également, le pas de l'algorithme, s'il est fixe, doit être choisi assez petit. 1/2 ne semble pas assez petit.
Message édité le 19 novembre 2020 à 18:45:12 par KaiserJoseph