I have a (slightly simplified) model of the following form:

$Y=c_1X_1 + c_2X_2 + epsilon$ subject to the constraint $0leq c_1leq c_2$.

The distribution of $epsilon$ is actually not important to me – fitting the curve by least squares is all I care about (for a volatility surface parameterization).

What is the best approach to solving this with deterministic results (i.e. not using iterative techniques dependent on starting points etc.).

I am working in C++ and I have Armadillo for my linear algebra library.

I am comfortable with python's libraries as well and R if necessary, but ultimate implementation will be C++.

**Contents**hide

#### Best Answer

Reformulate your model to $$ Y = c_1(X_1+X_2) + (c_2-c_1) X_2 + epsilon $$ (and probably an intercept which you have left out). Then the constraints is $0le c_1, 0le (c_2-c_1)$, and you can use an implementation of nonnegative least squares. In `R`

there is a package `colf`

, see an example in Looking for function to fit sigmoid-like curve. See also Linear Regression with individual constraints in R.

(This approach will be much simpler than what you propose in comments.)

### Similar Posts:

- Solved – References for weighted linear regression with linear constraints on the coefficients
- Solved – References for weighted linear regression with linear constraints on the coefficients
- Solved – Difference Between Scipy.optimize.least_squares and Scipy.optimize.curve_fit
- Solved – OLS in R with linear inequality constraints on coefficients
- Solved – the relation between model sum of squares and degrees of freedom