[R] Passing parameters to 'optim' fn function

Robin Hankin r.hankin at noc.soton.ac.uk
Wed Sep 12 10:53:01 CEST 2007


Hi

Use the dots argument at the end to pass in named parameters.
This is documented as the last in the argument list under ?optim.


Here's a toy example using x and p:

 > f <- function(x,p){sum(x^2)+p*sum(x)}
 > gr <- function(x,p){2*x+p*rep(1,length(x))}
 > optim(par=c(10,10),fn=f,gr=gr,p=13)
$par
[1] -6.498188 -6.499652

$value
[1] -84.5

$counts
function gradient
       63       NA

$convergence
[1] 0

$message
NULL


HTH

rksh


On 12 Sep 2007, at 09:32, José Luis Aznarte M. wrote:

>     Hi again! I'm using the 'optim' method to fix the parameters of a
> model. I have written the function to be minimised and another  
> function
> which returns the gradient of the error. Now my problem is that, in
> order to compute that gradient, it would be extremely convenient to be
> able to pass some parameters to the gradient function. I don't see how
> to do it given the fixed syntax of 'optim', which does not allow for
> parameters being passed to fn and gr:
>
>> optim(par, fn, gr = NULL, ...)
>
>     Of course the first idea would be to "pack" the extra  
> parameters in
> the vector 'par', but in that case the extra parameters would be
> optimized too.
>     Does anyone have an idea on how to pass parameters to gr in optim?
> Thanks for your time!
>
> ______________________________________________
> 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.

--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743



More information about the R-help mailing list