f <- function(x) {
  x1 <- x[1]
  x2 <- x[2]
  x3 <- x[3]
  
  10 * (x1 + x2)^2 + (2 * x1 + x3^2) + (1 + x2)^2
}
nilai_awal <- c(0, 0, 0)
hasil1 <- optim(nilai_awal, f)
cat("Nilai minimum:", hasil1$value, "\n")
## Nilai minimum: 0.9
cat("Diperoleh pada titik x1 =", hasil1$par[1], 
    "x2 =", hasil1$par[2], 
    "x3 =", hasil1$par[3], "\n")
## Diperoleh pada titik x1 = -0.1000313 x2 = 3.772963e-05 x3 = -8.259502e-06