2 Méthode de Newton
Contexte de travail et idée de départ
On suppose que : ◦fest dérivable sur [a, b]
◦f0ne s’annule pas sur [a, b]
On va considérer que la représentation graphique Cfde fest « proche » de sa tangente en un point :
l’intersection de cette tangente avec (Ox)doit nous « rapprocher » de xsol
2.1 Démarche
Technique à répéter
i. On considère un réel x0dans I
ii. →On considère alors la tangente à Cfau point d’abscisse x0,
qui a pour équation cartésienne y=f0(x0)(x−x0)+f(x0).
→Le point d’intersection de cette droite et de l’axe des abs-
cisses permet d’approcher xsol :
on note ainsi x1le réel vérifiant 0 = f0(x0)(x1−x0)+f(x0),
c’est-à-dire que l’on pose x1=x0−f(x0)
f0(x0).
iii. Puis on recommence : le réel xnétant construit, on pose
xn+1 =xn−f(xn)
f0(xn).
Condition d’arrêt
Plusieurs conditions peuvent justifier l’arrêt des itérations décrites précédemment :
lorsque l’écart entre deux termes consécutifs est « suffisamment petit »
lorsque l’image du milieu de notre intervalle par fest « suffisamment petit »
→cette condition nécessite que fprend des « petites » valeurs exclusivement au voisinage de xsol
lorsqu’on estime que le nombre d’itérations est suffisant.
Le dernier terme xncalculé sera alors considéré comme une approximation de xsol.
2.2 Programmation en Python
def recherche_solution_Newton(fonction,derivee_fonction,position_depart,tolerance,nb_iterations_max) :
approximation=position_depart
nombre_iterations=0
while (fonction(approximation)>tolerance) and (nombre_iterations<=nb_iterations_max) :
approximation=approximation-fonction(approximation)/fonction_derivee(approximation)
nombre_iterations=nombre_iterations+1
return approximation
Remarque
Dans Python, la bibliothèque scipy.optimize contient la méthode
de Newton.
Pour l’utiliser, il suffit de charger la bibliothèque, puis d’appliquer la
fonction newton en précisant (au moins) la fonction fconsidérée, sa
dérivée der_f et la valeur initiale position_depart.
from scipy.optimize import *
...
newton(f,position_depart,der_f)
2.3 Vitesse de convergence
Sous certaines hypothèses concernant f(que nous supposerons vérifiées), on montre qu’il existe une constante
positive Ctelle que, pour tout n∈N,|xn+1 −xsol| ≤ C|xn−xsol|2.
On en déduit que, pour tout n∈N,|xn−xsol| ≤ 1
C×(C|x0−xsol|)2n
.
Il « suffit » alors que |x0−xsol| ≤ 1
Cpour être en mesure de garantir la convergence de (xn)vers xsol... et de majorer
la distance de xnàxsol.
3