f <- function(x) sum( log(diff(x)^2+.01) + (x[1]-1)^2 )
opt <- nlminb(rep(0, 10), f, lower=-1, upper=3)
str(opt)
List of 6
$ par : num [1:10] 1 1 1 1 1 ...
$ objective : num -41.4
$ convergence: int 0
$ iterations : int 65
$ evaluations: Named int [1:2] 92 773
..- attr(*, "names")= chr [1:2] "function" "gradient"
$ message : chr "relative convergence (4)"
xhat <- rep(1, 10)
all.equal(opt$par, xhat, tol=0) # good: 5.53 e-7
[1] "Mean relative difference: 3.368798e-06"
all.equal(opt$objective, f(xhat), tol=0) # good: 1.8 e-12
[1] "Mean relative difference: 1.09683e-11"
abs( opt$objective - f(xhat) ) < 1e-4 ## Must be TRUE