Nonlinear Least Squares with Linear Equality

Hi,
I have a nonlinear least squares problem I need to solve, but I have a linear equality constraint on my parameters: a + b + c = 1.
I have been using lsqnonlin so far, is it possible to have constraints?
I tried substituting c = 1 - a - b, but it does not hold the equality because say if lsqnonlin arrives at the solution a = 0.7 and b = 0.7, a + b + c ~= 1.
Thanks

Réponses (1)

Walter Roberson
Walter Roberson le 19 Oct 2015

0 votes

lsqnonlin() and lsqcurvefit() can only have upper and lower bounds. lsqlin() allows linear constraints but it is only linear rather than non-linear
So... what you have to do is transform the objective to one that computes the sum of squares directly and use fmincon() to minimize the residual.

2 commentaires

Kai Chung
Kai Chung le 19 Oct 2015
Thank you, managed to get it to work with fmincon. I'll have to document the methods I used in a report. My draft report mentioned using levenberg marquardt algorithm, but I suppose this is no longer the case. Would you have any idea what this uses? Is it still least squares?
The default if you do not specify options is Interior Point, which is described in more detail here

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by