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

From: Ravi Varadhan <rvaradhan_at_jhmi.edu>
Date: Wed, 02 Apr 2008 12:12:56 -0400

Paul,

Have you tried using "BFGS" without bounds?

sols <- optim(rep(20,nvar), f, gr, method="BFGS", control=list(fnscale=-1))

This converges to a solution, although I don't know if the converged solution is what you want.

Ravi.



Ravi Varadhan, Ph.D.

Assistant Professor, The Center on Aging and Health

Division of Geriatric Medicine and Gerontology

Johns Hopkins University

Ph: (410) 502-2619

Fax: (410) 614-9625

Email: rvaradhan_at_jhmi.edu

Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html  



-----Original Message-----
From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org] On Behalf Of Paul Smith
Sent: Monday, March 31, 2008 2:25 PM
To: R-help
Subject: Re: [R] L-BFGS-B needs finite values of 'fn'

On Mon, Mar 31, 2008 at 2:57 PM, Zaihra T <zaihra_at_uwindsor.ca> wrote:
> 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)
>
> }
>
> have a nice day.
>
>
>
>
> 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?
> >
> > Thanks in advance,
> >
> > 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) ))

Not much progress, Zaihra. Unfortunately! I am wondering whether one can transform the original problem into an equivalent one and solvable with optim.

I know the analytical solution; I am just trying to check how far can R go regarding optimization problems.

Paul



R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Wed 02 Apr 2008 - 16:24:13 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 02 Apr 2008 - 18:30:26 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive