Re: [R] constrOptim and function with additional parameters?

From: Duncan Murdoch <>
Date: Wed 14 Jul 2004 - 23:20:11 EST

On Wed, 14 Jul 2004 14:59:01 +0200 (MEST), "Marlene Mueller" <> wrote :

>How can I use a function with some additional input parameters
>in constrOptim? For example, something like
>fr <- function(x,a) { ## Rosenbrock Banana function
> x1 <- x[1]
> x2 <- x[2]
> a * (x2 - x1 * x1)^2 + (1 - x1)^2
>where the optimum is to be found w.r.t. x. Calling
>optim(c(-1.2,1), fr, NULL, a=100) works as expected, but I fail
>to provide the a=100 in the constrained case:
>> constrOptim(c(-1.2,0.9), fr, NULL, ui=rbind(c(-1,0),c(0,-1)),
>Error in f(theta) : Argument "a" is missing, with no default
>Is this a bug or is there a different solution that I miss here?

I can't spot why your use of constrOptim isn't working, but you should be able to workaround it by doing something like this:

applyDefaults <- function(fn, ...) {
  function(x) fn(x, ...)

constrOptim(c(-1.2,0.9), applyDefaults(fr, a=100), NULL, ui=rbind(c(-1,0),c(0,-1)),ci=c(-1,-1))

The applyDefaults function creates a new function which evaluates the old one with some of the parameters set to fixed values.

Duncan Murdoch mailing list PLEASE do read the posting guide! Received on Wed Jul 14 23:33:20 2004

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 02:36:10 EST