Code vu en cours, qui réalise une descente de gradient stochastique (version très simple) pour optimiser la fonction f
définie ci-dessous, avec sa dérivée définie par la fonction df
.
f <- function (x) 0.2 * x^5 - 1.1 * x^3 + .7 * x^2 - x + 1.2
df <- function (x) x^4 - 3.3 * x^2 + 1.4 * x - 1
xi <- runif (1, min = -2, max = 3)
eta <- .1
repeat {
xi <- xi - eta * df (xi)
if (abs (df (xi)) < 0.001)
break
}