Recently, I am doing some optimization simulations. For convex optimization problem, we can use CVX tool box to solve it. But there is another tool box in MATLAB: Optimization tool box, which can also solve some convex optimization problem.
Here’s the question: what’s the difference between this two tool box? What is the principle of their solvers? (the toolbox in matlab can choose algorithm, such as interior-point method) For large-scale convex problems, which tool box can achieve better performance?
The combination of CVX, plus the solver it calls, ought be able to do better than FMINCON on problems which can be formulated in CVX - not all convex problems can. On the other hand, CVX adds overhead for modeling, so problems such as (MI)LPs and convex (MI)QPs might be more efficiently solved outside of CVX (and can use warm starts/starting values, unlike CVX), although the quality of (MI)LP and (MI)QP solvers might dominate.
But I still have another question: my problem is a little complicated. After a series of SCA operations, although this problem has been successfully transformed into a convex problem, many variables have been added. Will this affect the operation of CVX? After I substituted the converted problem into the CVX toolbox, no matter how I adjusted the parameters, the correct solution could not be obtained, and it was always Infeasible or Failed. In addition, my constraint contains many ‘log’ functions. Do you think it will be better to use FMINCON simulation in this case?
FMINCON has trust regions. Your crude SCA doesn’t, so might not converge to anything. I would just use FMINCON (or KNITRO, if you have access to it). if your original prpblem is non-convex (hence, SCA) you might try a global optimization solver, such as BARON , or YALMIP’s BMIBNB.
You have fallen victim to seeing examples of crude SCA being successful. If used in the real world, and your name doesm’t happen to be Stephen Boyd, you might not enjoy the same success.