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–