Université de Toulon et du Var 1. Méthode de la dichotomie ou de la

Transcription

Université de Toulon et du Var 1. Méthode de la dichotomie ou de la
Université de Toulon et du Var
Joachim Asch
Département de Mathématiques
Calcul Scientifique: Licence Math.
2002/2003
Recherche de zéros de fonctions*
Soit f une fonction de IR dans IR, continue, et dérivable autant de fois que nécessaire.
Nous allons présenter les méthodes de la dichotomie, de la sécante et de Newton pour
approximer les zéros de f , c’est à dire les solutions x∗ de l’equation f (x) = 0.
1. Méthode de la dichotomie ou de la bisection
Cette méthode est surtout utilisée pour localiser grossièrement les zéros de f . En effet,
si on arrive à déterminer deux points a et b tels que f (a) et f (b) ont un signe différent,
c’est à dire f (a)f (b) < 0, alors, d’après le théorème des valeurs intermédiaires, il existe un
point x∗ ∈]a, b[ tel que f (x∗ ) = 0.
L’algorithme est alors le suivant : on calcule le milieu c = a+b
2 de l’intervalle [a, b]. Si
f (a)f (c) < 0, alors on a une racine à gauche et on recommence avec b = c, sinon avec
a = c. On itère ce procédé jusqu’à ce que, pour une précision ε > 0 donnée, on ait
|b − a| < ε.
Pour la précision : Si on pouvait calculer le signe de f (a)f (c) correctement alors à chaque
étape on divise la longueur de l’intervalle en deux ; après n intérations on a |bn −an | < |b−a|
2n
1
et donc pour localiser le zéro dans un intervalle de longueur eps = 10p il faut alors au moins
: p log2 10 + log2 |b − a| itérations. L’algorithme est linéaire dans le nombre des “chiffres
valables”.
Si |f (a)f (c)| est inférieur à la précision machine on ne peut pas déterminer son signe
correctement donc la méthode n’est plus applicable. En particulier ceci est le cas proche
d’un zéro x∗ . On continuera alors avec une des méthodes suivantes.
2. Méthodes de la sécante
On définie une suite {xi } qui converge vers x∗ . Connaissant xi−1 et xi alors on définie
xi+1 comme le zéro de l’interpolation linéaire (c.f.: séance Interpolation) de (xi−1 , f (xi−1 ))
et (xi , f (xi )) , i.e. l(xi+1 ) = 0 pour l définie par
l(x) :=
x − xi
x − xi−1
f (xi ) −
f (xi−1 ).
xi − xi−1
xi − xi−1
Donc
*
Les indications techniques se refèrent au logiciel Mathematica
xi+1 =
xi−1 f (xi ) − xi f (xi−1 )
f (xi )
·
= xi −
f (xi ) − f (xi−1 )
di
(xi−1 )
avec di := f (xxi i)−f
.
−xi−1
Pour ce qui est la convergence nous allons la discuter pour la méthode de Newton qui consiste à remplacer la différence finie di par f (xi ) , donc xi+1 est le zéro de l’approximation
linéaire du graphe de f en xi donc le point où la tangente intersecte l’axe “des x”.
3. Méthode de Newton
C’est une méthode basée sur la construction d’une suite de points (xi ) convergeant vers
un zéro x∗ de f . On remplace pour cela l’équation f (x) = 0 par une équation du type
point fixe g(x) = x et travaille avec la suite des itérées de g.
La methode de Newton est définie par
g(x) = x −
f (x)
f (x)
i)
donc la suite des d’intérées est xi+1 = xi − ff(x
(xi ) . Nous allons voir que le point initiale
x0 doit déjà être choisi suffisamment proche de x∗ afin d’assurer que le méthode converge.
Rappelons que par le théorème du point fixe la méthode serait globalement convergente
(et que la convergence serait linéaire dans le sense mentionné ci–dessus) si g était une
contraction :
Théorème : Soit A ⊂ R fermé et soit f : A → A tel qu’il existe λ < 1 avec f (y) −
f (x) ≤ λy − x pour tout x, y alors
(1) Il existe un point fixe unique x∗ ∈ A tel que f (x∗ ) = x∗
(2) Pour un x0 ∈ A arbritraire et {xk }k∈N la suite des itérées : xk+1 := f (xk ) on a
lim xk = x∗
k→∞
(3) xk − x∗ ≤
λk
1−λ x1
− x0 .
Une condition suffisante pour qu’une fonction dérivable g soit une contraction est
max |g (x)| ≤ λ < 1.
x∈A
Cette majoration de g est uniforme. On a même, si x∗ est une solution de g(x) = x, et
que g est continue au voisinage de x∗ :
• si |g (x∗ )| < 1, alors il existe un intervalle [a, b] x∗ tel que ∀x0 ∈ [a, b], la suite
xn+1 = g(xn ) converge vers x∗
• si |g (∗)| > 1, alors ∀x0 = x∗ , la suite xn+1 = g(xn ) ne converge pas vers x∗ .
f (x)
f (x) f (x)
Pour la méthode de Newton on a : On a g(x) = x − et g (x) =
d’où
f (x)
f 2 (x)
g (x∗ ) = 0.
–2–
Il existe ainsi toujours un intervalle contenant x∗ telle que la suite des itérées converge.
La méthode de Newton converge donc localement.
En developpant f autour de xi à l’ordre 2 on voit que la convergence est beaucoup plus
rapide , notamment pour un c > 0 (qui est déterminé par le rapport f (x∗ )/f (x∗ )) :
|x∗ − xi+1 | ≤ c|x∗ − xi |2
donc
|x∗ − xn | ≤ c(2
n
−1)
|x∗ − x0 |2 .
n
Dès que xi est proche du zéro le nombre des “chiffres valables” double a chaque itération.
Pour ce qui est la convergence globale on a des resultats si f est convexe. Par exemple :
Théorème. Si f ∈ C 2 ([a, b]) vérifie:
i) f (a) f (b) < 0
ii) ∀x ∈ [a, b] f (x) = 0
iii) ∀x ∈ [a, b] f (x) = 0
Alors pour tout x0 ∈ [a, b] tel que f (x0 ) f (x0 ) > 0, la suite (xn ) définie par x0 et xn+1 =
g(xn ) converge vers l’unique solution de f (x) = 0 dans [a, b].
Répétons l’algorithe de la méthode de Newton.
Lire l’approximation initiale x du zéro de la fonction
Lire la précision ε recherchée
Calculer le terme correctif δ = ff(x)
(x)
TANT QUE (|δ| > ε) FAIRE
x=x−δ
Calculer δ = ff(x)
(x)
FAIT
La solution est x − δ
La méthode converge plus rapidement que celle de la dichotomie, mais elle nécessite
l’évaluation de la dérivée de la fonction.
La connaissance d’une ”bonne” approximation initiale du zéro recherché est cruciale.
Cette méthode est souvent couplée avec celle de la dichotomie pour la localisation approximative du zéro recherché.
4. Exercices
Soient
f1 (x) :=
|x| − x, ,
f2 (x) := cos(x) ,
f3 (x) := x2 .
Pour chacune de ces quatre fonctions, cherchez un zéro par les 4 méthodes suivantes.
Comparez les nombres d’itérations nécessaires pour atteindre une précision donnée.
Exercice 1. Méthode de point fixe. Utilisez par exemple la fonction FixedPoint de
Mathematica.
Exercice 2. Méthode de la dichotomie.
–3–
Exercice 3. Méthode de Newton. Testez différentes valeurs initiales x0 .
Exercice 4. Méthode de la sécante.
Exercice 5. Soit f (x) = x − x3 . Déterminer analytiquement les zéros. Effectuer quelques
itérations de la méthode de Newton demarrant avec x0 = 2. Discuter le taux de convergence que vous observez dans les itérées calculées. Effectuer quelques itérations pour la
méthode de la bisection et de la sécante en demarrant avec l’intervalle (3/4, 2). Comparer
le taux de convergence avec celui des itérées de Newton. Déterminer l’ensemble des points
S pour lesquelles la méthode de Newton converge vers x∗ = 1 si x0 ∈ S ; même question
pour les autres zéros.
–4–