I do not think it is meant to be used for very large-scale applications - in such cases one usually fare better by utilizing ones one fortran and c code.
We use it in small- to medium-scale settings in computer exercises and projects in operations research/mathematical programming courses - nothing else. But I do know that the code is based on solid theory. You CAN use it for large-scale applications - it has possibilities to encode sparsity patterns for the Hessian, for example.
Check the site http://www.mathworks.se/help/optim/ug/fmincon.html for further info.
I have used fmincon in structural applications calculating the upper and lower bounds for collapse load, but this depends on your problem I think that it is a good function. However you cannot solve conic problems.
Thank you for all replies. Our objective function is pretty non-linear. But the fmincon function doesn't really operate. I use [lb ub] matrix for lower and upper boundaries . When we call the function it only transfer the variable to a valid location between the lower and upper boundaries and then stops searching. It messages that a valid solution is found! I tried playing with the Options of search like tolerances and the step size but it wasn't successful. Alternatively, the Genetic algorithm works well but we do not like the long computational time.
If the answer is near the initial point, this means that the objective is highly non-linear. So fmincon will stuck in a local point. Avoid using it if this is the case.
As far as I understand, you have a nonlinear objective function, and the only constraints are "trivial" lower/upper bound constraints on the variables. Depending on the number of variables (say, less than 10-15), you can try to use global methods that give you a proof of global optimality. If there are too many variables, or the objective function is too nasty-nonlinear, then these methods also tend to be slow. However, it might be worth given a try (for example, use SCIP from scip.zib.de, which is free for academic use).
I have also used fmincon successively many times for quite challenging optimization problems. This is not a perfect tool for sure, but like Michael said, the theory behind is solid (SQP - like). No solver is perfect anyway.
Perhaps you should check which kind of methods you used (active-set, interior point methods, ...) and verify if it is appropriate. A prematurate exit can also come from a wrong declaration of the objective function (as if you were only looking for a feasible point, this can appear if you forgot to declare or made a mistak when declaring the objective function), or, as I said with an inappropriate declaration of the methods.
I used fmincon to implement multidisciplinary optimization (constrained non linear mixed integer problems) and I got acceptable solutions.
Theoretically, there isn't any algorithm that can insure the convergence for every problem specifically if it is non linear.
The convergence depends on the existence of a feasible solution for your objective function.
The convergence time depends on the number of variables and your computer's calculation resources.
Note
----
I noticed that in some Matlab version (that I don't remember) there were a bug in the convergence condition testing. I recommend that everyone should verify his version and read the code.
Conference Paper Multidisciplinary Design Optimization in Small Satellite
If the fmincon function stops after the local minima, try using "Global Search" with fmincon. I have solved non-linear inequality constrained optimization problem using Global Search with fmincon with upper and lower bounds and it has worked fine for me.