Note sur la méthode de la section dorée François-Xavier Vialard On propose dans cette note une courte présentation de la méthode de la section dorée. On rappelle que la méthode est faite pour localiser un minimum local d’une fonction unidimensionnelle rélle. On commence par une définition utile: Définition 1. Un triplet admissible pour une fonction f : R → R est un triplet de réels (a, b, c) ∈ R3 vérifiant: a < b < c et min(f (a), f (c)) ≥ f (b). Remarque 1. • Si f est une fonction continue et un triplet admissible (a, b, c) pour f alors il existe un minimum local de f dans [a, c]. • Si f est une fonction unimodale alors le minimum de f est contenu dans [a, c] quelque soit le triplet admissible (a, b, c). La méthode de la section dorée est une méthode de réduction de triplet admissible. A chaque itération, la quantité c − a est multipliée par un facteur α = 0.618. Pour pouvoir appliquer cette méthode, il faut pouvoir trouver un triplet admissible initial. On propose l’algorithme suivant pour une fonction f définie sur R+ : Initialisation de l’intervalle[a = 0, b] pour b ∈ R∗+ . Tant que (f (a) ≤ f (b)) faire b ← 2b Fin Initialisation de c ← 2b Tant que (f (b) > f (c)) faire a ← b, b ← c, c ← 2c Fin Tant que ((b − a) > tolérance) faire Application d’une méthode de réduction du triplet a, b, c. Fin Retourner c Algorithme 1: Méthode de dichotomie Remarque 2. termine. • Si f est une fonction coercive et f décroissante en 0 alors l’algorithme • Si f est une fonction unimodale alors l’algorithme termine. Pour rénduire le triplet, il est nécessaire de disposer d’au moins une autre évaluation de la fonction en un point d par exemple. Ce point suffit à la reduction du triplet, c’est à dire à déduire un autre triplet admissible dont d est un élément. En particulier, ce nouveau triplet admissible sera plus fin que le précédent. On a le lemme suivant: 1 Lemma 1. Si f (d) ≤ f (b) alors le triplet consécutif de points contenant d est admissible. Si f (b) ≤ f (d) alors le triplet consécutifs de points contenant b est admissible. Proof. Les deux cas sont symétriques. Traitons seulement le premier. Si f (d) ≤ f (b) alors f (d) ≤ min(f (a), f (b, f (c))) donc le triplet contenant d est admissible. Remarque 3. Par exemple, le triplet de points consécutifs contenant d pour a < b < d < c est (a, b, d). La méthode de la section dorée pour la réduction du triplet est la suivante est motivée par les deux points suivants: • obtenir un taux de réduction (facteur de réduction de la longueur c − a) constant • minimiser le nombre d’évaluations de la fonction f d’une itération à l’autre. La conséquence de la première condition est que si b < d alors c − b = d − a et symétriquement si d < b, c − d = b − a. Le facteur de réduction est donc défini par c−b dans le cas où b < d. On remarque alors b = c − α(c − a) et d = a + α(c − a). α := c−a La seconde condition impose une contrainte sur le choix de α. Il est naturel de demander que lorsque la réduction du triplet a été effectuée selon le lemme 1 alors la fonction f doit être calculée en un seul point supplémentaire pour permettre la réduction du triplet. Prenons l’exemple où a = 0 et c = 1. Dans ce cas, α et 1 − α sont les points b et d (l’ordre n’a pas d’importance puisque les rôles de b et d sont échangeables). • Supposons que la réduction du triplet sélectionne 0, α, 1 − α alors pour obtenir une réduction de facteur α de ce triplet, il faut évaluer la fonction aux points α(1 − α) et (1 − α)2 . On souhaite donc que α soit l’un de ces deux points. Evidemment, on a α 6= α(1 − α) car 0 < α < 1 donc la seule possibilité est √ d’avoir α = (1 − α)2 qui admet une seule racine dans [0, 1] qui est α = 3−2 5 . • Si le triplet choisi est α, 1−α, 1, on obtient comme condition α+(1−α)α = 1−α et on obtient le même polynôme que précédemment. On aurait pu conclure directement par un argument de symétrie. Dans les deux cas, on√ obtient donc le même coefficient α ce qui donne un taux de réduction de 1 − α = 5−1 qui vaut environ 0.618. Ce nombre est l’inverse du nombre 2 d’or, ce qui explique le nom de la méthode (Golden section search en anglais). L’algorithme de la section dorée peut donc s’écrire: √ [α := 12 ( 5 − 1)] Initialisation d’un intervalle [a, b] contenant un minimum local. Tant que (b − a > tolérance) faire c ← αa + (1 − α)b, d←a+b−c Si (f(c) < f(d)) Alors b←d Sinon a←c Fin Si Fin Retourner c Algorithme 2: Méthode de la section dorée 2