Hello, possibly really dumb question.
My original constraint is
|f|<=f_lim, f being the variable
which solves just fine.
Then I modified the constraint to
-f_lim<=f<=f_lim
and the solver status = fails
The code is here:
cvx_begin
variables f(10) a(10) b(10)
minimize(sum(a+b))
subject to
A*f == -F
L.'*(a-b) <= 0.2
for k=1:10
norm([b(k) C(k)*f(k)]) <= a(k)
% This leads to infeasibility in this problem
% -f_lim(k)*(a(k)-b(k)) <= f(k) <= f_lim(k)*(a(k)-b(k))
% This solves, the results are verified to be correct
abs(f(k)) <= f_lim(k)*(a(k)-b(k))
end
cvx_end
The data is here:
data.mat
Any ideas?
Tim
It may help if you show all your code, including input data. I.e., provide reproducible code. Have you looked at the solver output (iterations)? Have you tried more than one solver?
Just as an example of how I am in the dark right now,
|f|<=f_lim
is not CVX code, and i don’t know what your code actually is, or even the dimension of f.
Hey Mark, thanks for your reply. I’ve updated my post to include a workable code as well as the data necessary.
Both constraints are included.
Thanks for your help!
I “solved” your “infeasible” version with sedumi (getting cvx_optval = +48607.6), and failed with SDPT3. On your “verified correct results” version, sedumi did not converge in 150 iterations, and SDPT3 was Inaccurate/Solved (getting cvx_optval = +48825.5).
Your data and variables have a very wide dynamic range. This most likely is contributing to or causing the numerical difficulties. Perhaps MOSEK would be more numerically robust in dealing with this problem. In order to improve matters, consider reformulating your problem, paying particular attention to scaling. Try to get everything to be of a similar order of magnitude if you can, or at least closer to that than it is now. See http://web.cvxr.com/cvx/doc/support.html#handling-numerical-issues .
I’ll take this opportunity to ask mcg how to increase max iterations for sedumi beyond the default 150.