From: Matt on
Hi,

I'm using a lsqnonlin-function to solve an optimization problem:

ysp = lsqnonlin(@fun4,ysp0,lb,ub,optionslsq);

Within fun4 a set of parameters are optimized which are arranged in a vector. lb and ub are the corresponding vectors of the upper and lower bounds.

From previous information I know, that certain values of the bounds are lower than certain other ones but the possible range of them is overlapping, e.g. I know that ub(3) > ub (4), but I just know that ub(3) is between 2 and 6 and ub(4) is between 2 and 5. My system is runnig into oscillation because the solver doesn't know about this restriction yet. He might set ub(4) < ub(3) because just knows about the total possible range. But how can I tell him that ub(3) > ub (4)? Is there a possibilty where I can set some bounds in realtion to other ones?

Best regards
From: Bruno Luong on
"Matt " <9011772(a)web.de> wrote in message <i261mk$kh8$1(a)fred.mathworks.com>...
> Hi,
>
> I'm using a lsqnonlin-function to solve an optimization problem:
>
> ysp = lsqnonlin(@fun4,ysp0,lb,ub,optionslsq);
>
> Within fun4 a set of parameters are optimized which are arranged in a vector. lb and ub are the corresponding vectors of the upper and lower bounds.
>
> From previous information I know, that certain values of the bounds are lower than certain other ones but the possible range of them is overlapping, e.g. I know that ub(3) > ub (4), but I just know that ub(3) is between 2 and 6 and ub(4) is between 2 and 5. My system is runnig into oscillation because the solver doesn't know about this restriction yet. He might set ub(4) < ub(3) because just knows about the total possible range. But how can I tell him that ub(3) > ub (4)? Is there a possibilty where I can set some bounds in realtion to other ones?
>
> Best regards

The lower bound and upper bound are not supposed to evolve, they must be fixed, period. If you have other more complicated constraints, express them as linear/non-linear constraints.

Bruno