From: Max Kuhn@BDX on 01/28/99 11:39 AM
This may not help, but...
One way to do this that does *not* use nlminb is with the Nelder-Mead
simplex search procedure. This method does not use gradients, just function
calls to find an optimum, so your function would need to be evaluated
efficiently. In this case, when the constraints are violated (a+b>=1),
return as your objective function (assume it's to be minimized) a large
number, say 10^38. The Nelder-Mead routine would not proceed with the
search into regions where the objective function is large.
The bad news, S-plus does not offer this function, *but* a Fortran version
exists in Olsson (1974, JQT) and a C version, similar to how the function
would look in S-plus, is given in the book by Press et al (Numerical
Recipes in C).
I couldn't help replying to this message with this suggestion since I think
it's a crime that the Nelder-Mead routine is not in S-plus. There have been
several inquiries to S-news about this routine and it was something I
suggested when the question was posed about what Mathsoft should implement
in the future. I can't think of an easy way to solve your problem or others
like it, with the ms or nlminb functions. There has been testing for a
module that contains powerful methods for handling such constraints, but it
seemed to me to be impossible to just "pick up" and use, unlike nlminb.
(just my opinion).
Good luck,
Max
-----------------------------------------------------------------------
This message was distributed by s-news@wubios.wustl.edu. To unsubscribe
send e-mail to s-news-request@wubios.wustl.edu with the BODY of the
message: unsubscribe s-news
|