In MATLAB, I am using fmincon to solve a minimization problem with nonlinear constraints. The problem is that, it is giving me a wrong answer, a point that is not a minimizer (not even close), and that is not within the tolerance. I made sure to use a feasible initial point. However, when I use another initial feasible point, it gives me a correct answer. Here is the problem: min f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; s.t. constraints= [1-(x(1)*x(2));-x(1)-(x(2))^2;x(1)-0.5] <= 0 The minimizer is [0.5 ; 2] with optimal objective value: 306.5000 However when I use the feasible initial point x0=[-1 ; -2], this gives me the answer: [-0.7921; -1.2624] (which is not feasible and has an f value of 360.3798 !!) (to within options.TolCon = 1e-06) and when I use the initial point x0=[0.4;4], this gives me the correct answer [0.5 ; 2]. Note that my constraints do not require the variables to be non-negative. Any idea what I am doing wrong here?