# Re: [R] L-BFGS-B needs finite values of 'fn'

From: Zaihra T <zaihra_at_uwindsor.ca>
Date: Mon, 31 Mar 2008 09:57:08 -0400

try something like this before wrapping up your function else i guess u'll    have to stick to Prof Brian Ripley suggestion his suggestions are usually    best bet .

f <- function(x) {

n <- length(x)
r <- sum((b^(0:(n-1)))*log(x)) - 2000000*(sum(x)-k)^2     if(!is.finite(r))

r<-1e+20 return(r)
}

On Mon, 31 Mar 2008 12:24:09 +0100 "Paul Smith" wrote:
> Dear All,
>
> I am trying to solve the optimization problem below, but I am always
> getting the following error:
>
> Error in optim(rep(20, nvar), f, gr, method = "L-BFGS-B", lower = rep(0, :
> L-BFGS-B needs finite values of 'fn'
>
> Any ideas?
>
>
> Paul
>
> -----------------------------------------! ------
>
> k <- 10000
> b <- 0.3
>
> f <- function(x) {
>
> n <- length(x)
>
> r <- sum((b^(0:(n-1)))*log(x)) - 2000000*(sum(x)-k)^2
>
> return(r)
>
> }
>
> gr <- function(x) {
>
> n <- length(x)
>
> r <- (b^(0:(n-1)))*(1/x) - 4000000*(sum(x)-k)
>
> return(r)
>
> }
>
> nvar <- 10
> (sols <-
>
optim(rep(20,nvar),f,gr,method="L-BFGS-B",lower=rep(0,nvar),upper=rep(k,nvar    ),control=list(fnscale=-1,parscale=rep(2000,nvar),factr=1e-300,pgtol=1e-300)    ))
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help