← Retour aux projets en programmation
Descente de Gradient
Visualisation de l’algorithme de descente de gradient appliqué à la fonction f(x) = (x - 4)^2 + 3.
1. Définition de la fonction
Fonction à minimiser et son gradient
import numpy as np
# Fonction et dérivée
def f(x):
return (x - 4)**2 + 3
def grad_f(x):
return 2 * (x - 4)
2. Paramètres de l’algorithme
Initialisation
x = 0.0
learning_rate = 0.1
max_iter = 1000
tolerance = 1e-3
x_history = []
3. Algorithme de descente
Boucle de descente de gradient
for i in range(max_iter):
grad = grad_f(x)
x_history.append(x)
if abs(grad) < tolerance:
break
x = x - learning_rate * grad
4. Affichage graphique
Affichage avec Matplotlib
import matplotlib.pyplot as plt
x_vals = np.linspace(-2, 10, 100)
y_vals = f(x_vals)
plt.plot(x_vals, y_vals, label='f(x)')
plt.scatter([x], [f(x)], color='green', label='Minimum trouvé')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.title('Descente de gradient sur f(x) = (x - 4)^2 + 3')
plt.legend()
plt.grid(True)
plt.show()
5. Résultat interactif
Le minimum est atteint pour ( x = 4 ), avec une valeur de la fonction ( f(x) = 3 ).