I could solve this problem by setting the boundary options as follows.

par1Bnd<-c(0.001,0.999)
par2Bnd<-c(-10,10)
DomainMat<-matrix(c(par1Bnd,par2Bnd), nrow = 2, ncol=2, byrow=TRUE)
result<-genoud(Qmin, nvars=2, starting.values=c(0.5,0),
Domains=DomainMat, control=list(ndeps=c(1e-7,1e-2)), boundary.enforcement=2)

To understand how to set up each option, you can refer to the links:
http://sekhon.berkeley.edu/rgenoud/genoud.html
http://sekhon.berkeley.edu/rgenoud/

In the above setting, "Domains" decides the boundary, and "starting.values"
indicates the initial values of parameters. "control" is the list of control
parameters in "optim" (For details, refer to
http://sekhon.berkeley.edu/stats/html/optim.html). "boundary.enforcement"
prevents the algorithm from going away from the boundary.


On 13 October 2010 15:01, Wonsang You [via R] <
ml-node+2993619-1186574920-137...@n4.nabble.com<ml-node%2b2993619-1186574920-137...@n4.nabble.com>
> wrote:

> I have to make correction in my error message which I introduced in my
> original message. Sorry for my mistake.
> Finally, I had the following error message after running the function
> 'genoud'.
>
> Error in optim(foo.vals, fn = fn1, gr = gr1, method = optim.method, control
> = control) :
>   non-finite finite-difference value [1]
>
> When I execute 'traceback()' to trace where the error occured, I got the
> following results. Unfortunately, I could not figure out what was the
> problem from the above information.
>
> 6: optim(foo.vals, fn = fn1, gr = gr1, method = optim.method, control =
> control)
> 5: function (foo.vals)
>    {
>        ret <- optim(foo.vals, fn = fn1, gr = gr1, method = optim.method,
>            control = control)
>        return(c(ret$value, ret$par))
>    }(c(0.220878697173384, -13.3643173824871))
> 4: .Call("rgenoud", as.function(fn1), new.env(), as.integer(nvars),
>        as.integer(pop.size), as.integer(max.generations),
> as.integer(wait.generations),
>        as.integer(nStartingValues), as.real(starting.values), as.vector(P),
>
>        as.matrix(Domains), as.integer(max), as.integer(gradient.check),
>        as.integer(boundary.enforcement), as.double(solution.tolerance),
>        as.integer(BFGS), as.integer(data.type.int),
> as.integer(provide.seeds),
>        as.integer(unif.seed), as.integer(int.seed),
> as.integer(print.level),
>        as.integer(share.type), as.integer(instance.number),
> as.integer(MemoryMatrix),
>        as.integer(debug), as.character(output.path),
> as.integer(output.type),
>        as.character(project.path), as.integer(hard.generation.limit),
>        as.function(genoud.optim.wrapper101), as.integer(lexical),
>        as.function(fnLexicalSort), as.function(fnMemoryMatrixEvaluate),
>        as.integer(UserGradient), as.function(gr1func), as.real(P9mix),
>        as.integer(BFGSburnin), as.integer(transform), PACKAGE = "rgenoud")
> 3: genoud(Qmin, nvars = 2, starting.values = InitVal, max.generations = 10,
>
>        wait.generations = 3, n = n, yper = yper, pertype = pertype) at
> wFGN.R#75
> Wonsang You
> Leibniz Institute for Neurobiology
>
>
> ------------------------------
>  View message @
> http://r.789695.n4.nabble.com/How-to-fix-error-in-the-package-rgenoud-tp2993489p2993619.html
> To unsubscribe from How to fix error in the package 'rgenoud', click 
> here<http://r.789695.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=2993489&code=eW91QGlmbi1tYWdkZWJ1cmcuZGV8Mjk5MzQ4OXwxODQ5NDg1ODM2>.
>
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to