This is not about the failure on some platforms, which is an important issue. However, what is below may provide a temporary workaround until the source of the problem is uncovered.
FWIW, the problem seems fairly straightforward for most optimizers at my disposal in the R-forge (developmental) version of the optimx package at https://r-forge.r-project.org/projects/optimizer/ I used the code ## KKristensen19nlminb.R f <- function(x) sum( log(diff(x)^2+.01) + (x[1]-1)^2 ) opt <- nlminb(rep(0, 10), f, lower=-1, upper=3) xhat <- rep(1, 10) abs( opt$objective - f(xhat) ) < 1e-4 ## Must be TRUE opt library(optimx) optx <- opm(rep(0,10), f, lower=-1, upper=3, method="ALL") summary(optx, order=value) optxc <- opm(rep(0,10), f, gr="grcentral", lower=-1, upper=3, method="ALL") summary(optxc, order=value) optxn <- opm(rep(0,10), f, gr="grnd", lower=-1, upper=3, method="ALL") summary(optxn, order=value) It should not be too difficult to actually supply the gradient, which would give speedier and more reliable outcomes. JN On 2019-01-28 3:56 a.m., Kasper Kristensen via R-devel wrote: > I've noticed unstable behavior of nlminb on some Linux systems. The problem > can be reproduced by compiling R-3.5.2 using gcc-8.2 and running the > following snippet: > > f <- function(x) sum( log(diff(x)^2+.01) + (x[1]-1)^2 ) > opt <- nlminb(rep(0, 10), f, lower=-1, upper=3) > xhat <- rep(1, 10) > abs( opt$objective - f(xhat) ) < 1e-4 ## Must be TRUE > > The example works perfectly when removing the bounds. However, when bounds > are added the snippet returns 'FALSE'. > > An older R version (3.4.4), compiled using the same gcc-8.2, did not have the > problem. Between the two versions R has changed the flags to compile Fortran > sources: > > < SAFE_FFLAGS = -O2 -fomit-frame-pointer -ffloat-store > --- >> SAFE_FFLAGS = -O2 -fomit-frame-pointer -msse2 -mfpmath=sse > > Reverting to the old SAFE_FFLAGS 'solves' the problem. > >> sessionInfo() > R version 3.5.2 (2018-12-20) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Scientific Linux release 6.4 (Carbon) > > Matrix products: default > BLAS/LAPACK: > /zdata/groups/nfsopt/intel/2018update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_gf_lp64.so > > locale: > [1] C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > loaded via a namespace (and not attached): > [1] compiler_3.5.2 > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel