{This was sent to me, MM, only, but for completeness should
        have gone back to R-devel.

        Further: I now *have* added Marie B to the members'of "R bugzilla"
        -- M.Maechler}


I had already read the R bug reporting guide and I'm sure it is a bug.
The bug occurs when the user provides not only the analytic gradient but also 
the analytic Hessian of the objective function. In that case, the algorithm 
does not converge due to an erroneous implementation of the modified Cholesky 
decomposition of the Hessian matrix. It is actually a bug in the C-code called 
by nlm(), therefore it is hard to show that the non-convergence of the 
algorithm is really due to this bug with only a MRE.
However, a short example (optimizing the Rosenbrock banana valley function with 
and without analytic Hessian) is:

fg <- function(x){  
  gr <- function(x1, x2) c(-400*x1*(x2 - x1*x1)-2*(1-x1), 200*(x2 - x1*x1)) 
  x1 <- x[1]; x2 <- x[2]
  res<- 100*(x2 - x1*x1)^2 + (1-x1)^2 
  attr(res, "gradient") <- gr(x1, x2)
  return(res)
} 
nlm.fg <- nlm(fg, c(-1.2, 1))

fgh <- function(x){ 
  gr <- function(x1, x2) c(-400*x1*(x2 - x1*x1) - 2*(1-x1), 200*(x2 - x1*x1)) 
  h <- function(x1, x2){
    a11 <- 2 - 400*x2 + 1200*x1*x1
    a21 <- -400*x1 
    matrix(c(a11, a21, a21, 200), 2, 2)
  } 
  x1 <- x[1];  x2 <- x[2];  res<- 100*(x2 - x1*x1)^2 + (1-x1)^2 
  attr(res, "gradient") <- gr(x1, x2)
  attr(res, "hessian") <- h(x1, x2) 
  return(res)
}
nlm.fgh <- nlm(fgh, c(-1.2,1))

I have almost finished a more detailed bug report, which I would like to submit.

Best,
Marie Boehnstedt

>>>>> Martin Maechler <maech...@stat.math.ethz.ch>
>>>>>     on Fri, 3 Mar 2017 18:15:47 +0100 writes:

>>>>> Boehnstedt, Marie <boehnst...@demogr.mpg.de>
>>>>>     on Fri, 3 Mar 2017 10:23:12 +0000 writes:

    >> Dear all, I have found a bug in nlm() and would like to
    >> submit a report on this.  Since nlm() is in the
    >> stats-package, which is maintained by the R Core team,
    >> bug reports should be submitted to R's Bugzilla. However,
    >> I'm not a member of Bugzilla. Could anyone be so kind to
    >> add me to R's Bugzilla members or let me know to whom I
    >> should send the bug report?

    > Dear Marie,

    > I can do this ... but are you really sure?  There is
    > https://www.r-project.org/bugs.html which you should spend
    > some time reading if you haven't already.

    > I think you would post a MRE (Minimal Reproducible
    > Example) here {or on stackoverflow or ...} if you'd follow
    > what the 'R bugs' web page (above) recommends and only
    > report a bug after some feedback from "the public".

    > Of course, I could be wrong.. and happy if you explain /
    > tell me why.

    > Best, Martin Maechler

    >> Thank you in advance.

    >> Kind regards, Marie B�hnstedt


    >> Marie B�hnstedt, MSc Research Scientist Max Planck
    >> Institute for Demographic Research Konrad-Zuse-Str. 1,
    >> 18057 Rostock, Germany
    >> www.demogr.mpg.de<http://www.demogr.mpg.de/>

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to