Ok, j'ai mis en rouge les éléments importants. Il y a
- calculer P(x) et P'(x)
- s'arrêter quand on n'y arrive pas
- s'arrêter quand on a trouvé
Tu as remarqué que tout ce TP était fait pour t'apprendre à construire des briques servant ensuite de bases pour l'exo suivant? Tout d'abord une fonction qui supprime les zéros non significatifs, ce qui te permet d'avoir le degré réel. Puis une fonction qui complète avec des zéros et, hasard, pour l'addition il fallait compléter. Puis on t'a demandé une fonction qui calcule la dérivée et, ah tiens? l'algorithme de Newton a besoin de la dérivée. Et puis une fonction qui évalue un polynome (quel qu'il soit) en un point X et, ah tiens? l'algorithme de Newton demande la division de P(x) par P'(x) (donc l'évaluation de x par P divisé par l'évaluation de x par P').
Ton second code (le premier est à oublier) montre que tu as compris l'idée (je m'appuie sur cette ligne
y=x0-poly(x0)/poly_derive(x0)). Sauf que t'as encore du mal à l'appliquer. Coup de pouce: l'évaluation de x0 ce n'est pas
poly(x0) mais
poly_eval(poly, x0). Ce que je trouve dommage c'est que je n'aurais pas dû avoir besoin de te le dire.