> OK merci mais pourquoi rechercher dans la direction du gradient ? Et
> comment déterminer un bon lambda ?
>
>
> Laly.Faisons un DL à l'ordre 1 de f en x :
f(x+h)=f(x)+h.grad f(x)+o(||h||)
Donc le terme de "variation principale" h.grad f(x) sera d'autant plus grand
que h (le vecteur de descente) formera un angle petit avec le gradient
Donc c'est suivant le gradient que la fonction "varie le plus"
Comment déterminer le bon lambda ?
Il s'agit de minimiser une fonction d'une variable réelle
g(lambda)=f(x-lambda.grad f(x)) (x fixé)
Pour cela, il existe de nombreuses méthodes.
On peut penser à la Méthode de Newton appliquée à g' :
lambda(0)=0
lambda(n+1)=lambda(n)-g'(lambda(n))/g''(lambda(n))
Remarque : pour limiter le temps de calcul, on doit pouvoir se contenter
d'une ou deux itérations de Newton à chaque descente de gradient (il y a
sûrement des études qui ont été faites à ce sujet)
Remarque : si ta fonction f est quadratique elliptique (polynôme de degré 2
qui tend vers +inf à l'inf), le méthode de "descente de gradient" n'est pas
la plus adaptée. Le "gradient conjugué" converge plus rapidement
Je n'ai malheureusement pas le temps de l'expliquer ici, mais on trouve
facilement sur google :
http://www.essi.fr/~leroux/moindrescarresbis/node9.htmlmembres.lycos.fr/projetdeamath2003/Projet1/p2p2.htm