Is it possible to specify that one parameter must be larger than another parameter in an nls call in my R script?

Here's my nls call:

`fit <- nls(y ~ ifelse(g, m1 * (x - x0) + y0, m2 * (x - x0) + y0), start = c(m1 = -1, m2 = 1, y0 = 0, x0 = split), algorithm = "port", lower = c(m1 = -Inf, m2 = -Inf, y0 = -Inf, x0 = split), upper = c(m1 = Inf, m2 = Inf, y0 = Inf, x0 = (split+1)), data=data.frame(x,y)) `

It is finding values for the parameters m1, m2, x0, and y0. But I want to require that m2 must be LARGER than m1. How can I do this?

**Contents**hide

#### Best Answer

No.

However it seems you are using `nls`

in a wrong way — it will never work with non-differentiable functions. Can't you just fit two linear models to both parts of the data (i.e. `data.frame(x,y)[g,]`

and `data.frame(x,y)[!g,]`

)?

### Similar Posts:

- Solved – find useful R tutorials with various implementations?
- Solved – How to convert a frequency table into a vector of values
- Solved – What statistical blogs would you recommend
- Solved – Software for learning Bayesian belief networks
- Solved – Need to convert duplicate column elements to a unique element in R