The problem can be solved by the CVX tool, but I get this warning:
Models involving “log” or other functions in the log, exp, and entropy
family are solved using an experimental successive approximation method.
This method is slower and less reliable than the method CVX employs for
other models. Please see the section of the user’s guide entitled
The successive approximation method
for more details about the approach, and for instructions on how to
suppress this warning message in the future.
I read the advanced section in the CVX manual, and I know that the successive approximation method is slow. However, the log function can not be eliminated from the problem.
My Question is: Can I use/add another solver to make the solution faster ?
because the dimensions in my problem are very large.
The beta version of CVX 3.0 has built-in support for SCS. You are responsible for installing SCS yourself and getting it into your MATLAB path; but once you do, you can run cvx_setup and SCS will be connected to CVX.
This solver has built-in support for the exponential cone, so it would enable you to solve problems like this. But note that as a first-order solver, it may take far more iterations to converge to an accurate solution. For some problems, it’s faster, but for other problems, it takes so many iterations to converge that it is slower.
You need to compile (make) SCS before you can use it. So you need a compiler compatible with your version of MATLAB. Without such a compiler, make will fail. Once you have successfully run make, thereby creating a MEX file (one each for direct and indirect), add it to your MATLAB path, then run cvx_setup.