On Thu, 18 Apr 2019 10:36:10 +0000
akshay kulkarni <akshay...@hotmail.com> wrote:

> fx <-   (x1 <= -2)*(x1^2) + (x1 > -2 && x1 < 2)*(x1^3) + (x1 > =
> 2)*(x1^4)
> 
> Can I include fx in an nls call  to create something like this:
> 
> NLS1 <- nls(y ~ a*(sin(x2) + fx), start = list(a = 2))   ?

For now, you can, since fx does not depend on any of the parameters you
optimize in the nls() call. (Actually, the model as presented should be
solveable by lm(y ~ I(sin(x2) + fx) + 0), since it is linear in its
only parameter.)

If you make fx a function and use ifelse() to provide different
outcomes depending on a condition in a vectorized fashion, you would
make it easier to add new parameters later, should the need arise:

fx <- function(x1, x2)
        ifelse(x1 <= -2, EXPR_IF_TRUE..., EXPR_IF_FALSE...)

NLS1 <- nls(y ~ a*(sin(x2) + fx(x1, x2)), ...)

-- 
Best regards,
Ivan

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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