Ce TP est optionnel (mais je vous encourage fortement à le faire).
Il est la suite du TP sur la descente de gradient stochastique. Il faut absolument avoir terminé le TP sur la DGS avant d'aborder celui-ci.
Ce TP étant optionnel, je donne peu d'explications et je vous encourage fortement à réfléchir à ce que vous faites, à avoir des idées et à les tester.
Comme dans le TP précédent, on suppose que l'on minimise une fonction d'une seule variable, soit f(x), x pouvant prendre sa valeur dans un certain intervalle [xmin, xmax]. On suppose que f est dérivable sur intervalle et on note f' sa dérivée.
L'algorithme vu dans le TP précédent est censé trouver un minimum local.
On va vérifier s'il en est bien ainsi.
On peut déterminer si le point trouvé est un minimum en comparant f(x) à f(x± ε). Si x est un minimum, alors on a f(x - ε) > f (x) < f (x + ε).
Sur les exemples vu dans le TP précédent, regardez si votre algorithme a trouvé un minimum. (On pourra prendre ε = 10-6.)
Avez-vous des idées pour qu'il trouve vraiment un minimum ? Si oui, testez-les.
Rechercher le minimum d'une fonction est un problème que l'on rencotnre très fréquemment. Aussi existe-t-il beaucoup de méthodes pour cela qui sont adaptées à différents cas de figures. Dans le cas où l'on recherche le minimum de l'une des fonctions que nous avons rencontrées dans le TP sur la DGS (qui sont de simples polynômes), il existe des méthodes bien plus performantes pour trouver un minimum. Nous étudions l'une d'elle ci-dessous, la méthode de Newton-Raphson.
La méthode de Newton-Raphson nécessite que la fonction dont on cherche un minimum soit dérivable deux fois. On note f'' la dérivé seconde de f.
Cette méthode est alors très simple : en partant d'un x quelconque, on apporte itérativement une correction f' (x) / f'' (x).
On s'arrête quand la valeur absolue de cette correction est suffisamment petite, par exemple 10-6.
À faire : programmez la méthode de Newton-Raphson et appliquez-la aux trois fonctions vues précédemment.
Vérifiez que l'on atteint bien des minima.
Si vous effectuez cette vérification, vous constaterez que l'on atteint pas toujours un minimum. Comprenez ce qui se passe et corrigez votre programme.