Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Bonjour!
Ce programme python illustre l'algorithme de descente de gradient pour rechercher un minimum local d'une fonction f de deux variables réelles.
Son principe est simple : pour trouver le minimum, il suffit d'effectuer des petits pas dans le sens de la descente, juqu'au momment où la pente s'annule.
Nous rechercherons un minimum de la fonction f telle que f(x,y) = (x-2)²+(y-3)². On peut aisément deviner ce minimum car f(x,y) est une somme de carrés.
Pour une fonction de deux variables, le gradient est un vecteur dont les composantes sont les dérivées partielles :
- df/dx = 2(x-2)
- df/dy = 2(y-3)
Sa direction donne la ligne de pente et sa norme donne l'inclinaison.
Ce programme comporte deux versions de l'algorithme :
- La première utilise le gradient analytique de f, qui doit lui être fournie.
- La seconde utilise une approximation numérique de ce gradient.
Exercice
Déterminer unn minimum local de la fonction f définie par f(x,y) = x² + 2 y² - xy + 5x - 4y - 5