"Bruno Eklund" <firstname.lastname@example.org> wrote in message <email@example.com>... > "Mike " <michael.gerstREMOVE@yale.edu> wrote in message > <firstname.lastname@example.org>... > > Hi all, > > > > I have setup a minimization problem using fmincon with > > linear and non linear inequality constraints. I am > having > > the problem where fmincon will guess negative values for > > some of the decision variables, even though I have > included > > a zero lower bound in the constraint matrix (instead of > > using "lb"). > > > > After looking through the results in more detail, this > > appears to happen when certain variables have been > minimized > > to zero. In order to further decrease the value of the > > objective function, fmincon will try to assign a negative > > value to some of the decision variables which are > already at > > zero. Also, this usually happens when the objective > > function is nearing a minimum. > > > > Why is this happening when I have coded in a lower bound > of > > zero? Are there any ways to prevent this from > happening? > > Any help would be greatly appreciated, as this has turned > > out to be a very frustrating problem. > > > > Thanks, > > Mike > > > Hi Mike, > making sure that parameters are positive during estimation > is a quite common problem. Instead of using the bounded > estimation method, I usually find it simpler to estimate > the square of the parameter. For example, if I have a > parameter b that should be at least zero, I use b^2 as a > parameter in the estimation, and insert the estimated > parameter a = b^2 into the model as sqrt(a). > That should make the estimation routine to never assign > a negative value to your parameter. > > Good luck, > Bruno >
This is a good way to enforce a non-negativity constraint. It is how I do so in my fminsearchbnd.
It does introduce additional solutions to the problem, but as they are all equivalent, that is a non-issue.